作者 : vide
DOM for X86是粉簡單滴
步驟如下:
一、準備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 menuconfig
make CONFIG_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也才一千多元
緊縮到8MB以下的話,什麼也不能做,圖形介面也上不去
我看大概只剩下向人炫耀的功能了
又要花錢去買一堆莫名奇妙又不好用的軟體(真差勁說)
它商業上的價值在現階段己經是最低點了囉
Embedded系統您需要記住
1載入程式,即上述的syslinux或你電腦中的LILO
2核心,即linux kernel或MS WindowCE
3shell,在上述例子中我們用busybox來實現sh及一些file tools等
然就你就無往不利了
而最難的部份應該是在不同平台上,如其它CPU非X86系列的
它們有不的的記憶體定址方法,不同的暫存器
有些還沒有浮點運算(大多沒有),
所以要不同的核心不同的Gcc不同的Glibc
對不同的平台核心又要不同的arch
反正呢
X86上除了容量小一點外
可以說所有embedded系統的難關都沒有說
真是個適合入門的題目呀
2007年10月11日 星期四
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言