今天尝试编译了一下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内核编译错误:multiple (or no) load addresses: This is incompatible with uImages的解决_Image




LOADADDR参数。但是我觉得,去掉这个选项是应该的,因为目前我的开发板文件dtb,是另外烧写的。




       编译成功后,下载到板子上,成功引导了UBI根文件系统,一切正常。