今天尝试编译了一下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根文件系统,一切正常。
阅读(5831) | 评论(0) | 转发(0) |