2006 年 20 英寸 iMac LCD 上的 Radeon Mobility X1600 出現 Xorg 問題
我試圖為 20 英寸 2006 iMac 4.1 賦予有意義的用途,但遇到了一個奇怪的 Xorg 問題。嘗試將FreeBSD 13.0 Release/amd64和elementaryOS 6.0 Odin作為最新系統及其各自的Xorg軟體包。使用radeon驅動程序*(僅在 Linux 下,因為該驅動程序在 FreeBSD 下不存在,也不能作為單獨的包或埠提供)似乎可以提供正確的圖形模式和內置 LCD 螢幕的原始解析度。視窗、圖示、面板看起來都很好,但背景圖片(或一般的桌面背景,即使是純色)*顯示出損壞的偽影。
它的特點是只有背景被繪製有缺陷,並且任何 GUI 對像看起來都非常好,包括半透明視窗、菜單欄、圖示等。
使用模式設置驅動程序似乎無法正確渲染圖形螢幕,整個顯示用偏移線繪製。
由於模式設置驅動程序在 FreeBSD 和 Linux 上都存在*(並且行為方式完全相同)(談論 2021 年末的最新版本)*,並且也是明顯的前進方向,我更願意讓它工作而不是依賴radeon**。
因此,我首先從這台 2006 iMac 內置 LCD 的 EDID 數據中提取原始解析度細節。
Identifier "Color LCD" ModelName "Color LCD" VendorName "APP" # Monitor Manufactured week 0 of 2005 # EDID version 1.3 # Digital Display DisplaySize 430 270 Gamma 2.20 Modeline "Mode 0" 119.00 1680 1728 1760 1840 1050 1053 1059 1080 -hsync -vsync
建議的模式行與在沒有xorg.conf文件的情況下啟動時xorg自動檢測的內容相匹配。由於圖形螢幕在這台電腦的預期*(並且已過時,不再支持)*作業系統Mac OS X 10.6 Snow Leopard 下執行良好,並且在Windows 10下看起來也很好,我使用了一個名為PowerStrip的程序來收集我在 Windows 下可以收集的任何螢幕細節. 這使我能夠製造一些有前途的自定義模型。
Section "Modes" Identifier "LTM201M1-MODELINES" ###ModeLine "1680x1050" 147.136 1680 1784 1968 2256 1050 1051 1054 1087 +hsync +vsync ModeLine "1600x1000" 133.142 1600 1704 1872 2144 1000 1001 1004 1035 +hsync +vsync ###ModeLine "1400x1050" 122.614 1400 1488 1640 1880 1050 1051 1054 1087 +hsync +vsync ModeLine "1664x936" 128.373 1664 1760 1936 2208 936 937 940 969 +hsync +vsync Modeline "1664x1040" 143.715 1664 1768 1944 2224 1040 1041 1044 1077 +hsync +vsync ModeLine "1696x1060" 149.543 1696 1800 1984 2272 1060 1061 1064 1097 +hsync +vsync ###ModeLine "1678x1050" 146.745 1678 1784 1964 2250 1050 1051 1054 1087 +hsync +vsync ###ModeLine "1678x1048" 146.475 1678 1784 1964 2250 1048 1049 1052 1085 +hsync +vsync ###ModeLine "1680x1048" 146.866 1680 1784 1968 2256 1048 1049 1052 1085 +hsync +vsync ###ModeLine "k1" 119.000 1680 1728 1760 1840 1050 1053 1059 1080 +hsync +vsync ###ModeLine "k2" 149.543 1680 1800 1984 2272 1050 1061 1064 1097 +hsync +vsync EndSection
那些帶有三重標籤評論的人不能很好地與模式設置驅動程序配合使用。他們將顯示器切換到不可讀的換行模式,如上圖 3 所示。最後兩行不是由 PowerStrip 數據產生的,它們是由我手動組裝的,使用上述行之一,但更改了一兩個細節,希望我可以讓原始解析度正常工作。
有趣的是,1680x1050 的原始解析度似乎永遠無法使用模式設置驅動程序。甚至從EDID讀取的模式行,Windows 10、Mac OS X 和 Linux 下的radeon Xorg 驅動程序都成功使用。
同樣有趣的是“1664x1040”和“1696x1060”模式可以完美執行,提供漂亮、無閃爍、穩定的顯示。這是一種比原生 1680x1050 更小、更大的解析度,同時保持 16:10 的縱橫比。我很驚訝 1696x1060 也能正常工作(很明顯,最後幾個像素不在螢幕上,因此不可見,但顯示很穩定,沒有任何移動/執行線)。
這是 PCI 詳細資訊顯示的內容。
vgapci0@pci0:1:0:0: class=0x030000 rev=0x00 hdr=0x00 vendor=0x1002 device=0x71c5 subvendor=0x106b subdevice=0x0080 vendor = 'Advanced Micro Devices, Inc. [AMD/ATI]' device = 'RV530/M56-P [Mobility Radeon X1600]' class = display subclass = VGA
來自 FreeBSD 和 Linux 的 Xorg.0.log,使用 radeon 或 modesetting 驅動程序,都沒有顯示任何錯誤。就 Xorg 而言,一切執行良好。問題是我的肉眼看到了我無法處理的東西(如上圖第三張所示)。
xrandr –verbose (radeon/Linux)
xrandr –verbose (modesetting/FreeBSD)
Xorg.0.log (modesetting/Linux)
因為我無法讓原生 1680x1050 與模式設置一起工作(在 FreeBSD 和 Linux 下同樣失敗),而已知相同的設置可以在 Windows 10 和 Mac OS X 下使用專有 ATI 驅動程序,以及開源 radeon 驅動程序在 Linux 下,我的結論是模式設置驅動程序(或 radeonkms 模組)可能有問題。
您對嘗試什麼以使本機解析度與模式設置驅動程序一起使用有什麼建議嗎?
或者,向模式設置驅動程序(或 radeonkms 模組)的開發人員報告此問題的正確渠道是什麼**?**
不幸的是,我只有你的替代問題的答案。報告此錯誤的正確渠道是 Linux 核心郵件列表。可以在此處找到有關如何發送消息、正確禮儀以及如何訂閱(如果您不希望訂閱帶來的大量資訊,則可以回复您的消息)的說明:
http://vger.kernel.org/lkml/#s3
您提供的詳細程度非常好,對錯誤報告非常有幫助,但如果他們需要更多資訊,請不要感到驚訝。