2007年10月11日 星期四

[轉載]DOM for X86是粉簡單滴

作者 : 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系統的難關都沒有說
真是個適合入門的題目呀

沒有留言: