平台:orangepi 3
芯片:全志 H6
Linux 内核版本:4.9.118
uboot 版本: 2014.07
最近项目上总是遇见一个问题 ,就是uboot 启动过程中提示
** File not Found /boot/dts/sunxi/sunxi-orangepi-3.dts**
libfdt fdt_check_header:FDT_ERR_BADMAGIC
但是直接查看内存卡后看到设备树文件存在 并且在该目录下,并且 在uboot中使用fdt 命令查询设备树都可以查看到 ,使用了fdt header 可以查看到 设备树头部信息 使用fdt print 也可以打印出 设备树的信息
说明设备树应该没有问题,并且在ubuntu 中 对 该目录下的文件进行修改 只是 把原来的东西 剪切后再粘贴 等于没有动任何东西吧 应该, 再使用后就可以找到设备树并成功启动内核了
真是玄学, 也尝试过其他解决方式,重新装过uboot 重新换过 内核 ,重新烧写镜像,甚至怀疑是内存卡的问题,换过别的牌子的内存卡 使用过emmc 但该问题一直存在。
于是 直接查看该报错出处 , 发现在检查头部信息的函数 fdt_check_header 中 ,这个函数的调用在 board_init_f ->fdtdec_prepare_fdt 函数中,该函数内容如下:
int fdtdec_prepare_fdt(