首頁 > 系統教程 > Linux > 手把手教你建造linux rootfs

手把手教你建造linux rootfs

王林
發布: 2024-02-05 15:51:16
轉載
660 人瀏覽過

busybox概述

#眾所周知,在Linux環境下,一切皆文件,文件可以表示一切。而檔案系統則是這些普通元件的集合。在嵌入式領域中,常常使用基於busybox建構的rootfs來建構檔案系統。

busybox誕生至今已有近20年的歷史,如今已成為嵌入式產業中主流的rootfs建構工具。

busybox的程式碼是完全開源的。你可以進入官方網站,點擊”Get BusyBox”下面的”Download Source”進入原始碼下載介面。

#官方網站連結:
https://busybox.net/

手把手教你构建linux rootfs

#2. busybox的設定與編譯

#下載原始碼之後將原始碼拷貝到編譯環境中,在編譯前需要對busybox進行配置,主要涉及三方面的內容:

\1. 編譯工具鏈設定

\2. 編譯模式設定

\3. 檔案系統支援的功能

前兩項為必須完成的,而第三點則根據使用者自己的需求自行製定。
執行make menuconfig進入設定介面。

手把手教你构建linux rootfs

編譯工具鏈設定

設定的交叉編譯工具鏈要同kernel編譯時使用的工具鏈一樣,例如將交叉編譯工具鏈設定為arm-linux-gnueabi-,則進入到build options中進行設定。 手把手教你构建linux rootfs

當然,也可以進入根目錄下的Makefile檔案中修改對應的交叉編譯工具鏈以及平台資訊等。 手把手教你构建linux rootfs

編譯模式設定

#設定編譯出的鏡像檔是靜態還是動態的,若是動態編譯,需要手動將交叉編譯工具鏈下的lib庫拷貝到最終的_install資料夾下面,反之則不需要。靜態編譯的配置如下,可以看到括號內的提示是不包含共用函式庫。該項不使能則編譯方式為動態的。 手把手教你构建linux rootfs

**設定rootfs支援的功能

**

busybox可以支援上百種命令列及其他功能,根據自己的需求可進行增減,例如增加devmem命令行,則勾選上對應的啟用方塊。

手把手教你构建linux rootfs手把手教你构建linux rootfs

編譯

執行make、make install後,在編譯路徑下會產生_install資料夾,裡麵包含bin、sbin、usr等檔案。查看剛加入的devmem指令,發現已經編譯出來了。 手把手教你构建linux rootfs

此時將busybox下編譯出來的_install拷貝出來,作為rootfs的基本框架,然後再增添其他必須的元件即可。

3.建構rootfs

#將_install下的所有檔案拷貝出並建立lib、etc資料夾,然後將交叉編譯工具鏈arm-linux-gnueabi下的lib庫拷貝到建立的lib資料夾下。

手把手教你构建linux rootfs

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

手把手教你构建linux rootfs

設定etc目錄

  • 建立fstab檔案
手把手教你构建linux rootfs
  • 建立inittab檔案
手把手教你构建linux rootfs
  • 建立rcS檔案

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

手把手教你构建linux rootfs

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

tar -jcvf rootfs.tar.bz2 *
登入後複製
手把手教你构建linux rootfs

4.檔案系統驗證

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

手把手教你构建linux rootfs

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

來源:lxlinux.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板