iPaq或Casio機器上跑Linux(轉)

BSDLite發表於2007-08-11
iPaq或Casio機器上跑Linux(轉)[@more@]來自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)在可以下載

4.pocketlinux.tar.gz - PocketLinux執行需要的檔案

5.cyace.exe - bootloader程式(有點象SystemCommander)
CyaCE是一個開放式的程式,可以在下載

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的哦)。

--更詳細的情況請見


後文:
從這篇文章可以引出一個有趣的推論:既然linux都可以啟動,那麼CE升級版也應該可以啟動嘍,以後的CE4.0 5.0也可以從CF卡上 啟動啊,要什麼flash rom呢?CE裝置的廠商們啊......不要再出什麼Casio E900了,給我一個CF卡啟動的方案吧......

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-947724/,如需轉載,請註明出處,否則將追究法律責任。

相關文章