You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Yocto镜像使CM4适配官方树莓派7英寸DSI显示屏

解决树莓派CM4(Yocto镜像)DSI官方7寸显示屏不亮问题

问题核心

你遇到的问题源于Yocto构建时针对RPi4的配置未适配CM4的引脚复用逻辑(尤其是CMIO板的DSI接口),加上U-Boot环境下boot分区的配置加载规则与官方OS存在差异,导致dt-blob或设备树overlay未生效。

分步解决方案

1. 修正Yocto MACHINE及基础配置

当前local.conf中MACHINE ?= "raspberrypi4"需根据CM4架构调整,同时添加CM4专属的外设配置:

  • 若为64位CM4,修改MACHINE:
    MACHINE ?= "raspberrypi4-64"
    
  • 在local.conf中追加以下配置,自动写入config.txt并适配CMIO板:
    # 启用KMS驱动,指定默认LCD为DSI屏
    RPI_EXTRA_CONFIG += "dtoverlay=vc4-kms-v3d"
    RPI_EXTRA_CONFIG += "enable_dpi_lcd=0"
    RPI_EXTRA_CONFIG += "display_default_lcd=1"
    

2. 定制并部署CM4专用dt-blob.bin

CM4的CMIO板需要专属的引脚配置文件,不能直接复用RPi4B的:

  1. 获取树莓派官方针对CMIO板的引脚定义文件dt-blob-cm4io.dts
  2. 编译为二进制文件:
    dtc -I dts -O dtb -o dt-blob.bin dt-blob-cm4io.dts
    
  3. 在Yocto中配置自动部署到boot分区,避免手动拷贝:
    IMAGE_BOOT_FILES += "dt-blob.bin"
    

3. 确保DSI显示屏overlay正确打包加载

需要让Yocto将官方DSI屏的overlay文件包含到镜像中,并正确加载:

  • 在local.conf中添加overlay配置:
    # 确保vc4-kms-dsi-7inch.dtbo被打包到镜像
    RPI_KERNEL_DEVICETREE_OVERLAYS_append = " overlays/vc4-kms-dsi-7inch.dtbo"
    # 配置加载该overlay
    RPI_EXTRA_CONFIG += "dtoverlay=vc4-kms-dsi-7inch"
    

注意:不要同时加载vc4-fkms-v3d和vc4-kms-dsi-7inch,KMS和FKMS驱动二选一,优先使用官方推荐的KMS版本。

4. 适配U-Boot配置

由于启用了RPI_USE_U_BOOT = "1",需确保U-Boot能正确解析config.txt:

  • 在local.conf中添加U-Boot的RPI配置支持:
    UBOOT_CONFIG += "rpi"
    

这会确保U-Boot读取config.txt中的设备树及驱动配置。

5. 重新构建镜像

清理旧构建缓存并重新编译镜像:

# 替换为你实际使用的镜像名称,比如core-image-base
bitbake -c cleanall core-image-base
bitbake core-image-base

验证步骤

镜像刷入CM4后,执行以下操作确认配置生效:

  1. 查看boot分区的config.txt,确认包含以下内容:
    dtoverlay=vc4-kms-v3d
    dtoverlay=vc4-kms-dsi-7inch
    enable_dpi_lcd=0
    display_default_lcd=1
    
  2. 检查boot分区中存在dt-blob.bin和overlays/vc4-kms-dsi-7inch.dtbo文件
  3. 重启设备后,通过dmesg | grep dsi查看内核日志,确认DSI驱动正常加载(输出中应包含类似dsi: connected的信息)

内容的提问来源于stack exchange,提问作者embedwork

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:10:25