編集:問題を解決する質問の最後に何かを追加しました。これはRobert Simmerの提案に基づいているため、彼の答えは正しいとマークされています。
Lenovo USB-Cドックをラップトップにコールドプラグで差し込むと、2台の追加モニター(合計3台)が動作を開始しました。
ただし、ドックをホットプラグすると、次のエラーが発生しますarandr
。
XRandR returned error code 1:
X Error of failed request: BadMatch (invalid parameter attributes)
Major opcode of failed request: 140 (RANDR)
Minor opcode of failed request: 21 (RRSetCrtcConfig)
Serial number of failed request: 44
Current serial number in output stream: 44
1920x1080 (0x48) 142.600MHz -HSync -VSync *current +preferred
h: width 1920 start 1936 end 1952 total 2080 skew 0 clock 68.56KHz
v: height 1080 start 1083 end 1088 total 1142 clock 60.03Hz
1920x1080 (0x56f) 138.500MHz +HSync -VSync
h: width 1920 start 1968 end 2000 total 2080 skew 0 clock 66.59KHz
v: height 1080 start 1083 end 1088 total 1111 clock 59.93Hz
また、3つのモニターをすべて使用する場合、ある時点でノートパソコンの画面がランダムにアプリを停止させることが多いため、これを防ぐためにノートパソコンの画面を無効にすることがよくあります。
私のラップトップはLenovo X1 Carbonの第8世代です。私はWaylandではなく、i3とX11を使用する完全に最新バージョンのManjaro Linuxを使用しています。
以下は短縮された出力です。xrandr --verbose
- モニターが接続されていない場合は、次の結果が表示されます。
xrandr --verbose | grep -E '^[^[:space:]]|curr|pref' | sed -e 's/(norm.*)//'
Screen 0: minimum 8 x 8, current 6535 x 2434, maximum 32767 x 32767
eDP1 connected primary 1920x1080+1256+1354 (0x48) normal 310mm x 170mm
1920x1080 (0x48) 142.600MHz -HSync -VSync *current +preferred
DP1 disconnected
DP1-1 connected
1440x900 (0x78b) 106.500MHz +HSync -VSync +preferred
DP1-2 connected
1920x1080 (0x56f) 138.500MHz +HSync -VSync +preferred
DP1-3 disconnected
DP2 disconnected
HDMI1 disconnected
VIRTUAL1 disconnected
- ドックを接続して再起動した後(つまり、すべてがうまく機能します)、次のようになります。
Screen 0: minimum 8 x 8, current 4740 x 3600, maximum 32767 x 32767
eDP1 connected primary 1920x1080+2820+2520 (0x4b) normal 310mm x 170mm
1920x1080 (0x4b) 142.600MHz -HSync -VSync *current +preferred
DP1 disconnected
DP1-1 connected 900x1440+0+0 (0x4c) right 410mm x 260mm
1440x900 (0x4c) 106.500MHz +HSync -VSync *current +preferred
DP1-2 connected 1920x1080+900+1440 (0x4d) normal 530mm x 300mm
1920x1080 (0x4d) 138.500MHz +HSync -VSync *current +preferred
DP1-3 disconnected
DP2 disconnected
HDMI1 disconnected
VIRTUAL1 disconnected
答え:
いいね!したがって、arandrを完全に使用しないでください。
xrandr --output DP1-2 --auto
xrandr --output DP1-1 --auto
ホットプラグ時に2つの外部モニタが動作するようにします。
その後、次のものを使用できます。
xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520 --rotate normal --output DP1 --off --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right --output DP1-2 --mode 1920x1080 --pos 900x1440 --rotate normal
設定してください。以前は、上記の内容をスクリプトに入れるだけでは機能しませんでしたが、スクリプトの両方の画面に--autoを含めると、ホットプラグ時にも機能します。
xrandr --output DP1-2 --auto
xrandr --output DP1-1 --auto
xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520 --rotate normal --output DP1 --off --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right --output DP1-2 --mode 1920x1080 --pos 900x1440 --rotate normal
ただし、arandr --auto(それぞれ個別に)を使用して設定を実行しないと失敗します。
私が知っている限り、このステップを実行すると、dmesgには何の変更もありません。
答え1
xrandr
エラーメッセージには、どのコマンドが実行されたかarandr
(そして意図的に)表示されません。
ここではいくつかの仮定をする必要があります。あなたのコメントでこれを確認/拒否してください。だから私の仮定は次のようになります。
- ドックから起動すると、すべてのモニターが機能します。
- ドックがホットプラグされると、内部ディスプレイのみが表示され続け、外部ディスプレイは黒/オフのままになります。
- どのラッパーを使用していますか?
arandr
(私はよくわかりません。問題を調査するときは除外するのが最善です!) arandr
外部モニターの電源を入れたいです。
次から始めます。
xrandr --output DP1-1 --auto
それから
xrandr --output DP1-2 --auto
どうしたの?
私はこれが似たようなことをしていると推測しましたが、arandr
残念ながらこのコマンドは機能しませんでした。カーネルの新しい出力が含まれていません(コマンドdmesg
がxrandr
2回呼び出される前と後に表示されます。存在する場合は、新しいメッセージのみが報告されます)。
それでも問題が解決しない場合は、一度に1つずつ低解像度モニターを駆動してみてください。たとえば、
xrandr --output DP1-1 --mode 800x600
働く?
私が知っているすべては:
- これはピクセルクロックの問題ではありません。コールドスワップモニタは他のすべてのモデルと周波数で動作し、ピクセルクロックが不足しているため、これをサポートすることはできません。
- モニターを接続した後の出力は接続されていると報告されているため、「モニターオフ」のように見えます。これはドックがなくても同じですか? (またはドッキングステーションを使用していますが、モニターケーブルを外していますか?)
答え2
ホットスワップの状況でこのコマンドが失敗するということですか?
xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520 --rotate normal \
--output DP1 --off \
--output DP1-1 --mode 1440x900 --pos 0x0 --rotate right \
--output DP1-2 --mode 1920x1080 --pos 900x1440 --rotate normal
それでもなぜ機能しないのか疑問が残ります。
これをホットスワップして1つずつ実行して、どちらが失敗するのかを知ることができますか?
xrandr --output eDP1 --primary --mode 1920x1080 --pos 2820x2520
xrandr --output DP1-1 --mode 1440x900 --pos 0x0 --rotate right
xrandr --output DP1-2 --mode 1920x1080 --pos 900x1440
xrandr --output DP1 --off
ところで、モニター3つが片隅からのみ対角線で届いていると思ったのですが、そうですか?