Linux跟文件系統的制作


1、文件系統制作的步驟

1)通過busybox工具生成/bin /sbin /linuxrc /usr/bin  /usr/sbin

2) 使用交叉編譯工具鏈,構建/lib目錄

3)創建其他空目錄

4)配置etc目錄,並初始化/dev 目錄

5)利用工具制作跟文件系統映像文件

2、busybox文件系統制作

2.1busybox源碼下載

使用的是韋東山老師所給資料busybox-1.7.0.tar.bz2版本,也可以從http://www.busybox.net/進行下載

看網站最新的有很多版本

 

 

 

 

 

 

 

 

2.2編譯安裝busybox

1)將busybox壓縮包放在/work/tools 目錄下,進入該目錄執行以下命令進行解壓縮

tar xjf busybox-1.7.0.tar.bz2

2)然后進入busybox-1.7.0目錄,執行“make menuconfig”,對各個選項進行配置

3)然后修改busybox的makefile

 

然后執行“make”命令進行編譯。

4)編譯完成后,執行“make CONFIG_PREFIX=/work/nfs_root/second_fs/ install”,我自己的文件系統都是放在了/work/nfs_root/second_fs/這個路徑里面。

此步一定要注意,不能直接執行“make install”,否則會破壞系統。

5)執行完成后,就可以看到/work/nfs_root/second_fs這個目錄里面就有了bin sbin usr lib linuxrc這樣的文件夾和文件。

3、創建其他空目錄

/lib加載庫文件的目錄

/etc 初始化所需的配置文件的目錄

/dev 初始化后存放設備文件的目錄

/proc /mnt /tmp /sys /root 系統啟動之后會用到的目錄

4、使用glibc庫構建跟文件系統

由於開發板上只需要加載器和動態庫,所以將glibc庫里的庫文件拷貝到跟文件系統的/lib目錄里面

cd /work/nfs_root/gcc-3.4.5-glibc-2.3.6/arm-linux/lib

cp *.so* /work/nfs_root/second_fs/lib -d”  

/*擴展*/

 

 

 

 

這樣庫文件就算是加載進去了。

5、配置/etc目錄,並初始化/dev目錄

5.1配置/etc目錄

在/etc目錄需要3個文件:/etc/inittab   /etc/init.d/rcS   /etc/fstab

5.1.1Inittab主要用於設備初始化內容如下所示

 

5.1.2rcS文件是一個腳本文件,可以添加想自動執行的命令,具體內容如下圖所示。在創建完文件之后,需要給文件添加可執行的屬性“chmod +x etc/init.d/rcS

 

5.1.3fstab用來定義系統支持的文件類型,具體內容如下

 

5.2/dev目錄初始化

5.2.1進入work/nfs_root/second_fs/dev目錄,由於使用mdev構造/dev目錄,但是mdev是通過init進程來啟動的,所以在使用mdev構造/dev目錄之前,init進程至少要用到設備文件/dev/consle /dev/null。通過如下命令創建這兩個設備文件

sudo mknod console c 5 1

sudo mknod console c 1 3

當mdev啟動后,會自動在/dev目錄下創建各種設備文件。

6、yaffs2映像文件和jffs2映像文件的制作

6.1 yaffs2映像文件的制作

6.1.1使用工具

Yaffs源碼中有個utils目錄,進入到該目錄下面

 將文件拷貝到/uer/local/bin目錄下面

Sudo cp mkyaffs2image /usr/local/bin

Sudo chmod +x /usr/local/bin/myaffs2image

/*擴展*/

 

6.1.2制作映像文件

進入到以下目錄“cd /work/nfs_root”(second_fs也在此根目錄下面)

mkyaffs2image second_fs second_fs.yaffs2

生成后的文件就可以使用了,使用DWN軟件通過USB device進行下載。

6.2jffs2映像文件制作

6.2.1先安裝zlib,解壓縮設備工具包,然后對工具包源碼編譯生成mkfs.jffs2這個工具(注意存放的目錄是工具目錄,上次自己將工具的lib文件放在了開發板根目錄下面的lib目錄里,並且進行了文件的覆蓋,導致系統文件的崩潰,現在都沒有能力進行解決)

 

6.2.2制作映像文件

我使用的制作指令如下,和書上的不一樣

mkfs.jffs2 -n -s 2048 -e 128KiB -d second_fs -o second_fs.jffs2

 

 

6.3根據不同跟文件系統類型需要在uboot啟動后,對bootargs選項進行設置。

原來bootargs原來的值為noinitrd root=/dev/mtdblock3 rootfstype=yaffs2 init=/linuxrc console=ttySAC0

設置之后對bootargs進行設置noinitrd root=/dev/nfs nfsroot=192.168.100.3:/work/nfs_root/first_fs ip=192.168.100.17:192.168.100.3:192.168.100.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM