目录
- GPU技术支持-业务篇-显示异常问题排查
- 前言
- 概述
- 排查思路
- 基本状态确认
- 个例or共性问题
- 验证措施-对换验证
- 中间层状态判断
- 验证措施
- 显卡配置状态
- 验证措施
- 常见问题排查
- 无显示问题(黑屏)
- 确认系统状态
- 判断显卡状态
- 确认EDID状态、确认显示接口状态
- EDID信息正常
- EDID信息异常
- 显示质量问题(噪点、水波纹、闪屏)
- 显卡输出信号调节
- 增加均衡芯片
- 硬件排查
- 花屏问题
- BIOS/UEFI阶段花屏
- 确认显存数据状态
- 显存输出异常
- 显存数据正常
- 分辨率异常问题
- 判断EDID状态
- EDID信息正常
- EDID信息异常
转载请附上原文出处链接
稀土掘金本文链接:
CSDN本文链接:
本文主要针对常见的显示异常问题,提供系统性的排查框架和思路。
推荐阅读:GPU技术支持-业务篇-问题排查思路
基本状态确认
排查问题前,需要对各种基础状态进行确认。将一些环境变量剥离开,尽量减少接下来的排查过程中受到的其他因素影响。
个例or共性问题
有条件的情况下,首先需要判断的就是当前问题是个例问题还是共性问题。即能否判断该问题为批次性问题。
判断的对象不仅仅是显卡,还包括显示器、线缆等上屏链路相关的设备。
验证措施-对换验证
注意:对换验证需要保证变量单一性,否则对换验证的结论是无效的。
1.两台设备对调同型号显卡,问题能否复现?
问题跟随显卡状态走,可以判断为显卡个例问题
2.两台设备对调同型号显示器,问题能否复现?
问题跟随显示器状态走,可以判断为显示器个例问题
3.两台设备对调同型号线缆,问题能否复现?
问题跟随线缆状态走,可以判断为线缆个例问题
显卡个例问题需要单独分析时,需要首先确认显卡的状态是否一致(vbios、配置文件等等)
如果确认显卡的状态一致,该类型的个例问题一般需要硬件或者芯片层面去分析。
中间层状态判断
显卡直出:显卡到显示器中间只有线缆,显卡输出直接通过线缆接到显示设备
中间层:例如各种类型的转接芯片:VGA转HDMI芯片、HDMI转VGA芯片、VGA转DVI芯片等等
显卡和屏幕中间存在中间层时,就需要判断该显示问题是否和中间层相关,因为中间层会隔离显卡和显示器的联系,一些中间层也会做处理,导致问题的发生。
验证措施
1.去掉中间层,改为显卡直出显示。问题能否复现?
如果去掉中间层,问题消失,需要排查中间层的芯片问题。
显卡配置状态
显卡配置状态检查需要确认显卡烧录的vbios等等
同时还需要注意vbios的版本,是否为存在已知问题的老版本
验证措施
1.老版本vbios,先更新进行验证。问题能否复现?
如果更新vbios问题消失,确认为老版本vbios已知问题。
2.特制版本(vbios),有条件先换回通用版本验证。问题能否复现?
如果换回通用版本问题消失,确认为特制版本引入的问题。
常见问题排查
无显示问题(黑屏)
黑屏问题大部分集中在上屏链路部分(显示器、线缆),也有可能出现PCIE链路断开、驱动状态异常等其他原因导致的黑屏
确认系统状态
确认系统是否正常进入
正常进入:继续下一步的状态判断
未能正常进入:相当于该问题为开机卡死问题,需要排查未进入系统的原因
判断显卡状态
判断显卡是否正常工作
- 显卡设备是否正常识别?
- 显卡驱动是否安装?
- 显卡驱动是否正常加载?
可以观察BIOS阶段显示是否正常,如果BIOS阶段显示异常,可以适当考虑显卡本身状态问题。
确认EDID状态、确认显示接口状态
方法1:远程SSH连接或者串口连接设备,终端内依次输入和命令,查看分辨率、EDID、显示接口状态
方法2:查看/var/log/Xorg.0.log文件,查看分辨率和EDID(仅xrandr无法看到EDID时建议使用)
如果无法正常打印,可能是因为系统锁屏、系统在登录界面、桌面服务未正常启动等等情况导致。
系统锁屏需要在电源设置中关闭屏保、屏幕关闭等设置。
系统在登录界面要设置自动登录。
桌面服务未正常启动可能为桌面服务发生异常、默认的登录选项未设置为从图形界面启动等等。
EDID信息正常
1.对应输出口状态为。
2.EDID信息正常,能解析出分辨率以及有对应的的分辨率。(Xorg.0.log中没有该状态是正常的)
说明显卡从显示器中正确获取、解析了EDID且进行输出。
此时需要通过对调设备(显卡、线缆、显示器)去深入排查
EDID信息异常
1.对应输出口状态为或者未检测到EDID信息。
说明显卡没有检测到屏幕接入,未读取到EDID。首先怀疑是否i2c链路有问题,导致显卡无法读取到EDID导致黑屏。
2.EDID信息正常,能解析出分辨率但是没有对应的的分辨率。(Xorg.0.log中没有该状态是正常的)
说明该屏幕在系统设置中可能被关闭,导致黑屏。
命令行开启:
例如:打开HDMI-1显示器,并输出1920x1080。
:后面接对应的输出口,需要以中打印的信息为准,例如HDMI-1、HDMI-2、VGA-0
:后面接对应的分辨率,需要以中打印的信息为准,例如1920x1080
规避措施
显卡强制输出:EDID信息未检测到时,可以显卡进行强制输出,按照指定的EDID进行输出,不读取显示器EDID信息。规避读取不到EDID的问题。
显示质量问题(噪点、水波纹、闪屏)
噪点、水波纹、闪屏大部分都是信号质量问题
信号质量可能跟显卡、显示器、线缆、主板硬件都有关。
比如:
- 噪点问题:显卡的输出信号强度对于显示器来说太强或者太弱、线缆过长导致信号衰减严重等等
- 水波纹问题:显示信号受扰,可能是硬件设计未考虑、外部环境影响等等
- 闪屏问题:信号质量差,显示器锁不住当前显示频率等等
该类问题比较收敛,解决方案通常主要集中在以下几个方向。主要的思路就是增加、减弱信号强度以及改善信号通路质量。
显卡输出信号调节
调节显卡输出信号(阻抗、信号摆幅、预加重等等),看是否对现有现象有影响。
调节方法建议使用二分法,直接先将信号强度组合调成最强或者最弱,根据不同的效果再进行调整。
增加均衡芯片
均衡芯片是一把双刃剑,用的好可能对信号质量有改善,用的不好可能造成信号质量的劣化。
下面是几个需要注意的点:
- 均衡芯片的位置需要尽量放在信号输出端,即保证均衡芯片在信号质量尽量高时对信号进行加强,如果信号质量已经劣化,再使用均衡芯片加强信号效果也不会好。
- 均衡芯片的预加重参数调整需要根据实际使用情况设置,不存在一套参数对所有使用场景都有很好的效果
硬件排查
硬件排查主要排查以下几个方向:
- 显示输出链路走线排查:主板的显示链路的走线是否尽量短(信号衰减小)
- 显示输出链路干扰排查:是否存在多输出口的互相干扰
- 线缆定义:显示线缆的定义是否正确
- 阻抗匹配:计算中间链路的阻抗参数
花屏问题
花屏问题算是比较常见的问题,排查时需要确认花屏在上屏链路引入还是在显存阶段就已花屏。确认大方向之后再进行深入排查。
BIOS/UEFI阶段花屏
该阶段因为还没有加载系统,此时花屏主要考虑显卡与主板BIOS相关的适配问题。
确认显存数据状态
最先开始需要确认的就是显存数据状态,常用的显存数据状态确认方案就是录屏、截屏等等。当然如果有其他手段可以直接拿到显存数据也是可以的。
显存输出异常
如果显存状态异常,即花屏在显存阶段就已经存在。
那么需要排查显卡驱动、花屏应用等,确认具体的花屏原因。
显存数据正常
如果显存状态正常,即花屏在上屏链路中引入。
需要排查整个上屏链路:显示器、线缆、中转芯片等等
分辨率异常问题
分辨率异常问题通常是当前显示分辨率和客户期望值不一致。比如客户期望显示1920x1080的分辨率,但是当前显示的分辨率是720x680。分辨率异常问题主要是判断EDID的状态是否正常。
判断EDID状态
EDID状态如何获取在前面章节已经描述,这里不再赘述。
EDID信息正常
1.对应输出口状态为。
2.EDID信息正常,能解析出分辨率以及的分辨率也为期望的分辨率。(Xorg.0.log中没有该状态是正常的)
需要进一步排查显示器相关的问题。
EDID信息异常
1.对应输出口状态为或者未检测到EDID信息。
理论上不会有输出,该情况却有输出需要单独分析排查。
2.EDID信息正常,能解析出分辨率但是没有对应的的分辨率。
理论上不会有输出,该情况显示器应该处于关闭状态,如果有输出需要单独分析排查。
3.EDID信息正常,能解析出分辨率,的分辨率不为期望分辨率。
需要在设置界面或者使用命令更换分辨率为期望分辨率。
命令更换分辨率:
:之后接需要配置分辨率的输出口(以打印的输出口信息为准)
:之后接需要显示的分辨率(必须为解析出的分辨率)
:之后接刷新率(必须为解析出的分辨率)
4.EDID信息异常,未能解析出期望的分辨率(Xorg.0.log中没有该状态是正常的)
没有期望的分辨率信息,那肯定就没办法显示期望的分辨率,显卡是根据检测到的EDID来显示的,需要排查屏幕是否支持该分辨率、中转芯片是否提供了错误的EDID。
规避方案:
EDID信息异常时,可以通过显卡强制输出正确EDID的方式来规避该问题。