本文主要是介绍展锐T820平台Android11开发:kernel设备树编译问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.kernel多board自适应
展锐平台的kernel具有多board自适应功能,即相同体系架构的两个不同的board间,boot.img、socko.img/odmko(vendorboot.img)、dtbo.img是可替换的,这些镜像文件称为R-img(Replaceable images,可替换的镜像)。
要实现这样的效果,R-img都要满足一个共性条件就是SOC级的。
针对R-img设备树相关成员的策略如下:
(1)dtb.img
它是SoC级的,即同一款芯片同体系架构的不同board共用一个dtb。
(2)dtbo.img
它包含多个board级的dtbo,通过uboot来匹配选择加载其中一个dtbo。
二.多dtb/dtbo架构
kernel多board自适应实现后,dtb是SoC级的,dtbo是board级的。这就意味着:
(1)所有第三方及board特有的设备节点,只允许在dtbo中定义并使用。
(2)所有SoC级公用的设备节点在dtb中定义并使用。
2.1 dtb对应的源文件
在arch/arm64/boot/dts/sprd/目录下,除了xxx-overlay.dts文件外,其余设备树文件将被编译打包成dtb文件,并打包到boot.img中。
2.2 dtbo文件对应的源文件
在arch/arm64/boot/dts/sprd/目录下,xxx-overlay.dts文件将被打包编译成dtbo文件。
三.如何快速编译设备树
3.1 SoC级修改
若修改了SoC级的设备树文件,则在Android源码根目录下依次执行以下命令:
source build/envsetup.shlunch xxxx(选择产品)make bootimage
编译成功后,将在以下目录生成boot.img:
out/target/product/<board name>/
然后,在 ResearchDownload 工具中点击“下载设置”, 找到 Boot 分区选择 boot.img路径更新即可。
3.2 Board级修改
若修改了xxx-overlay.dts文件,则切换到bsp目录下,进行单独编译即可。具体步骤如下:
cd bsp/
source build/envsetup.sh
lunch xxx(产品名称)
make dtboimage -j4
编译成功后,将在以下目录生成 dtbo.img:
bsp/out/androidr/<product_name>/dist/kernel
然后,在 ResearchDownload 工具中点击“下载设置”, 找到dtbo分区选择 dtbo.img路径更新即可。
这篇关于展锐T820平台Android11开发:kernel设备树编译问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!