製作簡易 Floppy Linux
在這裡必須說明一下,所製作的簡易 Floppy Linux 是一個功 能非常精簡的 Linux ,其功 能簡述為:只支援軟碟、並不支援硬碟及光碟, ? 有網路功 能,可以執行簡單的 shell 程式及一些常用的工具程式。接下來,你應該準備一些發展 Floopy Linux 的 source package 及工具程式: kernel source 、 syslinux 、 BusyBox 。首先,你可以觀察出這個 Floppy Linux 的開機過程與上述開機過程稍有不同:將 LILO 更換成 syslinux ,開機完之後直接提供一個 shell 給使用者用。 Floppy Linux 完整開機如圖所示。
首先針對我們的 Floppy Linux 來量身製作它所屬 kernel ( PS :請把所需的 driver make 進核心中),聰明的你應該很快設定好簡易 kernel 所需的選項並 make 出 kernel 來。在這裡並不論討如何 make kernel ,假如你對如何 make kernel 不懂的話,你應該多下一點功 夫在這上面或參考 HowTo 。以下為 make kernel 命令。
#make menuconfig
#make dep
#make zImage 或 make bzImage (若核心大於 640K 的話)
接下來,我們需要一些常用的工具程式, BusyBox 是一個蠻不錯的選擇。在這裡先對這個大名鼎鼎 BusyBox 簡單的介紹一下: BusyBox 它包含了七十多種 Linux 上標準的工具程式,它只需要的磁碟空間僅僅幾百 k (視所選擇工具程式的數目來決定大小),在嵌入式系統上常用到它(例如 Linux Router Project 和 Debian boot floppies 就使用到它)。你可以在網址 http://busybox.lineo.com 找到一些參考資料及下載它,它是 Open Source tool 由 lineo,Inc 這家嵌入廠商所贊助。好了趕緊建立出一個靜態連結的 BusyBox ( Floppy Linux 這一個例子用到了 init 、 ls 、 cp 、 cat 、 mount 、 umount 、 more 、 ps 、 sh ),將 BusyBox 編譯成靜態連結的原因就是不希望 Floppy Linux 使用到 glibc 而增加磁碟的使用空間。以下為建立 BusyBox 的步驟:
#tar zxvf busybox-0.51.tar.gz
修改 Makefile 中的 DOSTATIC 參數,從 false 改為 true
#make
到現在為止,我們已經有了 Liunx kernel 及一些常用的工具程式,似乎還少了 root filesysem 。所以我們現在為 Floppy Linux 開始來打造迷你的 root filesystem 。在開始建造 root filesystem 之前你必須成為 super uesr 也就是 root ,因為我們必須要用到 mknod 不得不為 root 。首先為 root filesystem 建一個目錄叫做 floppy-linux ,然後進入 floppy-linux 目錄內:
#mkdir floppy-linux
#cd floppy-linux
接下來的步驟就是為 root filesystem 建立一些標準的目錄:
#mkdir dev etc etc/rc.d bin proc mnt tmp var
#chmod 755 dev etc etc/rc.d bin mnt tmp var
#chmod 555 proc
#ln -s bin sbin
進入 /dev 目錄下建立一般終端機設備:
#cd dev
#mknod tty c 5 0
#mknod console c 5 1
#chmod 666 tty console