buildroot製作根檔案系統

2021-09-30 10:47:11 字數 3651 閱讀 8707

終於將buildroot製作的跟檔案系統編譯完成,期間的問題真是多,現將結果整理下作個標記

1. am335x的基本配置

2. 編譯器的配置

注意這個地方編譯器是實現準備好的,然後將這個包複製到buildroot/dl的目錄中,在toolchain url中填入該名稱,buildroot編譯時就會直接採用該包解壓,後面的uboot,kernel類似.另外在 external toolchain c library (glibc/eglibc)這個裡面選擇的glibc,這個地方也是後來編譯軟體包的時候發現需要這麼做,折騰了很長一段時間.

最初我的toolchain (linaro 2013.06)是這樣配置的,因此沒有後面的external toolchain c library這些選項,buildroot應該是預設採用了eglibc,結果在編譯mplayer,madplayer的時候出現了什麼libasound not found,uint8_t unkonwn 等等莫名奇妙的問題,檢視了uint8_t在inttypes.h的定義,在buildroot的中搜尋inttypes.**件,得到的

./usr/arm-buildroot-linux-gnueabi/sysroot/usr/include/inttypes.h

./opt/ext-toolchain/arm-linux-gnueabihf/libc/usr/include/inttypes.h

對比這兩個檔案並不相同,第乙個inttypes.h很簡單,從軟體包的配置檔案可以看出,--sysroot=/home/yangql/buildroot/output/host/usr/arm-buildroot-linux-gnueabi/sysroot實際編譯的時候恰好採用的是第乙個inttypes.h,不知道這個檔案到底是從**來的,他為什麼跟編譯器的inttypes.h不一致,於是想應該是編譯器的配置這個地方有問題,將編譯器配置圖上之後,煩惱的error終於不見了.

3. 系統配置

在這個配置中也遇到一些問題,在編譯udev的時候,遇到過

checking for style of include used by make... gnu

checking for arm-buildroot-linux-gnueabi-gcc... /home/yangql/buildroot/output/host/usr/bin/arm-linux-gnueabihf-gcc

checking whether the c compiler works... no

configure: error: in `/home/yangql/buildroot/output/build/udev-182':

configure: error: c compiler cannot create executables

see `config.log' for more details

make: *** [/home/yangql/buildroot/output/build/udev-182/.stamp_configured] error 77 在buildroot官網上找了乙個補丁

diff --git a/package/udev/udev.mk b/package/udev/udev.mk

index db86850..b512ec5 100644

--- a/package/udev/udev.mk

+++ b/package/udev/udev.mk

@@ -12,7 +12,7 @@  udev_license_files = copying

udev_install_staging = yes

# mq_getattr is in librt

-udev_conf_env += libs=-lrt

+udev_conf_env += libs="-lrt -lpthread"

udev_conf_opt =            \

--sbindir=/sbin        \

ok.編譯通過,其實這個地方我也折騰了很長的時間,最初是在google上找答案,試過將udev182將udev164,結果又出現新問題,現在總結最快的方法還是應該先從官網下手.

另外乙個地方需要注意的地方remount root filesystem read-write during boot,最好把這個取消,不然會登入終端的時候會出現

ip: rtnetlink answers: operation not permitted

ip: siocsifflags: permission denied

/etc/init.d/s93-am335x-pm-firmware-load: line 4: can't create /sys/devices/ocp.2/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/loading: nonexy

/etc/init.d/s93-am335x-pm-firmware-load: line 5: can't create /sys/devices/ocp.2/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/data: nonexisty

/etc/init.d/s93-am335x-pm-firmware-load: line 6: can't create /sys/devices/ocp.2/44d00000.wkup_m3/firmware/am335x-pm-firmware.bin/loading: nonexy

can't open /dev/ttyo0: permission denied

can't open /dev/ttyo0: permission denied

can't open /dev/ttyo0: permission denied

can't open /dev/ttyo0: permission denied

4.軟體包的配置

這個地方我只是小試了幾個包,其實這個地方沒有什麼問題,軟體的配置buildroot還是做的很好的,可以自動關聯,期間由於編譯器沒有配置好,所以這個地方很多error,原以為是軟體配置的原因,在這個地方花了很多的時間.

5. 下面就是uboot的配置

這個地方沒有什麼好說的,(am335x_evm) u-boot board name這個名字很重要,(u-boot.2013.10.tar.gz) url of custom u-boot tarball複製到buildroot/dl目錄中

6. 核心的配置

這個地方也沒有什麼好說的,和uboot類似.

記錄就到這裡吧

buildroot構建根檔案系統

參考文件 編譯器 gcc linaro arm linux gnueabihf 4.7 2013.04 20130415 linux,編譯器包在明遠資料盤 這裡將編譯器解壓到 my imx6 03 tools gcc linaro arm linux gnueabihf 4.7 2013.04 20...

UBI根檔案的製作

ubi檔案系統的簡介 我們傳統對flash上的日誌和壞塊管理都是通過mtd flash專用檔案系統來進行管理 如jffs2 yaffs2 但這兩種檔案系統也存在著一些技術瓶頸 磨損均衡,讀寫速度等問題。所以在這樣的背景下,我們通常用ubi檔案系統來對flash進行管理就比較方便。ubi檔案是建立在u...

製作根檔案系統

製作根檔案系統 目錄實驗內容2 實驗目的2 實驗材料2 實驗工具2 實驗步驟3 1 編譯 安裝 busybox busybox 1.16.0.tar.bz2 3 1.新增動態庫與載入器,5 3.構建 etc目錄,6 3.1建立 etc inittab檔案6 3.2建立 etc fstab檔案7 3....