红联Linux门户
Linux帮助

Linux 3.9.10内核编译错误This is incompatible with uImages

发布时间:2016-10-23 09:36:48来源:linux网站作者:tcjy1000
今天尝试编译了一下Linux 3.9.10,最后提示以下错误:
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
multiple (or no) load addresses: 
This is incompatible with uImages
Specify LOADADDR on the commandline to build an uImage
make[1]: *** [arch/arm/boot/uImage] 错误 1
make: *** [uImage] 错误 2
 
为了对比,编译了一下:Linux 3.9.8,是能正常生成uImage的,因此应该不是mkimage工具的错误,可能是内核配置或是其他问题。经过认真分析内核的配置,找到如下关于dtb 文件的问题(设备树文件:针对具体的开发板等)。
 
在boot选项里有一个:
[ ]Use appended device tree blob to zImage (EXPERIMENTAL) 
把device tree blob文件附加到:zImage,这个选项默认为打开的,关闭即可正常的编译出uImage。
Linux 3.9.10内核编译错误This is incompatible with uImages
 
网上有相似的解决方式,如在编译时加入:LOADADDR参数。但是我觉得,去掉这个选项是应该的,因为目前我的开发板文件dtb,是另外烧写的。
编译成功后,下载到板子上,成功引导了UBI根文件系统,一切正常。
 
本文永久更新地址:http://www.linuxdiyf.com/linux/25296.html