歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 在掌上電腦HPiPAQ上運行Linux

在掌上電腦HPiPAQ上運行Linux

日期:2017/3/6 15:48:23   编辑:關於Unix
在 iPAQ 上安裝 Linux 對於賦予成熟的硬件以新的活力或者使已有的工具變得更好,可能是一種很好的方式,尤其當您是桌面 Linux 的擁趸者時更是如此。在這個過程中您可以充分利用已有的知識,還可以享受到熟悉(雙關語,Familiar)而且免費的開放源代碼軟件的
  在 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 機器來執行 NAT 並在 iPAQ 與 LAN 之間轉發數據包。這相當簡單,在 handhelds.org 有說明(參見 參考資料 中的鏈接)。另外,此系統的優勢之一是,由於 iPAQ 是一個真正的 Linux 機器,所以,如果您有使用普通桌面 Linux 機器進行此類設置的經驗,那些技巧可以直接應用於手持設備的設置中。
  
  有了完全的 TCP/IP 網絡連接,您就可以利用 Familiar 的一個強大特性:它的簡單的程序包管理系統。Familiar 的程序包管理系統名為 ipkd(表示 Itsy Package),它基於 Debian,類似於 Debian 的 dpkg 系統。只需要使用一組簡單的命令,您就可以安裝大量的預編譯的程序包。
  
  例如,我們假定您想要在您的 iPAQ 上運行一個 Web 服務器。是的,我知道這可能聽起來是要做一件奇怪的事情,不過這在很多環境中可能是實用的。例如,您可以到一個客戶那裡,通過直接在將要實際部署的同一個 Web 服務器上(比如 Apache)演示您為他們開發的 Web 站點。
  
  通過下面的命令來使用 ipkg 安裝 Apache:
  
  ipkg install apache
  
  ipkg 會為您處理所有的依賴性,自動下載和安裝的不僅是 Web 服務器,還包括它正確執行功能所需要的任何程序包。
  
  在安裝時我喜歡使用 -V 2 選項來獲得更多詳細消息。
  
  您可以使用 remove 命令刪除程序包:
  
  ipkg remove apache
  
  不過,remove 命令不會刪除所依賴的那些程序包,所以您可能需要使用另外的 ipkg remove 命令來刪除您再也不需要的程序包。
  
  類似地,您可以通過下面的命令來使您的軟件始終是最新的(包括安全修訂):
  
  ipkg update
  ipkg upgrade
  
  為它進行開發
  既然現在您明白了如何為您的新操作系統獲得並安裝現有的軟件,那麼您可能對以下方面感興趣:存在哪些選項可以運行您定制的軟件或者僅僅是現有的開發者還沒有進行移植的現有操作系統軟件。
  
  很顯然,首先您需要的是一個編譯器以及相關工具鏈(匯編程序、鏈接器等等)。這裡有兩個需要考慮的主要選項:
  
  自托管的(self-hosted)編譯器:在這種情況下,編譯器在設備本身上安裝並運行。這是一個完全可行的設置;實際上, gcc 可以通過 ipkg 獲得。不過,對大部分人來說,是不必這樣的,除非您真正需要在移動狀態下進行開發(我們得承認,使用有限的輸入設備進行開發會相當痛苦)。編譯會比交叉編譯設置慢很多(除非您的桌面機 實在 慢),而且編譯器、頭文件、程序庫等將占用大量的磁盤空間。所以,對大部分用戶來說,更合適的設置是:
  
  交叉編譯設置:在這種情況下,編譯器和工具鏈安裝在一個單獨的桌面機上 —— 通常是基於 Linux 的,不過也可能有別的選項,包括 Windows(通過 Cygwin)、Mac OS X 等等。編譯器在進行開發的機器上運行,但是配置為一個交叉編譯器;這樣,生成可執行程序將不在桌面機上運行,而是輸出可以運行於手持設備的 ARM 二進制文件。大部分人使用的編譯器是 gcc,如果您以前從來沒有這樣設置過,設置起來可能令人望而生畏(尤其是將其設置為一個交叉編譯器)。幸運的是,在網上有足夠多的幫助。簡單講,您可以安裝並使用一個預制的(pre-made)交叉編譯器(參見 參考資料 中的鏈接),或者,如果您需要構建您自己的(比如,如果您需要一個更新的版本),那麼有可以使用的腳本(比如 crosstool;參見 參考資料),只需要回答一些簡單的問題,它就可以幫助您構建一個交叉編譯的 gcc。
  
  重新安裝 PocketPC
  如果出於某些原因您認為 iPAQ 上的 Linux 不適合您,那麼重新安裝 PocketPC 也是一件簡單的事情。過程與先前的使用串行線安裝 Linux 完全相同,只是這一次傳輸的不是 Linux jffs2 文件,而是傳輸並安裝我們先前保存的 PocketPC 映像。文檔沒有詳細說明 CF 方法是否可以用於還原;我估計它可以,但是我沒有可用的 CF 盒來測試這一推測。
  
  至於引導加載器,您可以保留先前安裝到設備上的新的安裝加載器(它可以非常好地引導 PocketPC),或者,如果您願意,可以重新安裝最初的引導加載器。由於快速存儲引導加載器是最具潛在危險的步驟(對您的 iPAQ 來說),我建議您保留新的引導加載器,除非您有特別的理由不這樣做。
  
  結束語
  不是每個人都應該在 iPAQ 上安裝 Linux:到處都還有需要解決的問題。例如,在撰寫本文的過程中,我發現有幾次我的設備會啟用屏幕鎖,但是觸摸屏不會正常工作,所以我就不能解鎖。我發現,要解決此問題,只能通過串口登錄到機器,然後殺死鎖程序,或者強行重新引導機器。如果您是在半路上,或者正在進行某項工作,那麼這兩種方法都不是令人滿意的解決方案
  
  另外,大部分較新的具有非常吸引人的特性(比如內置的 Wi-Fi)的設備當前都沒有得到支持,盡管隨著開發者開始從事新機器相關的工作,這種情形只會日益得到改善。
  
  最後,如果可以實現雙引導程序(尤其是隨著規格不斷改進,有了更多空間來存儲兩個操作系統),iPAQ 上的 Linux 會獲得更廣泛的接受。這將使人們更傾向於開始在他們的 iPAQ 上體驗 Linux 並使用一兩個應用程序 —— 即便是有某些他們離不開的“最佳應用程序(keller apps)”,Linux 中(還)沒有與之相當的程序。 毫無疑問(至少我這樣認為),如果不能實現雙引導,桌面上的 Linux 將不會像現在這樣流行。

Copyright © Linux教程網 All Rights Reserved