來自Hi-Pda的消息,網友飛來的豬投稿,他在自己的Casio E-115上安裝了PocketLinux,而且是可逆的。 幾個月前Hi-Pda上曾經貼過“現在已經有iPaq上用linux”的文章,不過那個時候在iPaq上裝linux是不可逆的過程,裝了linux就不能再裝回WinCE了,很少人肯去試試?現在就有點不一樣了,Pocket Linux1.0正式版出現了,不僅在iPaq上可以安裝Linux,還可以在Casio機器上安裝Linux呢。最重要的是,你如果不喜歡,還可以重裝回來! 說到這裡,有些人可能不相信,iPaq用的是Flash Rom,可以改寫操作系統的內容,iPaq可以升級WinCE的版本,所以用Linux也是可能的,但是我們都知道Casio用的是Mask Rom,不可能重寫,怎麼可能裝Linux呢? 硬件底層的東西一時我也不太了解,從Pocket Linux的文檔來看,它的過程是這樣的:先從WinCE啟動機器->然後自動執行cyace.exe來切換控制權->Linux接過系統控制權->從CF卡load Linux的核心->啟動完成。 這篇我就重點說Casio機器上裝linux吧(因為我的機器是Casio E-115),有空再說iPaq。 按照文檔來看,只要是基於MIPS系統都有可能安裝linux,現在已知支持的有Casio E100、E105、E115。由於Casio沒有Flash Rom,Linux必須從WinCE Load,因此需要在WinCE中安裝bootloader(引導啟動)、kernel(系統核心)、root filesystem(root文件系統),這些都要安裝在Compact Flsah卡中。 在做一個啟動PocketLinux的CF卡之前必須注意以下事項: 1.一塊>=32Mb的CF卡 所需的CF卡越大越好,至少......如果只有一塊8Mb的卡是不適合開發Linux的(由於Linux的kernel並不大,其實8Mb就夠了,不過只有系統核心就如同沒有任何應用程序的空白操作系統,什麼也不能用......) 2.一個安裝Linux系統的機器和一個讀卡器(對CF卡要可讀寫)一些CF相關設備是可以在Linux中工作的,不過大多數需要USB支持,所以需要支持USB的kernel,有時Linux中USB支持的設備工作不穩定,甚至會造成整個系統的Down掉。 3.vmlinux-stripped - 用於CE機器上的Linux 的核心系統(kernel)在www.pocketlinux.com可以下載 4.pocketlinux.tar.gz - PocketLinux運行需要的文件 5.cyace.exe - bootloader程序(有點象SystemCommander) CyaCE是一個開放式的程序,可以在www.pocketlinux.com下載 6.還需要一些工具,用於Linux的root 文件系統。 root-small.tar.gz - a cut down Linux filesystem. root-large.tar.gz - a larger filesystem. 然後要Format CF卡,CF卡必須至少有兩個分區,一個windows格式,存放bootloader和kernel,另一個Linux 分區放Linux啟動後所用的一切......(CF卡也要分區,各位沒有想過吧),建議分第三個區存放用戶文件,那麼系統的root區就可以設為只讀以防一些意外事件。 CF卡上的分區建議為: 1./dev/sdb1 - vfat - 2.5Mb - windows partition 2./dev/sdb2 - ext2 - 5Mb - PocketLinux read/write partition 3./dev/sdb3 - ext2 - 其余空間 - root partition 使用fdisk分區後這樣格式化: # mkfs.msdos /dev/sdb1 # mkfs.ext2 /dev/sdb2 # mkfs.ext2 /dev/sdb3 好了,現在安裝CyaCE(安裝開始喽...) copy cyace.exe和cyacecfg.txt和kernel到CF卡的windows分區。 編輯cyacecfg.txt以指向正確的kernel鏡像(要有Linux知識哦......) # mount /dev/sdb1 /mnt/sdb1 -t vfat # cp vmlinux /mnt/sdb1 # cp cyace.exe /mnt/sdb1 # cp cyacecfg.txt /mnt/sdb1 # umount /mnt/sdb1 接著安裝Linux文件系統 基本的Linux file system要放在第三個分區(This must be done as root to allow the device files to be created) # mount /dev/sdb3 /mnt/sdb3 -t ext2 # cd /mnt/sdb3 # tar zxvf ~/root-.tar.gz # tar zxvf ~/pocketlinux.tar.gz 啟動!!! 大多數機器上,啟動Linux要執行cyace.exe(從CE的文件管理器執行),Casio E100/E105/E115可以設置Linux為“當CF卡插如時自動啟動”(把cyace和kernel放在CF卡的CE/R4100目錄中,把cyace.exe改名為AutoRun.exe)。一旦系統核心(kernel)啟動,PocketLinux會運行SysV初始,默認PocketLinux是run-level 5。 設備連接: 最簡單的方法是通過minicom這樣的終端模擬來建立串行連接,默認情況下是PPP連接。命令如下(假設設備是接在ttyS0(com1)):pppd /dev/ttyS0 115200 noauth nodetach nocrtscts local persist proxyarp : ip1和ip2是source(PC)和destination(CE機)的IP地址。大多數情況下需要root的權限。一旦連接建立,你可以用telnet -l root 好啦,安裝部分講完了。有人願意試一下嗎?拿出一個別人看不懂的機器......有幾點要注意: 一是tvt-make-cf這個script不要去使用,據說還不穩定,原句是"Since this script must be run as root it could potentially do VERY BAD THINGS to your system if not configured correctly. " 二是裝了Linux,原來CE系統內存中存儲的程序也會被干掉,先backup一下吧。 安裝在ram裡面好象也是可以的,不過據說不方便。 恢復原來的CE: 拿下主電池,Reset吧...... 裝完了有些什麼呢?Application Launcher,Address Book,News,Memo Pad,email Themes,Simple Calculator,Layout Test,User Info...... 講完啦,有人聽嗎?(台下扔來臭雞蛋和爛番茄......)有興趣的話下次可以再深入一點,或是有iPaq的人想看看(也可以restore的哦)。 --更詳細的情況請見www.pocketlinux.com 後文: 從這篇文章可以引出一個有趣的推論:既然linux都可以啟動,那麼CE升級版也應該可以啟動喽,以後的CE4.0 5.0也可以從CF卡上 啟動啊,要什麼flash rom呢?CE設備的廠商們啊......不要再出什麼Casio E900了,給我一個CF卡啟動的方案吧......