6.3.10. 常见问题

6.3.10.1. 内核无法成功启动

显示模块无法申请到足够大的内存作为framebuffer。

显示模块申请的buffer来源于CMA机制预留的内存,如果CMA预留内存不足,可能会导致内核启动失败。

CMA预留内存设置可参考 CMA设置

6.3.10.2. 设备文件/dev/fb0缺失

显示模块驱动初始化失败。可通过debugfs查看component框架下显示引擎,显示接口,panel的 bind情况。参考 component调试

bind失败的通常存在如下问题:

  • panel 驱动选择出错。

    参考 panel menuconfig 选择正确的 panel 驱动

  • DTS 中port属性配置不符合预期。

    RGB/LVDS/DSI 三个显示接口必须三选一,确保 dts 有且仅有一条正确的数据通路。

  • DTS中缺少某些必须参数。

    DTS配置不正确可能会导致整个bind过程中断。显示各模块的dts配置详情

6.3.10.3. 调屏常见问题

屏幕无法点亮会涉及很多因素,主要排除的地方有三处:DTS配置、内核编译配置、DE&DI寄存器设置。这里提供一个debug思路。

  1. 启动debug开关,检查kernel启动时打印到控制台的信息,检查驱动是否报error,根据error解决问题

  2. kernel中是否生成设备结点/dev/fb0,如果没有,按/dev/fb0设备文件缺失思路进行检查

6.3.10.3.1. PRGB接口屏

6.3.10.3.1.1. 现象一:黑屏

  1. 检查背光是否已亮

  2. 排除1后确定屏规格书是SYNC模式还是DE模式,检查硬件电路相关控制信号是否按照屏规格书要求完成上下拉

  3. 排除1、2后,测量pixelclk是否符合屏规格要求,pixelclk计算公式vactive*hactive*60/(0.8),其中系数60为帧率,系数0.8为消隐区系数

6.3.10.3.1.2. 现象二:花屏

  1. 调整pixelclk频率

  2. 调整pixelclk相位

  3. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.1.3. 现象三:起始位置错误

  1. 调整pixelclk频率

  2. 调整pixelclk相位

  3. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.1.4. 现象四:闪烁

  1. 增大pixelclk频率,提高帧率

6.3.10.3.2. LVDS接口屏

6.3.10.3.2.1. 现象一:黑屏

  1. 检查背光是否已亮

  2. 排除1后,检查LVDS通道是否连接正确,检查硬件电路相关控制信号是否按照屏规格书要求完成上下拉,检查屏规格书是VESA模式还是JEIDA模式

  3. 排除1、2后,测量pixelclk是否符合屏规格要求,pixelclk计算公式vactive*hactive*60/(0.8),其中系数60为帧率,系数0.8为消隐区系数;LVDS接口中有一对时钟差分信号CK,若为单通道,则实测pixelclk=7ck;若为双通道,则实测pixelclk=3.5ck;

6.3.10.3.2.2. 现象二:花屏

  1. 调整pixelclk频率

  2. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.2.3. 现象三:起始位置错误

  1. 调整pixelclk频率

  2. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.2.4. 现象四:闪烁

  1. 增大pixelclk频率,提高帧率

6.3.10.3.3. DSI接口屏

6.3.10.3.3.1. 现象一:黑屏

  1. 检查背光是否已亮

  2. 排除1后,检查硬件电路相关控制信号是否按照屏规格书要求完成上下拉;检查与屏的连接是否成功,通常使用读屏驱动ID检查;检查初始化流程是否正确,检查屏规格书是Commad模式还是Video模式

  3. 排除1、2后,测量pixelclk是否符合屏规格要求,pixelclk计算公式vactive*hactive*60/(0.8),其中系数60为帧率,系数0.8为消隐区系数

6.3.10.3.3.2. 现象二:花屏

  1. 检查屏数据格式,检查数据lane数量

  2. 调整pixelclk频率

  3. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.3.3. 现象三:起始位置错误

  1. 调整pixelclk频率

  2. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.3.4. 现象四:闪烁

  1. 增大pixelclk频率,提高帧率

6.3.10.3.4. SRGB接口屏

6.3.10.3.4.1. 现象一:黑屏

  1. 检查背光是否已亮

  2. 排除1后,检查硬件电路相关控制信号是否按照屏规格书要求完成上下拉;检查与屏的连接是否成功,通常使用读屏驱动ID检查;检查初始化流程是否正确

  3. 排除1、2后,测量pixelclk是否符合屏规格要求,pixelclk计算公式vactive*hactive*60/(0.8),其中系数60为帧率,系数0.8为消隐区系数

6.3.10.3.4.2. 现象二:花屏

  1. 检查屏数据格式,格式为RGB还是BGR

  2. 调整pixelclk频率

  3. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.4.3. 现象三:起始位置错误

  1. 调整pixelclk频率

  2. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.4.4. 现象四:闪烁

  1. 增大pixelclk频率,提高帧率

6.3.10.3.5. I8080&SPI接口屏

6.3.10.3.5.1. 现象一:黑屏

  1. 检查背光是否已亮

  2. 排除1后,检查硬件电路相关控制信号是否按照屏规格书要求完成上下拉;检查与屏的连接是否成功,通常使用读屏驱动ID检查;检查初始化流程是否正确

  3. 排除1、2后,测量pixelclk是否符合屏规格要求,pixelclk计算公式vactive*hactive*60/(0.8),其中系数60为帧率,系数0.8为消隐区系数

6.3.10.3.5.2. 现象二:花屏

  1. 检查屏数据格式

  2. 调整pixelclk频率

  3. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.5.3. 现象三:起始位置错误

  1. 调整pixelclk频率

  2. 调整消隐区参数,主要是行方向消隐区

6.3.10.3.5.4. 现象四:闪烁

  1. 增大pixelclk频率,提高帧率