buildroot新手/初学编译过程及错误解决

Ubuntu系统在编译前先安装库:
sudo apt-get install g++ bison flex texinfo git hgsubversion whois
编译设置:make menuconfig设置:
buildroot新手/初学编译过程及错误解决_第1张图片
注意target ABI是EABI还是EABIHF,由于我使用的是老一代的交叉编译工具,所以还是EABI。
在build options里Location to save buildroot config可以通过make savedefconfig来保存你的config文件到你指定的位置。
buildroot新手/初学编译过程及错误解决_第2张图片
Toolchain中是设置工具链的路径以及工具链前缀,这个根据自己的交叉编译工具的安装路径来填写,路径填写到bin的上层目录就可以。如下图,就是填写*_GNU_Linux这个就行,填完的路径见上图。
buildroot新手/初学编译过程及错误解决_第3张图片
在工具链的gcc版本中选择4.6.x,这个选项可以暂时用-v选项先查看你的交叉编译工具的gcc版本,比如:arm-xilinx-linux-gnueabi-gcc -v ,我这个显示是4.8.3。但是在buildroot编译时报错,提示应该是4.6.x,所以我就改为4.6.x了。然后make clean之后编译就没问题。
工具链内核头版本查看:~/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/arm-xilinx-linux-gnueabi/libc/usr/include/linux/version.h
在这个中有两行话:

#define LINUX_VERSION_CODE 196609
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

196609的十六进制是0X30001,换算成内核版本就是3.0.1的内核,具体换算方法:
linux内核是 M.m.p:在下面的LINUX_VERSION_CODE 是用16进制来右移
M = ( LINUX_VERSION_CODE >> 16 ) & 0xFF
m = ( LINUX_VERSION_CODE >> 8 ) & 0xFF p = ( LINUX_VERSION_CODE >> 0 ) & 0xFF
得到自己的内核版本后,就设置对应的选项,这一项我没什么问题。
然后make即可,如果想详细点,就参考这位博主

按照这个教程,如果编译有错误,执行下面步骤:

make clean 
make menuconfig 根据上面的进行配置
make

如果make错误,都要执行上面3步。尤其是第一步,清理之前令人讨厌的东西,在编译时遇到了很多错误,一个一个排除后,经过在google和各大国外论坛搜索后,发现每个问题的解决方法都是比较复杂,最后经过不断被错误的鞭打后,总结出上面3条黄金命令。泪的教训。

你可能感兴趣的:(buildroot)