在掌上電腦HPiPAQ上執行Linux(轉)
在掌上電腦HPiPAQ上執行Linux(轉)[@more@] 在 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 將不會像現在這樣流行。
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 將不會像現在這樣流行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-952652/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 轉:在Linux上執行WinFormLinuxORM
- 電腦上執行的使用大全
- 如何使用 CrossOver 在 Mac 蘋果電腦上安裝執行 win應用ROSMac蘋果
- 在Windows電腦上快速執行AI大語言模型-Llama3WindowsAI模型
- Android 智慧手機或平板電腦上執行 Linux 的方法AndroidLinux
- 在Linux機器上安裝執行Oracle(三)(轉)LinuxOracle
- 在Linux機器上安裝執行Oracle(二)(轉)LinuxOracle
- 透明的閘道器:在Linux上執行IPchains(轉)LinuxAI
- 在Linux作業系統上執行Windows應用程式(轉)Linux作業系統Windows
- 配置 Rational Functional Tester 在 Linux 上執行FunctionLinux
- 滑鼠怎麼連線在電腦上 滑鼠連線在電腦上的方法步驟
- 口袋裡的Linux:在您的隨身碟上執行SLAX(轉)Linux
- 膝上型電腦上的聊天機器人: 在英特爾 Meteor Lake 上執行 Phi-2機器人
- 在NetBSD/i386上執行Oracle(轉)Oracle
- 執行在imac上的 Linux發行版(轉)MacLinux
- 在一臺電腦上執行兩個或多個tomcatTomcat
- 無需sudo使用Podman在Linux上執行容器Linux
- 在蘋果電腦上使用PC鍵盤蘋果
- win10電腦怎麼執行apk_win10電腦直接執行apk的方法Win10APK
- 在NuoDB上執行AsteriskAST
- 在window上執行bash
- 在Linux環境下執行DOS命令(轉)Linux
- 怎麼做表格在電腦上怎麼操作 在電腦上做表格的操作方法介紹
- 在沒有CD-ROM驅動器的膝上型電腦上安裝Linux(轉)Linux
- 在Mac電腦上如何對 Brotli格式進行壓縮與提取Mac
- MacBook 電腦 nginx 執行不起來MacNginx
- PDF轉換器在電腦上怎樣使用?PDF轉換器功能有哪些?
- livp怎麼轉jpg 如何將live照片格式在電腦上轉換為jpg
- 在linux上定期執行命令、指令碼(cron,crontab,anacron)Linux指令碼
- 在 Linux 和 Mac OS X 系統上執行 .NETLinuxMac
- Mac電腦如何設定導航在選擇後繼續執行?Mac
- wine-在mac上執行exe執行檔案Mac
- Mac電腦怎麼在ntfs硬碟上讀寫Mac硬碟
- 在Linux下成功執行最新的QQ和MSN(轉)Linux
- 讓quake3在linux下順利執行(轉)Linux
- 在 Azure 上使用 Docker 執行 MonoDockerMono
- 3dmax電腦配置要求 執行3dmax需要什麼配置電腦3D
- 如何通過 SSH 在遠端 Linux 系統上執行命令Linux