在buildroot顶层目录下make,出现以下报错。
Incorrect selection of kernel headers: expected 3.2.x, got 4.6.x
原因是在交叉编译器路径下有一个内核版本代码
buildroot在执行check-kernel-headers.sh时会检测这这个内核版本代码
#define LINUX_VERSION_CODE 263680
在我的编译器路径是
/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/arm-linux-gnueabihf/libc/usr/include/linux/version.h
263680 = 40600(h)
所以移位得到4.6.x的内核版本
解决办法是:
通过计算得知LINUX_VERSION_CODE 应该为197120
197120 = 30200(h)
移位后为3.2.x。
#define LINUX_VERSION_CODE 197120
总结:
197120 = 00110000001000000000(b) = 30200(h)对应3.2.x版本内核
263680 = 01000000011000000000(b) = 40600(h)对应4.6.x版本内核
199168 = 00110000101000000000(b) = 30A00(h)对应3.10.x版本内核