飛凌課堂丨用busybox構(gòu)建一個(gè)最小根文件系統(tǒng)

原創(chuàng) 2020-03-06 17:06:00 busybox

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)我們開始編譯Busybox,執(zhí)行make命令,開始編譯Busybox。由于使用的交叉編譯工具鏈的版本不同,有些版本可能會(huì)出現(xiàn)編譯錯(cuò)誤。如果沒有提示錯(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)下打開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)燒寫有文件系統(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è)置完成后。

重啟開發(fā)板就可以了。

 

 


相關(guān)產(chǎn)品 >

  • OKMX6UL-C開發(fā)板

    飛凌嵌入式專注imx6系列imx6ul開發(fā)板、飛思卡爾imx6ul核心板等ARM嵌入式核心控制系統(tǒng)研發(fā)、設(shè)計(jì)和生產(chǎn),i.mx6UL系列產(chǎn)品現(xiàn)已暢銷全國(guó),作為恩智浦imx6ul,imx6ul開發(fā)板,i.mx6提供者,飛凌嵌入式提供基于iMX6 iMX6UL解決方案定制。

    了解詳情
    OKMX6UL-C開發(fā)板
  • OKMX6ULL-C開發(fā)板

    40*29mm,雙網(wǎng)雙CAN,8路串口| i.MX6ULL開發(fā)板是基于NXP i.MX6ULL設(shè)計(jì)開發(fā)的的一款Linux開發(fā)板 ,主頻800MHz,體積小,其核心板僅40*29mm,采用板對(duì)板連接器,適應(yīng)場(chǎng)景豐富。 了解詳情
    OKMX6ULL-C開發(fā)板

推薦閱讀 換一批 換一批