歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux根文件系統的制作實例

Linux根文件系統的制作實例

日期:2017/2/28 14:55:34   编辑:Linux教程

花了我幾個小時的時間,最後終於把那個Linux根文件系統制作好了~

(一):首先Linux根文件系統的制作需要的開發環境。

1:移植Linux內核版本: linux-3.0.1 (只要能用就行)

2:交叉編譯工具:arm-linux-gcc 4.3.2(任選) 下載見 http://www.linuxidc.com/Linux/2011-04/34049.htm

3:文件系統制作工具:Busybox-1.13.3(任選) 下載見 http://www.linuxidc.com/Linux/2011-08/40704.htm

4:etc.tar.gz

(二):交叉編譯環境的搭建(這一步我在我的博客其他文章裡面有 詳細的搭建過程,很簡單滴~)

(三):創建根文件系統的目錄

1:在主目錄下面新建一個文件夾rootfs

[root@localhost fs]# ls

[root@localhost fs]# mkdir rootfs

[root@localhost fs]# cd rootfs/

[root@localhost rootfs]# mkdir bin dev etc lib proc sbin sys usr mnt tmp var

[root@localhost rootfs]# mkdir usr/bin usr/lib usr/sbin lib/modules

2:創建設備文件

[root@localhost rootfs]#cd dev/

[root@localhost dev]# mknod -m 666 console c 5 1

[root@localhost dev]# mknod -m 666 null c 1 3

說明:mknod -m 666 console c 5 1

console 為設備文件名,自己可以隨便取,c代表是字符型設備(可選b,塊設備)

5是主設備號 /dev/devices裡面記錄現有的設備

1是次設備號當你要給兩個同樣的設備上一個驅動的時候就要分了,從0開始,1就是第二個了 ,對於字符設備,次設備號就表示同類型設備的不同設備。666代表訪問的權限

3:配置/etc/

這裡有兩種方法

1:可以把系統上面的/etc/下面一些比較重要的文件拷貝過來

2:也可以直接在網上下載一個etc.tar.gz

#tar -zxvf etc.tar.gz

將解壓出來的文件etc下面的東西全部拷貝到上面新建的根目錄下面/rootfs/etc/下面

etc/inittab

etc/profile

etc/fstab

etc/init.d/

etc/init.d/rcS

4:編譯內核模塊

首先進入內核目錄下面(內核目錄和根文件系統目錄不是在同一個目錄下面的)

# cd linux-3.0.1

#make modules ARCH=arm CROSS_COMPILE=arm-linux-

說明:在這一步出現一些問題,發現怎麼編譯也不行,後來由下載了一個內核,編譯通過

5:安裝內核模塊

#make modules_install ARCH=arm INSTALL_MOD_PATH=/home/xiongyao/rootfs

說明:將內核裡面編譯好的模塊放在根文件系統目錄下面

6:配置busybox

說明:關於busybox:(百度百科)

busybox是一個集成了一百多個最長用linux命令和工具的軟件。BusyBox 包含了一些簡單的工具,例如ls、 cat 和 echo等等,還包含了一些更大、更復雜的工具,例如 grep、find、mount 以及 telnet。有些人將 BusyBox 稱為 Linux 工具裡的瑞士軍刀。簡單的說BusyBox就好像是個大工具箱,它集成壓縮了 Linux 的許多工具和命令,也包含了 Android 系統的自帶的shell。

# tar -xvzf busybox-1.13.3.tar.gz

# cd busybox-1.13.3

#make menuconfig

說明:這一步是要配置busybox的圖形界面,使之生效,運行這個命令可能會出錯,原因是因為你沒有

安裝那個圖像界面的依賴庫,在終端裡面輸入apt-get install libncurses5-dev 就ok了~

Busybox Settings-----> build Options----->

選中Build BusyBox as a static binary(no shared libs)

Busybox Settings-----> InstallationOptions ------------>

選中 “don't use /usr” 選中此項可以避免busybox被安裝到宿主系統的/usr目錄下,破壞宿主系統

Busybox Installation Prefix(/home/fs/myrootfs) 這裡要輸入busybox安裝的絕對路徑

7:編譯安裝busybox

#make ARCH=arm CROSS_COMPILE=arm-linux-

#make install

到現在為止,根文件系統就完全做好了,你可以把這個根文件系統制作成ramdisk系統

8:、將根文件系統制作 成ramdisk

#genext2fs -b 8192 -d /home/fs/myrootfs/ ramdisk

說明:這一步出現問題,後來發現是這個分配的空間太小,於是將8192改為120400

#genext2fs -b /home/xiongyao/rootfs/ ramdisk

#gzip -9 -f ramdisk

這樣就可以將ramdisk.gz下載到開發板上面去了

在制作的過程中可能會遇到各種各樣的問題,遇到問題沒事,我一般直接上百度,裡面有各種解決方案,只要用心去理解,相信肯定能制作成功!

Copyright © Linux教程網 All Rights Reserved