使用 Yocto 构建 DTB
DTB 会作为完整 Yocto 镜像构建的一部分自动构建。要在更改 DTS 后仅重新构建设备树而无需完整重建镜像:- 进入 kas shell:
- 强制内核配方重新编译(以拾取 DTS 更改):
- 重新构建设备镜像,将更新后的 DTB 重新打包到
dtb.bin中:
tmp/deploy/images/<machine>/dtbs/ 下。
将 DTB 部署到设备
完整 Yocto 构建后,刷写完整镜像以更新包括 DTB 分区在内的所有分区:独立构建 DTB(不使用 Yocto)
使用kmake 独立工作流时,可通过以下命令仅构建设备树:
.dtb 和 .dtbo 文件位于 ../kobj/arch/arm64/boot/dts/qcom/ 中。
将多个 dtb 打包为 FIT 镜像
要将它们打包成可刷写的dtb.bin FIT 镜像,请使用 qcom-dtb-metadata 仓库中的 make_fitimage.sh(需要 kmake-image Docker 工具链):
将 dtb 打包为单一默认镜像
要将您的 dtb 作为单一且默认的设备树 blob 打包,以便 UEFI 在启动时选取,请使用generate_boot_bins.sh 打包 dtb.bin,并显式传入您的 dtb。
kmake-image 实用程序,请参阅其项目自述文件。
将 DTB 部署到设备
使用打包多个 dtb 的make_fitimage.sh 或打包单个 dtb 的 generate_boot_bins.sh 生成 dtb.bin 后:
在内核或 DTS 更改后,请同时刷写
efi.bin 和 dtb.bin,以保持内核与设备树同步。有关完整的增量刷写流程,请参阅安装并启动内核。验证启动时的 DTB 选择
设备重启后,确认加载了预期的设备树。 检查已加载的 compatible 字符串:compatible 字符串匹配。例如,对于 QCS6490 RB3 Gen 2:

