xrandr 呼叫使其忘記輔助顯示
簡而言之
我有一台帶有外部 DVI 顯示器的筆記型電腦,該顯示器連接到其顯示埠(通過適配器)。當我使用 旋轉內部螢幕
xrandr
時,它會忘記輔助顯示器。多次呼叫xrandr
沒有任何效果。我必須關閉外接顯示器的電源,等待一段時間,xrandr
再次呼叫它會找到顯示器。細節
我使用帶有 Awesome WM 的 Kubuntu 13.10,而不是正常的 KWin Windows 管理器。因此,已經有兩個系統可以處理顯示器。
筆記型電腦是 ThinkPad X220 平板電腦,它在設備本身上有一個顯示埠,另一個在我目前使用的 UltraBase 擴展塢上。顯示器是三星 SyncMaster 2443BW,帶有 DVI 到 Display Port 適配器。
然後,當我旋轉物理顯示器(通過 ACPI 掛鉤)時,我使用自己的think-rotate旋轉內部 ( ) 螢幕。所述腳本用於旋轉螢幕。
LVDS1``xrandr
當我打電話時
think-rotate
,它會出現故障並在之後給我以下xrandr
輸出:Screen 0: minimum 320 x 200, current 1366 x 768, maximum 32767 x 32767 LVDS1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm 1366x768 60.0*+ 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis) HDMI2 disconnected (normal left inverted right x axis y axis) HDMI3 disconnected (normal left inverted right x axis y axis) DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis)
你看,那
HDMI2
完全不見了。在讓外部顯示器的所有電量耗儘後,xrandr
再次呼叫給我螢幕返回和以下輸出:Screen 0: minimum 320 x 200, current 1366 x 768, maximum 32767 x 32767 LVDS1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 277mm x 156mm 1366x768 60.0*+ 1360x768 59.8 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 59.9 VGA1 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) DP1 disconnected (normal left inverted right x axis y axis) HDMI2 connected (normal left inverted right x axis y axis) 1920x1200 60.0 + 1600x1200 60.0 1280x1024 60.0 1280x960 60.0 1024x768 60.0 800x600 60.3 56.2 640x480 60.0 HDMI3 disconnected (normal left inverted right x axis y axis) DP2 disconnected (normal left inverted right x axis y axis) DP3 disconnected (normal left inverted right x axis y axis) VIRTUAL1 disconnected (normal left inverted right x axis y axis)
我查看並在腳本
/var/log/syslog
的調試輸出中發現了以下內容:think-rotate
Jan 6 20:20:26 Martin-X220 colord: device removed: xrandr-Samsung Electric Company-SyncMaster-H9XS113172 Jan 6 20:20:26 Martin-X220 colord: Device added: xrandr-Samsung Electric Company-SyncMaster-H9XS113172
我該如何分類這個問題?我有其他 DVI 和 VGA 顯示器,我在 ThinkPad 本身上有另一個顯示埠。
我認為問題在於 KDE 中的某些東西、Awesome WM(在每次顯示更改時重新載入其配置)和我的
xrandr
呼叫之間的互動。跟進
沒有 Awesome WM,普通的 KDE 和 KWin
我剛開始沒有 Awesome WM 的 KDE。它不僅在我旋轉時忘記了外部顯示器,而且還導致了嚴重的合成故障。我發現它
think-rotate
被 ACPI 鉤子呼叫了兩次,所以我目前正在實施一個防範措施。同時執行兩次可能是導致故障的原因。忘記顯示是我think-rotate
手動呼叫時造成的,不是兩次執行造成的。沒有 KDE,普通的 Awesome WM
現在我只是用 Awesome WM,沒有啟動 KDE。沒有問題。我在這裡看到它被呼叫了兩次並在那個警衛上工作。它被呼叫了兩次,但現在只執行一次。顯然,這個問題在這裡並不存在。雖然我不喜歡承認,但根據我目前掌握的資訊,KDE 似乎導致了這個問題。
更新 2014-01-06 21:37+0100
好吧,看起來旋轉工作與普通的 Awesome WM 沒有問題。當我把它放到擴展塢上時,它沒有立即看到外接顯示器。我必須將其關閉並
xrandr
手動呼叫以使其正常工作。更新 2014-01-21 21:53+0100
我嘗試了另一個 DVI 顯示器,但沒有任何問題。當我回到我的三星 SyncMaster 時,我又遇到了這個問題。單獨的 Awesome WM 會導致問題,帶有 Awesome WM 的 KDE 也會導致問題。還是壞了!
2014-03-10 18:17+0100 更新
問題仍然存在。我用一根VGA線測試了一下,好像沒有問題。我目前的解決方法是關閉顯示器,打電話
xrandr
然後再打開。也許 Ubuntu 14.04 會解決這個問題。
當它連接到不同的電腦(也是 Windows 7 機器)時,該問題也仍然存在。這是硬體缺陷,我前段時間買了一個新顯示器。