请教各位同学,Tina-SDK 如何在uboot下单独更新kernel 设备树文件?
-
请教各位同学,Tina-SDK 如何在uboot下单独更新kernel 设备树文件?
-
Tina-u-boot-2018\board\sunxi\sunxi_replace_fdt.c
uboot配置支持 CONFIG_SUNXI_REPLACE_FDT_FROM_PARTITION 选项,编译烧写,重新启动
提示如下错误
这里应该是加载到了设备树,但是启动时 无法启动
-
kernel与kernel-dtb存放在不同的独立分区 uboot启动后,uboot使用uboot-dtb进行初始化,以及设置一些uboot的功能 | V uboot在初始化完flash后从kernel-dtb存放的分区中获取kernel-dtb,用kernel-dtb替换掉正在使用的uboot-dtb | V 更新一些dram以及flash介质参数到kernel-dtb,把kernel-dtb传递给kernel并启动kernel 1.修改uboot目录下对应方案的配置文件 修改configs/sunxxxp1_defconfig文件如下 CONFIG_OF_BOARD=y #CONFIG_OF_SEPARATE is not set 修改以及添加: #CONFIG_OF_BOARD is not set CONFIG_OF_SEPARATE=y ------------> uboot开启独立dtb功能,uboot启动后将使用uboot-dtb(使能哪份dtb请参考Tina独立dtb逻辑介绍中的相同点) CONFIG_SUNXI_REPLACE_FDT_FROM_PARTITION=y -------------->uboot开启从独立分区中读取kernel-dtb的功能 2.在分区表中添加一个分区,并确保下载到分区的dtb数据正确 例如修改sys_partition.fex文件如下: [partition] name = dtb ---------->分区名可以自己设置 size = 512 downloadfile = "sunxi.fex" ---------->分区存放的文件,dtb数据 user_type = 0x8000 3.如下修改uboot的env环境变量文件 添加如下环境变量 replace_fdt=dtb:raw / replace_fdt=dtb:fat:fdtfilename 说明: 在uboot启动的过程中会读取这个env变量,然后进行dtb数据的替换 (1).replace_fdt : 固定字符串,uboot靠它来进行识别,不可修改 (2).dtb : 分区名,从哪个分区获取dtb数据,与上面点2的分区名对应,可以修改 (3).raw / fat : 分区类型,分区是裸分区(raw),还是fat文件系统的分区(fat) (4).fdtfilename : fat文件系统才需要,dtb数据的文件名,如果是裸分区(raw)不需要设置
-
@yteraa 感谢大佬的指点,已经可以,原来我已经找到了实现的代码,就是没有设置环境变量 。
我现在使用buildroot定义
ENV环境变量里进行了配置
保存后 重启,就可以看到它自动加载了看来以后还是要大胆去尝试
-
大胆尝试 坏了再修
-
好强, 好好做笔记
-
你好,我想问一下。使用新的dtb,那sys_package.cfg要把dtb项去掉吗?
-
@qinlinbi 其实都可以,uboot会根据配置,来进行选择。
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号