在 iPAQ 上安裝 Linux™ 對於賦予成熟的硬件以新的活力或者使已有的工具變得更好,可能是一種很好的方式,尤其當您是桌面 Linux 的擁趸者時更是如此。在這個過程中您可以充分利用已有的知識,還可以享受到熟悉(雙關語,Familiar)而且免費的開放源代碼軟件的益處。在本文中,學習如何用 Linux 來武裝您的 HP-Compaq iPAQ PDA。 iPAQ 是 Hewlett Packard 生產的一類 PDA 的品牌(較老的型號品牌是 Compaq)。最初的型號是於 1999 年發布的 3600,其擁有一個 206-Mhz 的 StrongArm 處理器、32 MB ROM 和 32 MB RAM,運行 PocketPC 2000 操作系統。從那時起,已經推出了具有多種不同選擇的很多型號。當前最新的型號具備內置的 Bluetooth、Wi-Fi 和 SDIO 能力,運行 PocketPC 2003 操作系統。所有這些設備足夠強大,可以流暢地運行 Linux。本文論述了為什麼您可能選擇這樣做並研究了一些可能的選擇。
為什麼運行 Linux 而不是 Pocket PC? 開始進入在 iPAQ 上安裝並使用 Linux 的細節之前,需要考慮的一個顯而易見的問題是,為什麼從 PocketPC 200x 轉而使用 Linux? 不再以已經被濫用的(多少次,我在尋找你,Slashdot 讀者)“因為您可以”這一理由作為答復,其實有很多正當的理由,包括: 個人感覺:很多人只是覺得作為用戶或開發者使用 Linux 環境更舒服。 持續的升級/支持:Linux 正不斷地得到改進,安全缺陷正得到修復。然而,其原來的軟件可能已經完全得不到支持,在很多情況下不能升級到最新的版本。即使操作系統/應用程序可以被升級,但這也不可能是免費的。 自由:出於意識形態的觀點,或者因為希望得到很多其他益處(比如自己修復缺陷的能力和更強大的用戶社區,等等),很多人更喜歡使用開放源代碼軟件。 實際能力:運行 Linux,使得很多在使用 PocketPC 時難以達到、代價高昂或者不可能達到的事情成為可能。 應用程序:通過運行一個標准的 Linux 發行版本,您可以輕松地移植很多應用程序(某些根本不需要做任何改動,很多只需要很少改動)。 操作系統功能性:此操作系統具備遠程 X(Remote X)和原始的套接字。
選擇硬件 一旦決定下來想要在 iPAQ 上嘗試 Linux,您首先需要選擇要使用的 iPAQ 硬件。通常,更老的硬件會得到更好的支持(因為開發者有更多的時間進行與之相關的工作)。可靠的選擇是 H3100、H3600、H3700、H3800、H3900、H5100、H5400 和 H5500。隨時都在添加對較新的設備的支持,所以,如果您的 iPAQ 是較新的,也不是完全沒有希望 ―― 您可以選擇參與開發版本(即便僅僅是為了測試軟件,如果您沒有開發經驗),或者保持觀望,直到您的硬件得到官方支持。同時,如果不想等待,您隨時可以找一個二手的舊機器來用。為了進行測試,我使用的是一個扔在辦公室裡的相當古老的 H3650 型號。
下載發行版本 好,既然您已經挑選出了一些硬件,那麼接下來就是要確定去哪裡獲得 Linux 以及如何將它安裝到設備上。 假設您不打算改造您自己的系統(這是完全可行的,也是極其耗時),那麼將 Linux 安裝到您的設備的最簡單辦法就是獲得一個支持這些設備的可用的特殊發行版本。最流行的發行版本之一(這也是我已經決定要使用的)是由 Familiar Project(參見 參考資料 中 Web 站點的鏈接)所提供的,以下簡稱為“Familiar”。 與大部分桌面 Linux 發行版本類似,Familiar 由兩個獨立的組件構成: 內核和基本系統。 GUI/桌面環境。 可以下載三種截然不同風格的 Familiar(第四種風格只面向開發者,它沒有 GUI,但也是可用的)。這些風格每一個都有相同的內核和基本系統,但是有不同的 GUI。在桌面 Linux 領域中可以與此類比的是,安裝一個發行版本,比如 Red Hat 或者 Mandrake,並選擇一個桌面環境,比如 KDE 或者 GNOME。確實,一旦開始查看選項,您就可以更深入地體會到不同桌面環境之間的類似之處。 這三種風格是: GPE(GPE 掌上電腦環境,即 GPE Palmtop Environment),基於 GTK,最類似於桌面領域中的 GNOME。 OPIE(開放掌上電腦集成環境,即 Open Palmtop Integrated Environment),基於 Qtopia,最類似於桌面領域中的 KDE。 pypaq,基於 Python 和 GTK。 前兩者,即 GPE 和 OPIE,比 pypaq 應用更為廣泛。如果您沒有充足的理由在選擇了一個之後再選擇另一個,那麼就只要選一個(安裝所需時間並不長,所以,如果您不喜歡所做的選擇,隨時可以重新開始另一個風格)。 選擇了要下載的適當文件後(我想要的是 GPE),就可以安裝了。
安裝 Linux 要獲得詳細的安裝說明,請查閱 Familiar Web 站點的版本注解。下面的說明將使您對此過程有所了解,但是,如以前在 Linux 領域中一樣,這些步驟可能會完全改變。 安裝的第一個步驟是安裝一個新的引導加載器(bootloader)。與通常的桌面系統中的 LILO 或 GRUB 類似,這是當 iPAQ 啟動並允許您加載 Linux 時運行的初始程序。 引導加載器安裝包含兩個文件:WindowsCE 可執行文件(BootBlaster.exe)和引導加載器本身。要安裝引導加載器,您首先需要將這些文件傳輸到 iPAQ 上。有很多方法可以完成此任務,比如通過 ActiveSync、通過存儲卡(CF/SD/MMC,如果您的手持設備支持)或者通過網絡連接(如果已經配置)。 當設備上有了引導加載器程序和引導加載器文件後,只需要運行 .exe,並遵循屏幕上的說明來備份現有的引導加載器和操作系統(以防萬一您什麼時候希望返回到現在的配置)。需要注意兩點: 如果您通過一個串行鏈接備份現在的操作系統,請耐心:在我的機器上這需要大約 15 分鐘。 引導加載器安裝程序好像要求引導加載器文件位於 My Documents 文件夾中(或者一個子文件夾)。 既然已經安裝了引導加載器,如果您重新啟動設備,您應該會看到一個與常見的不同的屏幕 ―― 那就是新的引導加載器的。 下一步是安裝操作系統本身,它發布為一個單一的 jffs2(journaling flash file system 版本 2)存檔文件。取決於您所使用的硬件,有三個獨立的如何繼續進行的選項: 如果您有一個 CompactFlash 盒(Jacket)和一個 CompactFlash 存儲卡(此過程不支持 SD/MMC 卡),那麼最簡單的方法就是,使用 WinCE 或另一台機器將三個文件(jffs2 文件、reflash.ctl 和 md5sums)拷貝到 CF 卡的根並將卡放入盒中(顯然,也將 iPAQ 放入盒中)。現在,只需要按下 record 按鈕(在左邊)來重設設備,然後您應該會看到卡上的一個映像列表(通常只有一個)。通過 joypad 選擇映像,然後直接安裝 ―― 這需要幾分鐘。 如果沒有 CF 盒/卡,那麼您需要使用串行線纜/支架(cradle)。不幸的是,不能使用 USB 線纜/支架,所以如果您的設備只附帶了其中之一,那麼您將需要購買一個(到處都可以找到,而且相當便宜)。另外,最好查閱隨設備提供的安裝說明,以獲得詳細說明,不過,基本的方法是,將 iPAQ 連接到一個主機計算機,然後通過串行線將 jffs2 文件傳輸到 iPAQ 上(使用 ymodem 協議)。一旦文件到了設備上之後,就可以使用 boot 命令來快速存儲(flash)該文件,該命令將與前面一樣快速存儲設備。 注意,傳輸可能得需要一段時間(我用了 20 多分鐘)。 如果您有一個 CF 盒,那麼有可能在一個 CF 內存卡上安裝 Linux,而不用重新快速存儲內部設備,這樣就可以使 PocketPC 相對不會被改動。我之所以說是“相對”,原因在於 PocketPC 存儲用戶數據的方式(在 DRAM 中),當 Linux 引導時,它將抹去所有的用戶數據(因為 Linux 使用所有可用的 DRAM)。這仍是一種實用的方法,因為它支持了一種基本形式的雙引導(雖然在切換到 Linux 或者切換出 Linux 時需要進行額外的備份/還原)。不幸的是,關於此方法的資料很少;它也沒有得到 Familiar 發行版本的直接支持,因為它要求用戶創建一個定制的 initrd 文件系統。對那些對此方法感興趣的人來說,有一個為名為 Intimate 的大容量(160 Mb 以上)CF 卡量身定制的專用發行版本(Familiar 的一個分支)。不幸的是,好像這個發行版本的開發工作已經停止了:最後一次發布是在 2001 年 11 月, Web 頁上最新的一條新聞的日期是 2003 年 6 月。 不管您決定使用哪種方法,快速存儲過程現在已經完成 ―― 恭喜!如果一切順利,您現在應該已經擁有了一個基於 Linux 的 PDA。
連接起來 現在您的 PDA 本身已經是一個功能完整、完全可用的系統。取決於您要使用的 GUI 組件(GPE、OPIE 等等),一般來說確切可用的應用程序將是不同的。不過,基本層次上的功能是相同的:每個發行版本都包括一個 Web 浏覽器、日記、地址簿、電子郵件客戶機等等 ―― 所有都是您期望 PDA 要具備的。 除非您打算在完全非連接模式下使用 PDA,不然首先應該做的就是建立起某些連接。最基本層次的連接是與主機 PC 的簡單的 串行/USB 同步,以獲得最大限度的靈活性。另外,根據您的硬件的不同,確切的步驟也將不同 ―― 其范圍很大,可以是完全無線訪問(如果您有得到支持的(內置的/CF/PCMCIA)Wi-Fi 卡),LAN 訪問(也需要一個得到支持的卡),基於 Bluetooth 的 TCP/IP,使用得到支持的調制解調器進行撥號上網,以及通過主機 PC 在 USB 或者串行線纜之上進行 TCP/IP 的隧道傳輸。 由於缺乏硬件,我只能使用連接到一台 Linux 桌面機的 PPP 來設置串行線纜上的 TCP/IP,以及設置 Linux 機器來