解决编译buildroot报错 Incorrect selection of kernel headers问题

编译buildroot时报以下错误:
Incorrect selection of kernel headers: expected 4.9.x, got 4.18.x
package/pkg-generic.mk:211: recipe for target ‘busybox/buildroot-2018.02.1/output/build/toolchain-external-custom/.stamp_configured’ failed
make: ***
[busybox/buildroot-2018.02.1/output/build/toolchain-external-custom/.stamp_configured] Error 1
原因是配置buildroot工具链的linux内核版本与工具链本身自带的内核版本标识不一致导致的,我们只要修改下工具链自带的内核版本表示即可。
1、在笔者电脑找交叉编译工具链安装路径:

whereis arm-linux-gnueabihf-gcc

找到路径如下:

arm-linux-gnueabihf-gcc: /opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc

2、进入交叉工具链安装路径,查找version.h文件

 cd /opt/gcc-arm-8.2-2018.08-x86_64-arm-linux-gnueabihf/
 find -name "version.h"

找到文件如下:

./arm-linux-gnueabihf/libc/usr/include/linux/version.h

3、编辑对应的version.h文件

sudo vi ./arm-linux-gnueabihf/libc/usr/include/linux/version.h

里面有个宏定义就是内核版本标识

#define LINUX_VERSION_CODE 266752

266752对应16进制为0x041200,拆分每个字节后对应的版本号为4.18.0与错误提示的log一致。
我们需将其改为4.9.0,对应16进制为0x40900,即10进制为264448。

#define LINUX_VERSION_CODE 264448

保存后,重新编译即可清除该错误。

sudo make clean
sudo make
  • 10
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值