飛凌課堂丨用busybox構建一個最小根文件系統

BusyBox是一個集成了三百多個最常用Linux命令和工具的軟件。

BusyBox包含了一些簡單的工具,例如ls、cat和echo等等,還包含了一些更大、更復雜的工具,例grep、find、mount以及telnet。有些人將BusyBox稱爲Linux工具裏的瑞士刀。

言歸正傳,我們直接進入正題!

busybox構建

首先我們需要下載busybox的源碼包,www.busybox.net官網可下載

飛凌課堂丨用busybox構建一個最小根文件系統

1、busybox菜單的配置及其編譯
執行make menuconfig,出現busybox的配置界面,Busybox的編譯配置和Linux 內核編譯配置使用的命令是一樣的。

飛凌課堂丨用busybox構建一個最小根文件系統

2、執行make編譯
Busybox的配置完成後,接下來我們開始編譯Busybox,執行make命令,開始編譯Busybox。由於使用的交叉編譯工具鏈的版本不同,有些版本可能會出現編譯錯誤。如果沒有提示錯誤,就可以進入下一步的安裝啦。

3、安裝make install

編譯完成後,接下來我們需要把編譯生成的“二進制文件”安裝到“../system”目錄裏面,安裝二進制文件到“../system”目錄輸入命令“make install”進入“../system”目錄,可看到安裝的文件。

4、建立文件系統相關文件
進入ubuntu的根目錄,可以看到ubuntu的文件系統,執行ls可以看到:

飛凌課堂丨用busybox構建一個最小根文件系統

實際上他們每個文件都有一些特殊性的用途,那麼我們要製作一個文件系統也需要他們之中的必要文件夾或者文件,接下來我們將手動的去創建這些文件夾或者文件。

▶ 建立etc目錄

/etc放置的是一些配置文件,其不同的子文件夾下是對於不同功能的配置功能。

① 建立etc/inittab文件

文件系統初始的配置文件,每次進入文件系統時讀取該文件,執行該文件所規定的命令,這裏只需要在win系統下打開busybox的源碼包裏的example/inittab的文件複製出來修改一下就可以。

修改內容爲可爲:

/etc/inittab

::sysinit:/etc/init.d/rcS

::askfirst:-/bin/sh

Stuff to do before rebooting

::ctrlaltdel:/sbin/reboot

::shutdown:/bin/umount -a -r

② 建立etc/init.d/rcS文件

同樣的參考busybox的源碼包裏的examples/bootfloppy/etc/init.d/rcS文件

內容定義爲:

#!/bin/sh

mount –a

mkdir /dev/pts

mount -t devpts /dev/pts

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

mdev -s

▶ 建立dev設備文件

使用 mdev 建立設備文件,medv 的使用方法在 doc/medv.txt 上有說明。

▶ 建立其他目錄

mkdir proc/ mnt/ tmp/ sys/ root/

5文件系統的掛載

① 爲了確保文件系統可以正確的被掛載,必須設置允許服務器去掛載文件系統,爲此,首先需要設置服務器的/etc/exports的內容,在exports文件裏面加上:/work/root *(rw,sync,no_root_squash)。然後重啓一下nfs服務器

② 假設nand已經燒寫有文件系統平且已經進入文件系統主要在用mount命令掛載nfs就可以,在板子的文件系統下建立一個mnt的文件夾mkdir /mnt 然後mount –t nfs –o nolock 192.168.1.110:/work/root /mnt。然後save,設置完成後。

重啓開發板就可以了。

原文鏈接:https://www.forlinx.com/article_view_269.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章