天天看點

建立根檔案系統

一. 編譯安裝busybox

在busybox代碼安裝文檔裡有說明:

make menuconfig     # This creates a file called ".config"
make                # This creates the "busybox" executable
make install        # or make CONFIG_PREFIX=/path/from/root install
           

1. 編譯busybox要注意,先要配置交叉編譯環境。

如果在make menuconfig裡沒有地方設定的話,可以修改Makefile原檔案, 加上arm-linux-字首。

CROSS_COMPILE   ?= arm-linux-
           

2. 最後一步安裝時,注意要加上你要安裝的路徑,如果不加就會被安裝到系統裡去。

make CONFIG_PREFIX=/workspace/nfs_root install
           

安裝完後會生成以下一些東西:

/bin

/sbin

/usr

linuxrc

二. 安裝glibc庫

因為在交叉編譯器裡已經包含glibc庫了,我們直接把它全部拷貝進來。

cd ../gcc-3.4.5-glibc-2.3.6/arm-linux/lib$
cp *.so /home/s3c/workspace/nfs_root/lib -d
           

三. 建構根檔案系統

1. 先建立終端

mkdir dev
cd dev/

mknod console c 5 1 //建立終端裝置,c 為字元裝置,主裝置号為5,次裝置号為1
mknod null c 1 3
           

這樣就建立了dev/console 和 dev/null。

2. 建構 etc目錄

2.1 建立 etc/inittab 檔案

inittab格式如下:

#         ::sysinit:/etc/init.d/rcS
#         ::askfirst:/bin/sh
#         ::ctrlaltdel:/sbin/reboot
#         ::shutdown:/sbin/swapoff -a
#         ::shutdown:/bin/umount -a -r
#         ::restart:/sbin/init
           

22 建立 etc/init.d/rcS 檔案

在rcS裡可以加上自己想要啟動的腳本。

2.3 建立 etc/fstab 檔案

fstab格式如下:

proc		/proc	proc	defaults    0	0
           

一般 mount -a 會讀取fstab檔案。

3. 建構dev目錄

3.1 使用 mdev 建立裝置檔案

mdev 是 udev 的簡化版,在 busybox 裡有說明和使用:

# Here's a typical code snippet from the init script:
#[1] mount -t sysfs sysfs /sys
#[2] echo /bin/mdev > /proc/sys/kernel/hotplug
#[3] mdev -s

# Of course, a more "full" setup would entail executing this before the previous
# code snippet:
#[4] mount -t tmpfs mdev /dev
#[5] mkdir /dev/pts
#[6] mount -t devpts devpts /dev/pts
           

3.2 靜态建立調備檔案

也就是手動建立。當然也可以從其它系統中拷貝過來,因為linux下都差不多。

4. 建構其它目錄

mkdir proc mnt tmp sys root
           

手動建立這些目錄。這樣一個小的根檔案系統就建立完成了。

繼續閱讀