其實我也是最近才開始在碰嵌入式系統!
我ㄉ做法跟你不太一樣!
不過是可行ㄉ
我是去參考益達網ㄉ作法自己下去做ㄉ
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系統的難關都沒有說
真是個適合入門的題目呀