1. 程式人生 > >構建根檔案系統

構建根檔案系統

read  INSTALL  rirst.

總結:應用程式所需要的檔案

1./dev/console /dev/null

2.配置檔案/etc/inittab

3.配置檔案裡面指定的應用程式

4.庫檔案

5.init本身,即busybox

以上就是最小根檔案系統所需要的項

編譯busybox

先閱讀install檔案可知道如何編譯它

make menuconfig

make

make install(這裡安裝要注意)

安裝到我們指定的某個檔案裡面

使用make CONFIG_PREFIX=/path/from/root install

編譯需要在makefile裡面加上cross_compiler裡面加上arm-linux-

一、建立console

現在上面編譯後busybox目錄是work/FL_fs/first_fs

在此目錄下:ls /dev/console /dev/null -l

crw------- 1 root root 5, 1 2015-01-05 20:57 /dev/console

crw-rw-rw- 1 root root 1, 3 2015-01-05 20:30 /dev/null

那麼根據它來建立console null等裝置

#mkdir dev

#cd dev

#mknod console c 5 1

#mknod null c 1 3

#ls -l

顯示:

 crw-r--r-- 1 root root 5, 1 2015-05-06 20:39 console

crw-r--r-- 1 root root 1, 3 2015-05-06 20:40 null

表示建立成功

二、配置項

#cd work/FL_fs/first_fs

#mkdir etc

#vim  etc/inittab

輸入:

console::askfirst:-/bin/sh

三、安裝c庫

#cd lib

#cp /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linux/lib *.so* /work/FL_fs/first_fs/lib -d

end

 最小根檔案系統已經完成。

 此時需要製作映象檔案以燒寫到硬體。

 yaffs2和jffs檔案系統

 1.製作yaffs2

 #cd work/system

 yaffs_source_util_large_smmall_page_nand.tar.bz2

 #tar xjf  yaffs_source_util_large_small_page_nand.tar.bz2

 #cd Developement_util_ok

 #cd yaffs2

 #cd utils

 #make

 #cp mkyaffs2image /usr/local/bin

 #chmod +x /usr/local/bin/mkyaffs2image

#cd /work/FL_fs

 #mkyaffs2image first_fs first_fs.yaffs2

 此後燒寫到開發板裡面。

 可以啟動,並能使用ls,cd等命令。

 如何改進?

 #cd ../first_fs

 #mkdir proc

 單板上有虛擬系統

 #mkdir proc

 #mount -t proc none /proc

 #ps

 可以看到哪些程式及其內容

   PID TTY          TIME CMD

383 pts/2    00:00:00 ps

30564 pts/2    00:00:00 su

30573 pts/2    00:00:00 bash

383 程序號

#cd 383

如果不想 手動掛載 #mount -t proc none /proc

也可以寫到配置檔案裡面

#vim inittab

++ ::sysinit:/etc/init.d/rcS  需要指令碼

#mkdir etc/init.d

#vim rcS

##mount -t proc none /proc

#chmod +x /etc/init.d/rcS

就可以了

上面#mount -t proc none /proc

也可以使用#mount -a

#mount -a是什麼意思?

讀出/etc/fstab內容來掛載

怎麼使用呢?

#mount -a會依賴fstab檔案

fstab檔案內容有哪些呢?

#device         mount-point    type     options     dump   fsck

proc        /proc        proc defaults    0       0

那麼,在/etc/fstab裡面輸入:

proc   /proc    default 0 0

然後在指令碼rcS裡面使用#mount -a

然後再製作yaffs映象檔案就和第一種方法是一樣的。

可以使用#cat /proc/mounts檢視掛載了哪些檔案系統

繼續

上面的dev是手工建立

那麼怎麼自動建立dev下面的裝置節點呢

方法:使用mdev

怎麼使用mdev?  在/

可以檢視mdev.txt

[1] mount -t sysfs sysfs /sys

[2] echo /bin/mdev > /proc/sys/kernel/hotplug

[3] mdev -s

[4] mount -t tmpfs mdev /dev

[5] mkdir /dev/pts

[6] mount -t devpts devpts /dev/pts

這6步就可以了。

所以:

1、#cd ../first_fs

#mkdir sys

[1] mount -t sysfs sysfs /sys

[4] mount -t tmpfs mdev /dev

應該怎麼做?

#vim /etc/fstab

#device         mount-point    type     options     dump   fsck

proc        /proc        proc defaults    0        0

sysfs           /sys           sysfs    default     0      0

tmpfs           /dev           tmpfs    default     0      0

[2] echo /bin/mdev > /proc/sys/kernel/hotplug

[3] mdev -s

[5] mkdir /dev/pts

[6] mount -t devpts devpts /dev/pts

怎麼做呢?

#cd /etc/init.d/rcS

mount -a

mkdir /dev/pts/

mount -t devpts devpts /dev/pts

echo /sbin/mdev > /proc/sys/kernel/hotplug

mdev -s