伪造显示器 EDID 信息

amp*_*ine 9 linux display xorg fglrx edid

我的显示器有点挑剔。有时我运行一个程序,它会在分辨率之间循环,显示器会在几天内拒绝提供其 EDID 信息:

(/var/log/Xorg.0.log)
[   239.653] (II) fglrx(0): Restoring Recent Mode via PCS is not supported in RANDR 1.2 capable environments
[   260.113] (II) fglrx(0): Cannot get EDID information for CRT1
[   271.166] (II) fglrx(0): Cannot get EDID information for CRT1
(^ ran xrandr, this happens)
Run Code Online (Sandbox Code Playgroud)

这导致显卡认为它支持的最大分辨率是 1600x1200,而我在显示器手册上说它支持的最佳 1680x1050 分辨率下运行它。xrandr甚至没有列出支持的模式。

现在,我又遇到了同样的问题,因为我正在尝试使用Wine导致 Xorg 崩溃并迫使我重新启动。

有时我想出如何恢复它(我已经忘记了如何恢复),有时它会自行纠正。

第一次发生这种情况时,我想我最好使用 备份二进制 EDID 信息read-edid,我已将其保存在硬盘驱动器上的 128 字节文件中。这引出了我的问题:

你如何告诉 fglrx 从文件中读取 EDID 信息而不是尝试从监视器中获取它?


附加信息:

我曾经认为这是视频卡的问题,但它也发生在新的视频卡(仍然是 fglrx 驱动程序)以及新的 VGA 电缆上。

显示器是西屋 LCM-22w3,插入显卡的 VGA 端口,ATI Radeon HD 3200。

我对它做了一些研究,显然这是 LCM-22w3 的一个普遍抱怨,但似乎没有人知道如何解决这个问题。

fglrx 8.92,xorg-server 1.9.5,内核 2.6.38.7 x86_64 架构。

小智 1

你可以尝试

Option "IgnoreEDID" "TRUE"
Run Code Online (Sandbox Code Playgroud)

然后手动指定显示器的信息。如果 IgnoreEDID 不适合您,请尝试

Option "UseEDIDFreqs" "FALSE"
Option "UseEDIDDpi" "FALSE"
Run Code Online (Sandbox Code Playgroud)