buildroot構建根檔案系統

2021-09-02 07:59:03 字數 2600 閱讀 8855

參考文件:

編譯器:gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux,編譯器包在明遠資料盤

,這裡將編譯器解壓到:

/my-imx6/03_tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux

這裡將buildroot解壓到

/home/buildroot/buildroot-2018.02.4

進入buildroot主目錄

執行配置imx6命令

make imx6-sabresd_defconfig

開始配置

執行命令

make menuconfig

彈出如圖所示的框框

配置toochain

由於開發板上核心的版本為3.0.35,所以這裡將kernel headers series設定為3.0.x

但是這樣設定後面編譯的時候會報錯誤

錯誤提示如下:

incorrect selection of kernel headers: expected 3.0.x, got 3.2.x

原因是編譯器裡預設匹配的核心版本並不是3.0.x

在/my-imx6/03_tools/gcc-linaro-arm-linux-gnueabihf-4.7-2013.04-20130415_linux/arm-linux-gnueabihf/libc/usr/include/linux/version.h檔案裡面有定義核心版本號

把核心版本號更改為196661,換成十六進製制即0x30035,即3.00.35;再次編譯,上述錯誤沒有了;

繼續配置核心system configuration:

更改自己想用的使用者名稱

新增mdev支援

設定串列埠即波特率

配置kernel

選擇不編譯核心

配置bootloaders

至此配置完畢

執行命令

make

錯誤來了

you should not run configure as root (set force_unsafe_configure=1 in environment to bypass this check)

解決方法

執行export force_unsafe_configure=1 //或者以非root使用者編譯,我這裡直接用root使用者編譯的

ln: failed to create symbolic link `

/home/buildroot/buildroot-2018.02.4/output/host/arm-buildroot-linux-gnueabihf/sysroot/lib

/arm-linux-gnueabihf』: no such file or directory

由於目錄不存在而導致的建立什麼鏈結失敗,於是手動建立了不存在的目錄,編譯通過;此處有兩處相同型別的錯誤,上述只列出一處,處理方式相同;

主要看看下面這個問題:

tar: can』t change directory to 『/mnt/mmcblkxp2/home/root』: no such file or directory

提示沒有這個目錄,嘗試新建了目錄還是不行,最後在燒錄工具的目錄裡面的ucl2.xml檔案裡面找到這句命令:

原來燒錄過程中執行的命令在這裡面定義的,看命令的意思是把demo解壓到檔案系統的目錄下,那我不要demo應該不影響,於是把這四行刪除了,重新燒錄,ok;

編譯完成

/home/buildroot/buildroot-2018.02.4/output/images

目錄裡面的rootfs.tar即為需要的根檔案系統

下面步驟參照鏈結文件裡面操作的,暫時沒去管它什麼意思,看命令應該是類似配置.bashrc檔案裡面那些東西了,應該是登陸之後的顯示設定

打包的時候,假如跟檔案系統的目錄為/usr/local/rootfs

則一定要

cd /usr/local/rootfs

tar –cjf …/rootfs-buildroot.tar.bz2 *

這樣來打包,即進入到rootfs目錄後再打包,不然會報錯;

燒錄進去,根檔案系統起來了

buildroot製作根檔案系統

終於將buildroot製作的跟檔案系統編譯完成,期間的問題真是多,現將結果整理下作個標記 1.am335x的基本配置 2.編譯器的配置 注意這個地方編譯器是實現準備好的,然後將這個包複製到buildroot dl的目錄中,在toolchain url中填入該名稱,buildroot編譯時就會直接採...

構建根檔案系統

wget make defconfig make cross compile arm linux gnueabi make install編譯完install後會預設安裝在busybox原始碼目錄下 install目錄內,但是此檔案系統並不完整,只有四個目錄 root ls bin linuxrc ...

構建根檔案系統

wget make defconfig make cross compile arm linux gnueabi make install編譯完install後會預設安裝在busybox原始碼目錄下 install目錄內,但是此檔案系統並不完整,只有四個目錄 root ls bin linuxrc ...