如何在Yocto中为树莓派CM4添加UART3、UART5设备树覆盖层
解决方案
错误原因
你将RPI_KERNEL_DEVICETREE_OVERLAYS变量配置在了镜像配方中,该变量是内核配方的专属配置项,仅作用于linux-raspberrypi的编译流程,写在镜像配方里不会触发对应DTBO的编译和部署。
修复步骤
方式1:全局配置(适合快速验证)
直接在编译目录的conf/local.conf中添加如下配置:
RPI_KERNEL_DEVICETREE_OVERLAYS:append = " overlays/uart3-overlay.dtbo overlays/uart5-overlay.dtbo"
方式2:层内封装(适合正式发布)
在你的自定义层中新增内核配方的bbappend文件,路径为meta-mylayer/recipes-kernel/linux/linux-raspberrypi_%.bbappend,文件内容和上面的配置完全一致。
验证方法
配置完成后先单独编译内核确认DTBO生成:
bitbake linux-raspberrypi -c compile && bitbake linux-raspberrypi -c deploy
编译完成后到tmp/deploy/images/raspberrypi4-64/目录下检查是否存在uart3-overlay.dtbo和uart5-overlay.dtbo文件,确认存在后再编译完整镜像即可消除报错。
补充说明
你之前添加的rpi-config_%.bbappend配置逻辑正确,不需要修改。
内容的提问来源于stack exchange,提问作者JWZ1996
相关产品推荐
相关产品推荐

