嘗試切換到雙掃描 X11 模式行失敗,並顯示“配置 crtc 0 失敗”
我有一個現代的
1920x1200
LED 顯示屏,最高 96 kHzHorizSync
、最高 76 HzVertRefresh
和最高 205 MHz 像素時鐘。除了其原始解析度外,顯示器還可以
1600x1200
在 75 Hz 時以 (4:3) 解析度執行:1600x1200 (0xa1) 202.500MHz +HSync +VSync h: width 1600 start 1664 end 1856 total 2160 skew 0 clock 93.75KHz v: height 1200 start 1201 end 1204 total 1250 clock 75.00Hz
現在,我正在嘗試將其切換
800x600
到與上述模式等效的雙掃描模式1600x1200
(也是 75 Hz;所有模式線都取自這裡):xrandr --newmode "800x600d" 101.25 800 832 928 1080 600 600 602 625 DoubleScan +HSync +VSync xrandr --addmode DP1 800x600d
生成的影片模式已成功添加,並且在以下輸出中清晰可見
xrandr
:800x600d (0x1f7) 101.250MHz +HSync +VSync DoubleScan h: width 800 start 832 end 928 total 1080 skew 0 clock 93.75KHz v: height 600 start 600 end 602 total 625 clock 75.00Hz
但是一旦我嘗試切換到新模式,我立即收到一個錯誤:
# Mode by name $ xrandr --output DP1 --mode 800x600d xrandr: cannot find mode 800x600d # Mode by id $ xrandr --output DP1 --mode 0x1f7 xrandr: Configure crtc 0 failed
現代顯卡不再能夠在雙掃描模式下執行嗎?還是我應該責怪我的顯示器?
部分回答,快速回答:
顯卡已經從基於 CRTC(CRT 控制器)的傳統型號發展為6845,具有用於更改內部寄存器的索引和數據寄存器,在主要圖形硬體系列(英特爾、Nvidia、ATI/ AMD 等)。
在傳統 VGA 中,它是一個寄存器中的一種約定位。因為基本上所有顯卡仍然支持傳統 VGA ,所以它仍然存在。但特別是驅動數字輸出的電路已經移動,所以你真的需要顯卡的確切型號,你需要探勘數據表來確定它是否受支持。有時類似模型的數據表會有所幫助,但您需要進行試驗。
例如,查看Intel G35數據表(它已經很古老了),您將在第 2.7 節中看到兩個“顯示管道”,但在 register 中會看到傳統的雙重掃描
CR09
。如果您想用 VGA 恢復舊硬體,如果您可以使用合適的 X 版本和合適的顯卡驅動程序(但即使是 VESA 驅動程序也可以,不確定它是否可以),它很可能開箱即用。但是會進行雙重掃描)。
添加帶有雙重掃描的
ModeLine
通孔xrandr
基本上只是在模式行資料結構中設置一個標誌。驅動程序需要解釋這個標誌,並使用它正確設置寄存器,並且(如上面的數據表所示)在很大程度上取決於硬體。