本文檔介紹的是使用buildroot搭建最簡單的linux文件系統,Buildroot是Linux平臺上一個構建嵌入式Linux系統的框架。整個Buildroot是由Makefile腳本和Kconfig配置文件構成的。你可以和編譯Linux內核一樣,通過buildroot配置,menuconfig修改,編譯出一個完整的可以直接燒寫到機器上運行的Linux系統軟件(包含boot、kernel、rootfs以及rootfs中的各種庫和應用程序)。 下面我們結合iTop4412開發板來講解一下如何使用 buildroot制作最小文件系統。 1 源碼 我們從 buildroot 官網 buildroot.uclibc點org/download.html獲取 buildroot 源碼包,筆者這里下的最新的是buildroot-2018.02.4.tar.gz
圖片1.jpg (147.76 KB, 下載次數: 40)
下載附件
2019-4-30 10:42 上傳
先拷貝“buildroot-2018.02.4.tar.gz”到我們的Ubuntu虛擬機上,然后在Ubuntu命令行,使用命令“#tar -xcf buildroot-2018.02.4.tar.gz ”,解壓完成后如下圖。
圖片2.jpg (4.9 KB, 下載次數: 34)
下載附件
2019-4-30 10:42 上傳
2 配置如下圖使用命令“cd buildroot-2018.02.4”進入解壓出來的源碼目錄下。
圖片3.jpg (38.29 KB, 下載次數: 31)
下載附件
2019-4-30 10:42 上傳
執行“make menuconfig”命令,進入配置界面,如下圖所示。
圖片4.jpg (51.19 KB, 下載次數: 47)
下載附件
2019-4-30 10:42 上傳
進入“Target options”目錄,將 Target Architecture 配置為 ARM(littlt endian),將 Target Architecture Variant 配置為cortex-A9,將Target ABI 配置為 EABI,將ARM instruction set 配置為 ARM,(如果在其他開發板上測試,修改Target Architecture Variant即可,4418,imx6q為cortex-A9,6818為cortex-A53,imx6ul為cortex-A7)如下圖所示。
圖片5.jpg (60.32 KB, 下載次數: 29)
下載附件
2019-4-30 10:42 上傳
再退回上一界面后,進入 Toolchain 目錄:將 Toolchain type 配置為 External toolchain,然后在 Toolchain 中選擇交叉編譯工具的版本,這里我選 ARM 2014.05,在 Toolchain origin 中選擇 Toolchain to be downloaded and installed,后面編譯時, buildroot 將會自動下載對應的工具鏈并自動安裝。選中 Enable MMU support。如下圖所示。
圖片6.jpg (66.77 KB, 下載次數: 24)
下載附件
2019-4-30 10:42 上傳
退回上一界面后,進入 System configuration 界面,在 System hostname 一欄中輸入開發板的名稱,如 iTop-4412,在 Init system 中選擇 BusyBox,在/devmanagement 中選擇Dynamic using mdev,即使用mdev動態加載設備節點的方式,然后在Path to the permission tables中選擇設備節點的配置表,這里我們一定要選擇system/device_table_dev.txt,否則后面在dev目錄下將不會生成各種設備節點。當然我們也可以手動的配置該文件,添加必要的節點或刪除不需要的節點。Root password為配置進入linux 控制臺終端后的密碼,為空則登錄時不需要密碼,默認登錄用戶名為root。如下圖所示。
圖片7.jpg (282.98 KB, 下載次數: 31)
下載附件
2019-4-30 10:42 上傳
選中Run a getty(login prompt)after boot,再進入該選項:將TTY port配置為ttySAC2,將 baudrate 配置為115200,對應 iTop4412 開發板的控制臺打印串口(其他開發板控制臺串口分別是4418-ttyAMA0、6818-ttySAC0、iMX6Q&iMX6UL-ttymxc0)。如下圖所示
圖片8.jpg (167.57 KB, 下載次數: 36)
下載附件
2019-4-30 10:42 上傳
返回上一層,再繼續返回上一界面,進入 Filesystem images 目錄,選中tar the rootfilesystem,如下圖所示。
圖片9.jpg (68.26 KB, 下載次數: 37)
下載附件
2019-4-30 10:42 上傳
最后保存當前的配置并退出,配置完成。如下圖所示。用戶也可以根據自己的實際需要進行配置。
圖片10.jpg (34.79 KB, 下載次數: 35)
下載附件
2019-4-30 10:42 上傳
3編譯
編譯buildroot,在buildroot根目錄下直接執行make就可以完成了。
圖片11.jpg (27.39 KB, 下載次數: 31)
下載附件
2019-4-30 10:42 上傳
編譯過程中會有如下報錯。
圖片12.jpg (16.03 KB, 下載次數: 27)
下載附件
2019-4-30 10:42 上傳
我們使用命令“export FORCE_UNSAFE_CONFIGURE=1 && make”繼續執行即可,等待編譯完成,第一次編譯的過程中需要自動下載一些工具,所以要保持Ubuntu系統聯網。如下圖。
圖片13.jpg (28.08 KB, 下載次數: 28)
下載附件
2019-4-30 10:42 上傳
4生成鏡像編譯完成后,我們使用命令“cd output”,進入output文件,targer就是我們編譯生成的文件系統,當然buildroot會將其打包成相關鏡像,但是格式種類有限(“menuconfig”中的“Filesystem images”目錄下配置),鏡像就放在image目錄下,我們還是回到“output”目錄下,使用命令“make_ext4fs -s -l 314572800 -a root -L Linux target.img target/”生成文件系統鏡像,如下圖所示。
圖片14.jpg (64.83 KB, 下載次數: 26)
下載附件
2019-4-30 10:42 上傳
如果使用的其他開發板,參照開發板手冊“制作最小文件系統鏡像”相關章節,對“terger”目錄下文件進行打包即可。 我們通過fastboot工具將鏡像燒寫進iTop4412開發板,只替換qt系統鏡像中的system.img文件即可,如下圖所示。
圖片15.jpg (139.76 KB, 下載次數: 36)
下載附件
2019-4-30 10:42 上傳
等待開發板啟動,輸入“root”即可進入。如下圖所示。
圖片16.jpg (44.32 KB, 下載次數: 26)
下載附件
2019-4-30 10:42 上傳
|