busybox概述
#眾所周知,在Linux環境下,一切皆文件,文件可以表示一切。而檔案系統則是這些普通元件的集合。在嵌入式領域中,常常使用基於busybox建構的rootfs來建構檔案系統。
busybox誕生至今已有近20年的歷史,如今已成為嵌入式產業中主流的rootfs建構工具。
busybox的程式碼是完全開源的。你可以進入官方網站,點擊”Get BusyBox”下面的”Download Source”進入原始碼下載介面。
「
#官方網站連結:
https://busybox.net/」

#2. busybox的設定與編譯
#下載原始碼之後將原始碼拷貝到編譯環境中,在編譯前需要對busybox進行配置,主要涉及三方面的內容:
\1. 編譯工具鏈設定
\2. 編譯模式設定
\3. 檔案系統支援的功能
前兩項為必須完成的,而第三點則根據使用者自己的需求自行製定。
執行make menuconfig進入設定介面。

編譯工具鏈設定
設定的交叉編譯工具鏈要同kernel編譯時使用的工具鏈一樣,例如將交叉編譯工具鏈設定為arm-linux-gnueabi-,則進入到build options中進行設定。
當然,也可以進入根目錄下的Makefile檔案中修改對應的交叉編譯工具鏈以及平台資訊等。
編譯模式設定
#設定編譯出的鏡像檔是靜態還是動態的,若是動態編譯,需要手動將交叉編譯工具鏈下的lib庫拷貝到最終的_install資料夾下面,反之則不需要。靜態編譯的配置如下,可以看到括號內的提示是不包含共用函式庫。該項不使能則編譯方式為動態的。
**設定rootfs支援的功能
**
busybox可以支援上百種命令列及其他功能,根據自己的需求可進行增減,例如增加devmem命令行,則勾選上對應的啟用方塊。


編譯
執行make、make install後,在編譯路徑下會產生_install資料夾,裡麵包含bin、sbin、usr等檔案。查看剛加入的devmem指令,發現已經編譯出來了。
此時將busybox下編譯出來的_install拷貝出來,作為rootfs的基本框架,然後再增添其他必須的元件即可。
3.建構rootfs
#將_install下的所有檔案拷貝出並建立lib、etc資料夾,然後將交叉編譯工具鏈arm-linux-gnueabi下的lib庫拷貝到建立的lib資料夾下。

然後再依序建立home、opt、run、sys、var、boot、dev 、media、proc、tmp、usr

設定etc目錄
- 建立fstab檔案

- 建立inittab檔案

- 建立rcS檔案
在建立rcS檔案前需要在etc目錄下手動建立init.d資料夾,並在init.d資料夾下建立rcS。

至此,執行下面的指令,就可以打包產生一個最輕量級的rootfs了。
tar -jcvf rootfs.tar.bz2 *

4.檔案系統驗證
使用mfgtools將壓縮好的rootfs.tar.bz2下載到mmc中,再次啟動系統,可以看到製作的根檔案系統已經可以正常運作,我們先前新增的devmem指令也可以正常執行。

以上是手把手教你建造linux rootfs的詳細內容。更多資訊請關注PHP中文網其他相關文章!

linux设备节点是应用程序和设备驱动程序沟通的一个桥梁;设备节点被创建在“/dev”,是连接内核与用户层的枢纽,相当于硬盘的inode一样的东西,记录了硬件设备的位置和信息。设备节点使用户可以与内核进行硬件的沟通,读写设备以及其他的操作。

区别:1、open是UNIX系统调用函数,而fopen是ANSIC标准中的C语言库函数;2、open的移植性没fopen好;3、fopen只能操纵普通正规文件,而open可以操作普通文件、网络套接字等;4、open无缓冲,fopen有缓冲。

端口映射又称端口转发,是指将外部主机的IP地址的端口映射到Intranet中的一台计算机,当用户访问外网IP的这个端口时,服务器自动将请求映射到对应局域网内部的机器上;可以通过使用动态或固定的公共网络IP路由ADSL宽带路由器来实现。

在linux中,交叉编译是指在一个平台上生成另一个平台上的可执行代码,即编译源代码的平台和执行源代码编译后程序的平台是两个不同的平台。使用交叉编译的原因:1、目标系统没有能力在其上进行本地编译;2、有能力进行源代码编译的平台与目标平台不同。

在linux中,eof是自定义终止符,是“END Of File”的缩写;因为是自定义的终止符,所以eof就不是固定的,可以随意的设置别名,linux中按“ctrl+d”就代表eof,eof一般会配合cat命令用于多行文本输出,指文件末尾。

在linux中,可以利用“rpm -qa pcre”命令判断pcre是否安装;rpm命令专门用于管理各项套件,使用该命令后,若结果中出现pcre的版本信息,则表示pcre已经安装,若没有出现版本信息,则表示没有安装pcre。

linux查询mac地址的方法:1、打开系统,在桌面中点击鼠标右键,选择“打开终端”;2、在终端中,执行“ifconfig”命令,查看输出结果,在输出信息第四行中紧跟“ether”单词后的字符串就是mac地址。

在linux中,rpc是远程过程调用的意思,是Reomote Procedure Call的缩写,特指一种隐藏了过程调用时实际通信细节的IPC方法;linux中通过RPC可以充分利用非共享内存的多处理器环境,提高系统资源的利用率。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Dreamweaver Mac版
視覺化網頁開發工具