我购买了几台 HP L1750 显示器,它们具有 VGA 和 DVI 输入。 VGA 输入工作没有问题。但是,DVI 输入仅在发生内核模式设置 (KMS) 之前有效,之后它声明未接收信号并进入睡眠模式。我测试了两台不同的 HP L1750 显示器,使用不同的 DVI 电缆和不同的 DVI 源提供程序(即不同的视频卡),并获得相同的行为。
我还尝试通过内核启动选项手动指定适当的分辨率,例如:
video=DVI-D-0:1280x1024@60e
以及手动配置xorg.conf
(依赖于 的输出hwinfo --monitor
)以:
Section "Device"
Identifier "DefaultDevice"
EndSection
Section "Monitor"
Identifier "DefaultMonitor"
HorizSync 24-83
VertRefresh 50-77
Option "TargetRefreshRate" "60"
Option "DDC" "off"
Option "DPMS" "off"
Option "DefaultModes" "on"
Option "PreferredMode" "1280x1024"
EndSection
Section "Screen"
Identifier "DefaultScreen"
Device "DefaultDevice"
Monitor "DefaultMonitor"
EndSection
问题似乎是认为该显示器的 DVI 有缺陷,没有特殊的 Windows 驱动程序来修复它。
如何确定合适的 EDID?启动后如何将其加载到 RAM 中?
编辑:
有关显卡、内核驱动、X驱动等信息:
$ inxi -Gxxxxx
Graphics: Device-1: Advanced Micro Devices [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]
vendor: Micro-Star MSI driver: amdgpu v: kernel bus ID: 01:00.0 chip ID: 1002:67df
Display: x11 server: X.Org 1.20.4 driver: amdgpu unloaded: modesetting alternate: ati,fbdev,vesa
compositor: kwin_x11 resolution: 1920x1080~60Hz
OpenGL: renderer: AMD Radeon RX 470 Graphics (POLARIS10 DRM 3.30.0 5.1.4-arch1-1-ARCH LLVM 8.0.0)
v: 4.5 Mesa 19.0.5 direct render: Yes
在方面xrandr
,它声称 DVI-D-0 已断开连接(即使已连接并且显示器显示通过 DVI-D-0 pre-KMS 输出);我在这里列出了它通过 VGA 列出的模式(请注意,它通过 HDMI->VGA 转换器连接到 VGA,所以显示的实际上HDMI-A-1
是 VGA 连接)
HDMI-A-1 connected 1280x1024+0+696 (normal left inverted right x axis y axis) 340mm x 270mm
1280x1024 60.02 + 75.02*
1920x1080 60.00 59.94
1280x800 60.02
1152x864 75.00
1280x720 60.00 59.94
1024x768 75.03 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32
720x480 60.00 59.94
640x480 75.00 72.81 60.00 59.94
720x400 70.08
DVI-D-0 disconnected (normal left inverted right x axis y axis)
尝试手动设置显示xrandr
似乎不起作用:
$ xrandr --output DVI-D-0 --mode 1280x1024
xrandr: cannot find mode 1280x1024
这样做xrandr --output DVI-D-0
不会导致“无法找到模式”消息,但也不会通过 DVI 打开显示器。我尝试了xrandr --output DVI-D-0 --mode [...]
上面列出的 VGA 连接的所有分辨率(从 1280x1024 到 720x400),所有结果都导致“找不到模式”消息。
EDIT2:Xorg.0.log
与 EDID 相关的信息:
[ 45.594] (II) AMDGPU(0): EDID for output HDMI-A-1
[ 45.594] (II) AMDGPU(0): Manufacturer: HWP Model: 26e9 Serial#: 16843009
[ 45.594] (II) AMDGPU(0): Year: 2008 Week: 2
[ 45.594] (II) AMDGPU(0): EDID Version: 1.3
[ 45.594] (II) AMDGPU(0): Digital Display Input
[ 45.594] (II) AMDGPU(0): Max Image Size [cm]: horiz.: 34 vert.: 27
[ 45.594] (II) AMDGPU(0): Gamma: 2.40
[ 45.594] (II) AMDGPU(0): DPMS capabilities: StandBy Suspend Off
[ 45.594] (II) AMDGPU(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4
[ 45.594] (II) AMDGPU(0): Default color space is primary color space
[ 45.594] (II) AMDGPU(0): First detailed timing is preferred mode
[ 45.594] (II) AMDGPU(0): redX: 0.640 redY: 0.349 greenX: 0.284 greenY: 0.617
[ 45.594] (II) AMDGPU(0): blueX: 0.142 blueY: 0.067 whiteX: 0.313 whiteY: 0.329
[ 45.594] (II) AMDGPU(0): Supported established timings:
[ 45.594] (II) AMDGPU(0): 720x400@70Hz
[ 45.594] (II) AMDGPU(0): 640x480@60Hz
[ 45.594] (II) AMDGPU(0): 640x480@72Hz
[ 45.594] (II) AMDGPU(0): 640x480@75Hz
[ 45.594] (II) AMDGPU(0): 800x600@60Hz
[ 45.594] (II) AMDGPU(0): 800x600@72Hz
[ 45.594] (II) AMDGPU(0): 800x600@75Hz
[ 45.594] (II) AMDGPU(0): 832x624@75Hz
[ 45.594] (II) AMDGPU(0): 1024x768@60Hz
[ 45.594] (II) AMDGPU(0): 1024x768@70Hz
[ 45.594] (II) AMDGPU(0): 1024x768@75Hz
[ 45.594] (II) AMDGPU(0): 1280x1024@75Hz
[ 45.594] (II) AMDGPU(0): 1152x864@75Hz
[ 45.594] (II) AMDGPU(0): Manufacturer's mask: 0
[ 45.594] (II) AMDGPU(0): Supported standard timings:
[ 45.594] (II) AMDGPU(0): #0: hsize: 1280 vsize 1024 refresh: 60 vid: 32897
[ 45.594] (II) AMDGPU(0): Supported detailed timing:
[ 45.594] (II) AMDGPU(0): clock: 108.0 MHz Image Size: 340 x 270 mm
[ 45.594] (II) AMDGPU(0): h_active: 1280 h_sync: 1328 h_sync_end 1440 h_blank_end 1688 h_border: 0
[ 45.594] (II) AMDGPU(0): v_active: 1024 v_sync: 1025 v_sync_end 1028 v_blanking: 1066 v_border: 0
[ 45.594] (II) AMDGPU(0): Ranges: V min: 50 V max: 77 Hz, H min: 24 H max: 83 kHz, PixClock max 145 MHz
[ 45.594] (II) AMDGPU(0): Monitor name: HP L1750
[ 45.594] (II) AMDGPU(0): Serial No: CND8020JJG
[ 45.594] (II) AMDGPU(0): Supported detailed timing:
[ 45.594] (II) AMDGPU(0): clock: 27.0 MHz Image Size: 160 x 90 mm
[ 45.594] (II) AMDGPU(0): h_active: 720 h_sync: 736 h_sync_end 798 h_blank_end 858 h_border: 0
[ 45.594] (II) AMDGPU(0): v_active: 480 v_sync: 489 v_sync_end 495 v_blanking: 525 v_border: 0
[ 45.594] (II) AMDGPU(0): Number of EDID sections to follow: 1
[ 45.594] (II) AMDGPU(0): EDID (in hex):
[ 45.594] (II) AMDGPU(0): 00ffffffffffff0022f0e92601010101
[ 45.594] (II) AMDGPU(0): 0212010380221b8ceedc55a359489e24
[ 45.594] (II) AMDGPU(0): 115054adef8081800101010101010101
[ 45.594] (II) AMDGPU(0): 010101010101302a009851002a403070
[ 45.594] (II) AMDGPU(0): 1300540e1100001e000000fd00324d18
[ 45.594] (II) AMDGPU(0): 530e000a202020202020000000fc0048
[ 45.594] (II) AMDGPU(0): 50204c313735300a20202020000000ff
[ 45.594] (II) AMDGPU(0): 00434e44383032304a4a470a202001b0
[ 45.594] (II) AMDGPU(0): 02031b61230907078301000067030c00
[ 45.594] (II) AMDGPU(0): 2000802d43908402e2000f8c0ad08a20
[ 45.594] (II) AMDGPU(0): e02d10103e9600a05a00000000000000
[ 45.594] (II) AMDGPU(0): 00000000000000000000000000000000
[ 45.594] (II) AMDGPU(0): 00000000000000000000000000000000
[ 45.594] (II) AMDGPU(0): 00000000000000000000000000000000
[ 45.594] (II) AMDGPU(0): 00000000000000000000000000000000
[ 45.594] (II) AMDGPU(0): 00000000000000000000000000000029
[ 45.594] (--) AMDGPU(0): HDMI max TMDS frequency 225000KHz
[ 45.594] (II) AMDGPU(0): Printing probed modes for output HDMI-A-1
[ 45.594] (II) AMDGPU(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz eP)
[ 45.594] (II) AMDGPU(0): Modeline "1920x1080"x60.0 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.5 kHz e)
[ 45.594] (II) AMDGPU(0): Modeline "1920x1080"x59.9 148.35 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync (67.4 kHz e)
[ 45.594] (II) AMDGPU(0): Modeline "1280x1024"x75.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[ 45.594] (II) AMDGPU(0): Modeline "1280x800"x60.0 108.00 1280 1328 1440 1688 800 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[ 45.594] (II) AMDGPU(0): Modeline "1152x864"x75.0 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync (67.5 kHz e)
[ 45.594] (II) AMDGPU(0): Modeline "1280x720"x60.0 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "1280x720"x59.9 74.18 1280 1390 1430 1650 720 725 730 750 +hsync +vsync (45.0 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "1024x768"x75.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "1024x768"x70.1 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "832x624"x74.6 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "800x600"x72.2 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "800x600"x75.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "720x480"x60.0 27.03 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "720x480"x59.9 27.00 720 736 798 858 480 489 495 525 -hsync -vsync (31.5 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "640x480"x75.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "640x480"x72.8 31.50 640 664 704 832 480 489 492 520 -hsync -vsync (37.9 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "640x480"x60.0 25.20 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
[ 45.595] (II) AMDGPU(0): Modeline "720x400"x70.1 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e)
[ 45.595] (II) AMDGPU(0): EDID for output DVI-D-0
[ 45.595] (II) AMDGPU(0): Output DisplayPort-0 connected
[ 45.595] (II) AMDGPU(0): Output DisplayPort-1 disconnected
[ 45.595] (II) AMDGPU(0): Output HDMI-A-0 connected
[ 45.595] (II) AMDGPU(0): Output HDMI-A-1 connected
[ 45.595] (II) AMDGPU(0): Output DVI-D-0 disconnected
[ 45.595] (II) AMDGPU(0): Using user preference for initial modes
[ 45.595] (II) AMDGPU(0): Output DisplayPort-0 using initial mode 1280x1024 +0+0
[ 45.595] (II) AMDGPU(0): Output HDMI-A-0 using initial mode 1280x1024 +0+0
[ 45.595] (II) AMDGPU(0): Output HDMI-A-1 using initial mode 1280x1024 +0+0
[ 45.595] (II) AMDGPU(0): mem size init: gart size :ff973000 vram size: s:ff2e8000 visible:f2e8000
[ 45.595] (==) AMDGPU(0): DPI set to (96, 96)
[ 45.595] (==) AMDGPU(0): Using gamma correction (1.0, 1.0, 1.0)
答案1
初步回答:
1) 查看/var/log/Xorg.0.log
接收到的解码后的 EDID。如果显示屏空白,请使用ssh
虚拟控制台获取信息,或者连接具有 VGA 和 DVI 输出的显示器,甚至连接具有 VGA 和 DVI 的同一显示器。
同时,还可以编辑问题,其中包含它是什么显卡、它使用什么内核驱动程序以及它使用什么 X 驱动程序的信息。
还有一些替代方法也可以为您提供原始 EDID,例如read-edid
Debian 软件包,或者/sys/devices/.../drm/card*/card*-*/edid
在带有内核驱动程序的显卡上提供此信息。
2) 一旦您知道支持哪些模式,请在启动时或以其他方式尝试所有模式xrandr
(DISPLAY
如果从ssh
虚拟控制台执行此操作,则进行设置)。从最小模式开始。如果至少某些模式不起作用,我会感到惊讶。
3) 根据您的 X 驱动程序,有多种选项可以忽略 EDID(因为您可以直接指定所有信息xorg.conf
),或提供您自己的 EDID。请阅读手册页中的内容,例如IgnoreEDID
或CustomEDID
。
4) 如果您在 KMS 中需要正确的 EDID,则需要了解原始 EDID 格式,使用适合您的任何模式修复 EDID,然后您可以将原始 EDID 作为二进制文件放入 initramfs,/usr/lib/firmware/edid
沿的行
drm_kms_helper.edid_firmware=edid/your_edid.bin
drm_kms_helper.edid_firmware=VGA-1:edid/your_edid.bin
祈祷它能成功,因为调试是很乏味的。