先说下问题来源,我之前在海思的开发板上学习过,按照官方建议,在海思SDK中编译出的kernel镜像是uImage格式的,对这个格式我去稍微了解了一下,是在zImage前加了一些uboot的头。在生成uImage的时候,海思官方给的镜像可以自动将dtb压缩进uImage使得烧录的时候最少只需要uboot、kernel、rootfs三个分区。
最近上手f1c100s,看到的大部分资料都是采用dtb+zImage的模式来做的。这个模式我在ZYNQ的开发中见到过,(多说一嘴我见到的ZYNQ有UBOOT+dtb+uImage形式也有petalinux生成的UBOOT+uImage(with dtb)这样的格式),所以理解起来没有什么妨碍,但还是不明白这样安排启动模式的原因是什么。
当我按照网上的方法配置内核的时候,却没有得到包含dtb的zImage镜像,它们依然是分离的。我只确认了这里的配置:
我知道的:
1.dtb和uImage分离可以重用内核;
2.有命令可以手动将dtb整合进zImage,即将dtb添加到zImage文件结尾。
我的问题:
1.f1c100s官方uboot支持uImage启动吗?
2.应该如何配置使得官方的kernel生成包含dtb的zImage镜像?
真诚求问,不胜感激!
离线
不知道你指的的官方是否是tina项目,不过tina本身就是合并的应该不是你想问的。
1. arm32的uboot都支持uImage的启动
2. 其实也可以并且也建议使用fitimage进行打包将kernel和dtb整合
噢,,这么说也是,毕竟uImage就是给uboot用的...那要是选择合并的话,除了上面那个内核配置项之外应该不需要改动其它地方了吧
离线