当前位置:Linux教程 - Linux - iPaq或Casio机器上跑Linux

iPaq或Casio机器上跑Linux

来自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卡启动的方案吧......