赞
踩
展锐平台的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。
kernel多board自适应实现后,dtb是SoC级的,dtbo是board级的。这就意味着:
(1)所有第三方及board特有的设备节点,只允许在dtbo中定义并使用。
(2)所有SoC级公用的设备节点在dtb中定义并使用。
在arch/arm64/boot/dts/sprd/目录下,除了xxx-overlay.dts文件外,其余设备树文件将被编译打包成dtb文件,并打包到boot.img中。
在arch/arm64/boot/dts/sprd/目录下,xxx-overlay.dts文件将被打包编译成dtbo文件。
若修改了SoC级的设备树文件,则在Android源码根目录下依次执行以下命令:
- source build/envsetup.sh
- lunch xxxx(选择产品)
- make bootimage
编译成功后,将在以下目录生成boot.img:
out/target/product/<board name>/
然后,在 ResearchDownload 工具中点击“下载设置”, 找到 Boot 分区选择 boot.img路径更新即可。
若修改了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路径更新即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。