飛凌課堂丨用busybox構(gòu)建一個(gè)最小根文件系統(tǒng)
BusyBox是一個(gè)集成了三百多個(gè)最常用Linux命令和工具的軟件。
BusyBox包含了一些簡(jiǎn)單的工具,例如ls、cat和echo等等,還包含了一些更大、更復(fù)雜的工具,例grep、find、mount以及telnet。有些人將BusyBox稱為L(zhǎng)inux工具里的瑞士軍刀。
言歸正傳,我們直接進(jìn)入正題!
busybox構(gòu)建
首先我們需要下載busybox的源碼包,www.busybox.net官網(wǎng)可下載
1、busybox菜單的配置及其編譯
執(zhí)行make menuconfig,出現(xiàn)busybox的配置界面,Busybox的編譯配置和Linux 內(nèi)核編譯配置使用的命令是一樣的。
2、執(zhí)行make編譯
Busybox的配置完成后,接下來(lái)我們開(kāi)始編譯Busybox,執(zhí)行make命令,開(kāi)始編譯Busybox。由于使用的交叉編譯工具鏈的版本不同,有些版本可能會(huì)出現(xiàn)編譯錯(cuò)誤。如果沒(méi)有提示錯(cuò)誤,就可以進(jìn)入下一步的安裝啦。
3、安裝make install
編譯完成后,接下來(lái)我們需要把編譯生成的“二進(jìn)制文件”安裝到“../system”目錄里面,安裝二進(jìn)制文件到“../system”目錄輸入命令“make install”進(jìn)入“../system”目錄,可看到安裝的文件。
4、建立文件系統(tǒng)相關(guān)文件
進(jìn)入ubuntu的根目錄,可以看到ubuntu的文件系統(tǒng),執(zhí)行l(wèi)s可以看到:
實(shí)際上他們每個(gè)文件都有一些特殊性的用途,那么我們要制作一個(gè)文件系統(tǒng)也需要他們之中的必要文件夾或者文件,接下來(lái)我們將手動(dòng)的去創(chuàng)建這些文件夾或者文件。
? 建立etc目錄
/etc放置的是一些配置文件,其不同的子文件夾下是對(duì)于不同功能的配置功能。
① 建立etc/inittab文件
文件系統(tǒng)初始的配置文件,每次進(jìn)入文件系統(tǒng)時(shí)讀取該文件,執(zhí)行該文件所規(guī)定的命令,這里只需要在win系統(tǒng)下打開(kāi)busybox的源碼包里的example/inittab的文件復(fù)制出來(lái)修改一下就可以。
修改內(nèi)容為可為:
# /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文件
內(nèi)容定義為:
#!/bin/sh
mount –a
mkdir /dev/pts
mount -t devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
? 建立dev設(shè)備文件
使用 mdev 建立設(shè)備文件,medv 的使用方法在 doc/medv.txt 上有說(shuō)明。
? 建立其他目錄
mkdir proc/ mnt/ tmp/ sys/ root/
5文件系統(tǒng)的掛載
① 為了確保文件系統(tǒng)可以正確的被掛載,必須設(shè)置允許服務(wù)器去掛載文件系統(tǒng),為此,首先需要設(shè)置服務(wù)器的/etc/exports的內(nèi)容,在exports文件里面加上:/work/root *(rw,sync,no_root_squash)。然后重啟一下nfs服務(wù)器
② 假設(shè)nand已經(jīng)燒寫(xiě)有文件系統(tǒng)平且已經(jīng)進(jìn)入文件系統(tǒng)主要在用mount命令掛載nfs就可以,在板子的文件系統(tǒng)下建立一個(gè)mnt的文件夾mkdir /mnt 然后mount –t nfs –o nolock 192.168.1.110:/work/root /mnt。然后save,設(shè)置完成后。
重啟開(kāi)發(fā)板就可以了。
相關(guān)產(chǎn)品 >
-
OKMX6UL-C開(kāi)發(fā)板
飛凌嵌入式專(zhuān)注imx6系列imx6ul開(kāi)發(fā)板、飛思卡爾imx6ul核心板等ARM嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn),i.mx6UL系列產(chǎn)品現(xiàn)已暢銷(xiāo)全國(guó),作為恩智浦imx6ul,imx6ul開(kāi)發(fā)板,i.mx6提供者,飛凌嵌入式提供基于iMX6 iMX6UL解決方案定制。
了解詳情 -
OKMX6ULL-C開(kāi)發(fā)板
40*29mm,雙網(wǎng)雙CAN,8路串口| i.MX6ULL開(kāi)發(fā)板是基于NXP i.MX6ULL設(shè)計(jì)開(kāi)發(fā)的的一款Linux開(kāi)發(fā)板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對(duì)板連接器,適應(yīng)場(chǎng)景豐富。 了解詳情