RK3568开发笔记整理之dtb.img和dtbo.img
内核设备树 dtb.img
RK 平台 dtb.img 镜像文件是由内核源码中编译出来的,单独编译内核源码时我们会使用下面这些命令:
make ARCH=arm64 rockchip_defconfig rk356x_evb.config android-11.config
make ARCH=arm64 rk3568-evb1-ddr4-v10.img -j24
第一行是配置,第二行是编译 rk3568-evb1-ddr4-v10.img 目标,rk3568-evb1-ddr4-v10 这个就是设备树文件的名字,也就是 arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dts。
在 arch/arm64/Makefile 文件中有对应的%.img 目标:
依赖于%.dtb
通过命令”$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@”去生成我们的.dtb
通过打印信息可知,这条命令实际上就是:
make -f ./scripts/Makefile.build obj=arch/arm64/boot/dts arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtb
也就是通过./scripts/Makefile.build 这个 Makefile 脚本去生成,obj 指定了.dts 设备树源文件的目录,在./scripts/Makefile.build 文件中会包含./scripts/Makefile.lib,最终通过以下命令去生成.dtb 文件:
scripts/dtc/dtc -O dtb -o arch/arm64/boot/dts/rockchip/rk3568-evb1-ddr4-v10.dtb -@ ......
在 RK 官方的文档中有说明:
需要注意:DTO 操作使用的 DTB 和 DTBO 的编译跟普通的 DTB 编译有区别,语法上有特殊区别:
使用 dtc 编译.dts 时,您必须添加选项-@以在生成的.dtbo 中添加symbols 节点。_symbols节点包含带标签的所有节点的列表,DTO 库可使用这个列表作为参考。如下示例:
1.编译主.dts 的示例命令:
dtc -@ -o dtb o my_main_dt.dtb my_main_dt.dts
2.编译魯加层 DT.dts
的示例命令
dtc -@ -0 dtb -o my_overlay_dt.dtbo my_overlay_dt.dts
内核编译出 rk3568-evb1-ddr4-v10.dtb 文件之后,会去生成 rk3568-evb1-ddr4-v10.img 文件,通过以下命令去生成:
scripts/mkimg --dtb rk3568-evb1-ddr4-v10.dtb
这个不用去管了,实际我们的 boot.img 镜像并不使用 rk3568-evb1-ddr4-v10.img 镜像,而是使用 rk3568-evb1-ddr4-v10.dtb 文件。
除了生成 rk3568-evb1-ddr4-v10.img 镜像之外,还会生成 kernel.img 镜像,这个是内核镜像的另一种格式,同样也是通过内核镜像 Image 做出来的,估计是 RK 自己的一种格式,我们实际上也是不使用这种格式:
scripts/mkkrnlimg arch/arm64/boot/Image kernel.img
我们用的就是 Image 镜像。
dtbo.img 镜像
dtbo.img 镜像并不是在编译内核的时候生成的,而是在编译安卓的时候,在device/rockchip/common/build/rockchip/RebuildDtboImg.mk 这个 Makefile 文件中有这样一段话:
dtbo.img 是由 rebuild-dtbo.img 重命名的,在生成 rebuild-dtbo.img 之前,需要有.dts 设备树源文件,通过第一个目标$(rebuild_dts)生成,其实也就是通过下面这个命令生成:
out/soong/host/linux-x86/bin/fstab_tools -I dts -i device/rockchip/rk356x/rk3568_r/dt-overlay.in -p fe310000.sdhci,fe330000.nandc -f wait -o
out/target/product/rk3568_r/obj/FAKE/rockchip_dtbo_intermediates/device-tree-overlay.dts
通过 fstab_tools 工具将 dt-overlay.in 文件变为 dtbo 的设备树源文件 device-tree-overlay.dts。
每一个硬件平台都会在安卓目录下 device 中提供相应的 dt-overlay.in 或直接提供设备树.dts 源文件,譬如 3568 就是:device/rockchip/rk356x/rk3568_r/dt-overlay.in。
只不过 RK3568 提供的是.in 这种文件,其实这个文件基本就是.dts 设备树文件,只不过里边有一个变量:
所以我估计 fstab_tools 工具就是将这个变量替换掉而已,譬如使用-p 选项指定的参数,替换之后就是这样:
这个就是 device-tree-overlay.dts 文件。
得到 device-tree-overlay.dts 源文件之后,接着
$(AOSP_DTC_TOOL) -@ -O dtb -o $(rebuild_dtbo_dtb) $(rebuild_dts) //生成 rebuild-dtbo.dtb 文件
$(AOSP_MKDTIMG_TOOL) create $(rebuild_dtbo_img) $(rebuild_dtbo_dtb) //生成 rebuild-dtbo.img 文件
这两个命令其实就是:
out/soong/host/linux-x86/bin/dtc -@ -O dtb -o
out/target/product/rk3568_r/obj/FAKE/rockchip_dtbo_intermediates/device-dtbo.dtb
out/target/product/rk3568_r/obj/FAKE/rockchip_dtbo_intermediates/device-tree-overlay.dts
out/soong/host/linux-x86/bin/mkdtimg create
out/target/product/rk3568_r/obj/FAKE/rockchip_dtbo_intermediates/rebuild-dtbo.img
out/target/product/rk3568_r/obj/FAKE/rockchip_dtbo_intermediates/device-dtbo.dtb
先用 dtc 生成.dtb 文件,再用 mkdtimg 生成.img 文件。
- 分享
- 举报
-
浏览量:2729次2024-03-18 14:27:20
-
浏览量:872次2024-03-12 16:42:47
-
浏览量:1698次2024-03-13 15:15:04
-
浏览量:1161次2024-02-18 17:07:58
-
浏览量:4943次2022-09-30 16:40:59
-
浏览量:5848次2021-12-10 15:40:21
-
浏览量:9434次2022-10-12 09:28:15
-
浏览量:18180次2022-09-30 16:51:48
-
浏览量:1045次2023-12-08 16:48:29
-
浏览量:2645次2022-09-30 16:48:25
-
浏览量:4081次2022-10-11 10:48:08
-
浏览量:6597次2022-10-08 14:00:42
-
浏览量:5069次2022-09-26 11:51:17
-
浏览量:6600次2022-10-09 10:20:09
-
浏览量:7933次2022-10-13 19:26:04
-
浏览量:4860次2022-10-14 08:34:42
-
浏览量:2537次2022-09-30 16:46:03
-
浏览量:6002次2022-10-08 13:56:28
-
浏览量:10295次2022-10-09 15:56:41
-
9篇
- 瑞芯微将在美国CES发布重磅消息!What's NEW @2015CES? 美好的时代 来了~
- 瑞芯微RV1126 4K AI摄像头方案 助力智慧屏产品升级
- 瑞芯微与圆周率科技深度技术合作,推出车规级全景+3D渲染显示技术产品解决方案
- RK3568-采用SSD模型实现USB摄像头实时AI物品识别
- 瑞芯微结构光模组,高精度高兼容性,全场景适用
- 【干货评测】五款平板屏幕对比>>>TegraK1 MTK RK3288
- 瑞芯微推出云终端方案RK3568,高性能,支持丰富接口
- 直播 | 瑞芯微携手百度飞桨,详解基于RK3588的Paddle2RKNN部署优化
- rockchip-gmac驱动根据设备树bus-id指定网卡名
- 【观点】通讯平板势头猛,看行业大佬如何破局?(下)
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
Asura
感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明