您的位置:首页 > 运维架构 > Linux

Linux 3.9.10内核编译错误:multiple (or no) load addresses: This is incompatible with uImages的解决

2016-05-23 12:38 2141 查看
今天尝试编译了一下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。



网上有相似的解决方式,如在编译时加入:LOADADDR参数。但是我觉得,去掉这个选项是应该的,因为目前我的开发板文件dtb,是另外烧写的。

编译成功后,下载到板子上,成功引导了UBI根文件系统,一切正常。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: