这篇随笔主要给出了Hi3559AV100-自己编译了u-boot、kernel及rootfs后,出现烧写错误或者烧写后板载无法启动的解决思路。
问题
(1)对于 u-boot 为官方的,kernel 为自己的生成的话,开机过不了,kernel 镜像无法挂载
现象:(原正常u-boot界面的提示符为hisilicon #)
(2)对于自己编译的 u-boot 虽然可以烧写,但是挂载不了自己的生成 kernel,u-boot 界面为 hisilicon #
(3)对于自己编译的 u-boot 虽然可以烧写,但是挂载不了官方的 kernel,u-boot 界面为 hisilicon #
(4)解决
不管你如何烧写,但出现这个问题后,就算直接烧写正确的镜像文件,板载也无法启动,
最粗博直接的方法为:其他细节不管,直接通过选择擦除全器件,重新下载了官方提供的相关镜像文件或已经确定正确的镜像文件。
原因:
对于(1)(2)(3)的报错情况,归其原因是因为没有遵循板载SDK的版本与虚拟机下SDK版本一致的原则,导致出现了一系列bug,而如何看板载SDK版本可以输入 $ cat /proc/umap/vi进行查看,具体见我之前的随笔-《Hi3559AV100 SDK的详细安装过程及问题解决方法》,地址:https://www.cnblogs.com/iFrank/p/14393287.html
若存在直接无法烧录的情况,则为osdrv make生成的镜像文件不是基于板载flash模式来的,具体见我之前的随笔-《Hi3559AV100 SDK的详细安装过程及问题解决方法》,地址:https://www.cnblogs.com/iFrank/p/14393287.html,需要选择对应板载的flash模式来进行u-boot、kernel、rootfs的编译,如我的板载flash模式为eMMC,osdrv make下,所有对应的文件均为eMMC,否则无法烧录。