buildroot制作根文件系统

终于将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.h文件,得到的

./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类似.

记录就到这里吧

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值