其实我也是最近才开始在碰嵌入式系统!
我ㄉ做法跟你不太一样!
不过是可行ㄉ
我是去参考益达网ㄉ作法自己下去做ㄉ
http://id.epowerbox.com/...a=bb00197你可以试看看
还是有兴趣我们可以互相交流~
一、准备linux kernel, busybox, syslinux三项基本工具
(kernel网址:linux.sinica.edu.tw台湾在这下载比较快
busybox网址:busybox.net/
syslinux网址:syslinux.zytor.com/)
二、编译一颗linux核心确定它在你系统上是可以正常运作的
(若无可以直接拿你现在的核心在你的/boot目录之下)
三、编译syslinux及busybox(需安装nasm)
四、关机, 接上DOM, 并在BIOS设定它为Master的slave硬碟
五、开机确认DOM在BIOS有侦测正常,进入linux系统
六、使用fdisk分割DOM, 其中一块割为1M以上设定为MS-dos格式
(给syslinux使用)
剩余的你自由利用(可以分成一大块ext2的)
如:fdisk /dev/hdb (我的DOM是挂在hdb上的)
七、使用mkdosfs及mke2fs格式化DOM,每块你在DOM上的partition都要
如:mkdosfs /dev/hdb1(我DOM的第一分割区)
mke2fs /dev/hdb2(我DOM的第二分割区)
八、使用syslinux在第一分割区建立开机系统
如:syslinux /dev/hdb1
九、挂载DOM的磁区
如:mount /dev/hdb1 /mnt/domBoot
mount /dev/hdb2 /mnt/dom
十、依syslinux说明复制档案到第一磁区中
需要复制的档案有:
1开机讯息档(syslinux中有一个例子)
2syslinux.cfg(我不知有没有记错名子...)
其中指定root为/dev/hda2
(也就是我们在DOM上的第二分割区,不过在用DOM开机时它是hda
所以玩家们别弄错了)
余学lilo.conf写就可以了
3核心一颗
(自己编译比较高杆,拿现在系统也不丢人啦)
在syslinux中有sample可以参考,粉简单滴
十一、卸下第一分割区
umount /dev/hdb1
十二、在busybox中安装程式到第二分割区
如在busybox中下达
make PREFIX=/mnt/dom install
(将busybox安装到/mnt/dom之中)
十三、在/mnt/dom中建立dev及etc、proc等目录及其中的档案
懒人们可以直接copy在你现在系统中的档案进去
详细方法嘛....和一般linux一模一样不再多述
接着是最难的一关....
使用busybox的init,或是你可以使用标准的init都可以
反正那个inittab的档案就是要你自己写了,留点东东
有兴趣的人可以自己试,在这就不公布谜底了,.
(到此你可以重开机试试自己的DOM可不可以正常开机了)
十四、建立一个暂用的RPM资料库目录
如rpm --initdb --dbpath /tmp/domrpm
因为你总不希望为了个DOM毁了你现在系统的RPM资料库吧
另建个新滴来用比较好啦
十五、用RPM将你要的档案安装进去
如rpm --dbpath /tmp/domrpm -ivh abc-1.0.i386.rpm
空间多大就可装多少,爱装apache就有apache,
够大的话来个X都可以滴....
十六、将这资料库删除...(以后用不到了)
如rm -rf /tmp/domrpm
十七、卸下/mnt/dom,并关机
如umount /mnt/dom
十八、调整DOM的jmp,BIOS,移去原有的硬碟
十九、开机
廿、来点掌声吧.......
啪啪啪!!!
文中也许带点戏谑的文字,但是方法是真正可行的,在X86系统上玩
embedded-linux是真的很简单,瞧,还可以用RPM来装耶
这般做出来的系统稳定性和安全性都有一定的程度之上的
(然busybox有安全漏洞)
大小应该可以在16MB之内,不过因为还要装Apache和PHP所以建议您
使用32MB的DOM才可以多放点美美的网页在DOM之中,
近来Flash的颗粒己经不如以往的高价格了
32MB也才490元
紧缩到8MB以下的话,什么也不能做,图形介面也上不去
我看大概只剩下向人炫耀的功能了
又要花钱去买一堆莫名奇妙又不好用的软体(真差劲说)
它商业上的价值在现阶段己经是最低点了啰
Embedded系统您需要记住
1载入程式,即上述的syslinux或你电脑中的LILO
2核心,即linux kernel或MS WindowCE
3shell,在上述例子中我们用busybox来实现sh及一些file tools等
然就你就无往不利了
而最难的部份应该是在不同平台上,如其它CPU非X86系列的
它们有不的的记忆体定址方法,不同的暂存器
有些还没有浮点运算(大多没有),
所以要不同的核心不同的Gcc不同的Glibc
对不同的平台核心又要不同的arch
反正呢
X86上除了容量小一点外
可以说所有embedded系统的难关都没有说
真是个适合入门的题目呀