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

IMX8MPlus开发板Yocto镜像Psplash双图显示及分辨率调整咨询

问题描述

在IMX8MPlus(Compulab BSP)开发板上,通过MIPI DSI接口连接1280x800分辨率的触控显示屏,尝试启动带有自定义启动Logo的Yocto镜像。操作流程为给psplash配方创建bbappend文件并指定自定义Logo,启动后Logo可显示但出现双图(预期应为全屏单图)。

目标板的fbset输出如下:

mode "720x600-0"
    # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
    geometry 720 600 1024 1200 32
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

核心问题:显示屏实际分辨率(1280x800)与帧缓冲模式值(720x600)不匹配,导致Psplash渲染异常。以下是编译Yocto时修改Psplash显示分辨率的具体方法:

解决步骤

1. 通过Psplash的bbappend文件强制指定分辨率

在你的Yocto自定义层中创建psplash_%.bbappend文件,添加编译配置参数:

EXTRA_OECONF += " \
    --with-framebuffer-width=1280 \
    --with-framebuffer-height=800 \
"

该配置会在编译Psplash时,强制其按照1280x800的分辨率渲染Logo,直接匹配屏幕参数。

2. 同步修复帧缓冲系统分辨率

双图问题根源是帧缓冲与屏幕分辨率不匹配,需同步修改系统帧缓冲配置:

  • 找到开发板对应的板级配置文件(如meta-compulab层中的imx8mp-var-dart.conf),添加帧缓冲参数:
FRAMEBUFFER_WIDTH = "1280"
FRAMEBUFFER_HEIGHT = "800"
  • 同时修改Linux设备树中MIPI DSI显示屏节点,确保display-timings下的hactive和vactive值设置为1280和800,从硬件层面匹配屏幕分辨率。

3. 重新编译镜像

执行Yocto编译命令,生成包含修改配置的镜像:

bitbake <你的目标镜像名称>

验证

烧录新镜像启动后,执行fbset命令确认输出分辨率为1280x800,此时Psplash自定义Logo应全屏单图正常显示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 01:31:00