X、xrandr、そしておそらく使用しているWMに関連していると思われる問題が発生しています。私は
これがシナリオです。家に帰ってラップトップを2台のモニター(VGA1とHDMI1)に接続し、LVDS1の電源を切ります。そのために私は.bashrcに関数を持っています
function duo {
xrandr --output HDMI1 --right-of LVDS1
xrandr --output LVDS1 --off # this is probably bad, but it still works thanks to xrandr
xrandr --output HDMI1 --mode 1280x1024
xrandr --output HDMI1 --right-of VGA1
xrandr --output HDMI1 --rotate left
xrandr --output VGA1 --mode 1280x1024
}
Xrandrがレイアウトを変更する方法を実験して分解しようとしていたため、関数が乱雑になりました。これは100%問題なく機能します。切断して「ラップトップ」モードに戻りたいときは、両方のケーブルを引き出して、i3wmでxrandr --auto
にバインドされているSuper + Shift + F8を押します。これにより、VGA1とHDMI1が接続されていないため、切断されます。もう、i3wmはすべてのワークスペースを単一の画面に移動します。これが機能することもありますが、ほとんどの場合、XサーバーがクラッシュしてDMログインのプロンプトが表示されます。したがって、開いているすべてのアプリケーションと、場合によってはファイルが失われます(ただし、保存に関してはOCDです)。
これがsyslogです。それは私のi3wm設定ファイルのSuper + Shift + F8にバインドされている私のスクリプトによって印刷された行で始まります。このショートカットの理由は、VGAまたはHDMIのudevルールがないためです。スクリプトを実行するルールがありましたが、削除しました。投稿することはできますが、投稿はすでに非常に大きいので、散らかしたくありません。したがって、HDMIまたはVGAを抜くと、LVDSが黒くなり、このスクリプトでオンになります。/var/logからXorg.logを投稿することもできますが、何も役に立たないようです(投稿しますが、長いですが、お知らせください)。
今や複雑なことに、Debian8のインストールに付属しているGnome3がインストールされています。私がそれを使用し、i3wmを使用しない場合、すべてが機能し、Xはクラッシュしません!そのため、2台のモニターを接続し、LVDSをオフにして、ホットで安全にプラグを抜くことができます。 Gnomeが好きではないというわけではありませんが、i3wmと最小限のライトのセットアップに非常に慣れています(Archデスクトップでも同じものを使用してください)。ラップトップもGnome3にとって古いものです。他のDEを試してみたいとは思いません。
#!/bin/bash
# Super+Shift+F8 is bound to this script in WM
function laptop() {
xrandr --auto
xrandr --output VGA1 --off
xrandr --output HDMI1 --off
}
echo "running laptop script"
laptop
Oct 21 20:13:12 debianone /etc/gdm3/Xsession[8574]: running laptop script
Oct 21 20:13:12 debianone /etc/gdm3/Xsession[8574]: xrandr: cannot find crtc for output LVDS1
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) intel(0): Allocated new frame buffer 1024x1280 stride 4096, tiled
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: X Error of failed request: BadMatch (invalid parameter attributes)
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Major opcode of failed request: 140 (RANDR)
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Minor opcode of failed request: 21 (RRSetCrtcConfig)
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Serial number of failed request: 35
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Current serial number in output stream: 35
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: i3: No usable outputs available.
Oct 21 20:13:13 debianone org.gtk.vfs.Daemon[8621]: A connection to the bus can't be made
Oct 21 20:13:13 debianone org.gtk.vfs.Daemon[8621]: g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
Oct 21 20:13:13 debianone org.a11y.Bus[8621]: g_dbus_connection_real_closed: Remote peer vanished with error: Underlying GIOStream returned 0 bytes on an async read (g-io-error-quark, 0). Exiting.
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: [9400:9400:1021/201313:ERROR:chrome_browser_main_extra_parts_x11.cc(57)] X IO error received (X server probably went away)
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: [libi3] libi3/font.c Using Pango font DejaVu Sans Mono, size 8
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: [libi3] libi3/font.c X11 root window dictates 98.223565 DPI
Oct 21 20:13:13 debianone org.a11y.atspi.Registry[8648]: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Oct 21 20:13:13 debianone org.a11y.atspi.Registry[8648]: after 1608 requests (1608 known processed) with 0 events remaining.
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: drracket: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: [9434:9434:1021/201313:ERROR:x11_util.cc(82)] X IO error received (X server probably went away)
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Can't open display :0
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Exiting due to signal.
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: after 2716 requests (2716 known processed) with 0 events remaining.
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[4989]: Process 8664 dead!
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[4989]: Warning: no target process found. Waiting for it...
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Process 8664 dead!
Oct 21 20:13:13 debianone /etc/gdm3/Xsession[8574]: Warning: no target process found. Waiting for it...
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "synaptics"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: AT Translated Set 2 keyboard: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Asus WMI hotkeys: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: USB Camera: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Microsoft Microsoft® Nano Transceiver v1.0: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Microsoft Microsoft® Nano Transceiver v1.0: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Microsoft Microsoft® Nano Transceiver v1.0: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Logitech USB Keyboard: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Logitech USB Keyboard: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Sleep Button: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Video Bus: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) evdev: Power Button: Close
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (II) UnloadModule: "evdev"
Oct 21 20:13:13 debianone gdm-Xorg-:0[8485]: (EE) Server terminated successfully (0). Closing log file.
X、KDE、Debian、Ubuntuで同様の問題に関するバグレポートを確認しましたが、修正されたことが示されています。私は間違いなく最新に更新され、まだクラッシュしています。新しいXをバックポートする必要がありますか?または、他の何か?
xrandr
メッセージの急速な連続が、Xサーバーのバグを引き起こしている可能性があります。私はあなたが2つのことをすることを提案します:
xrandr
を1回だけ呼び出すようにスクリプトを変更します。
xrandr --output LVDS --off --output VGA1 --mode 1280x1024 --output HDMI1 --mode 1280x1024 --rotate left --right-of VGA1
ここでのポイントは、出力ごとに複数のコマンドをxrandr
に渡すことができ、複数の出力を渡すことができるということです。個人的には、出力の1つをプライマリ出力として設定します(--primary
)、しかしそれは重要ではありません。
[〜#〜] edit [〜#〜]:ログをもう少し詳しく見ると、次のことがわかります。
Oct 21 20:13:12 debianone /etc/gdm3/Xsession[8574]: xrandr: cannot find crtc for output LVDS1
CRTCはディスプレイコントローラーチップです。 GPUによって生成されたフレームバッファーをスキャンラインに変換する実際のコンポーネント。スキャンラインは、選択された出力(VGA、DVI、HDMI、DisplayPort、yada yada)を介して送信されます。略語は Cathode Ray Tube Controller の略ですが、その用語は明らかにやや時代遅れです。ほとんどのGPUは、出力よりも少ない数であり、CRTCの数は通常、GPUカードが同時に操作できるモニターの数を決定する制限要因です。数年前まで、ほとんどのIntelのモバイルGPUではその数は2でしたが、4K画面(モニターごとに2つのCRTCが必要)の外観により、最新のモバイルGPUには3つあります。
システムはLVDS(現在は組み込みディスプレイポートまたはeDPに置き換えられている古い標準)についても説明しているため、2つのCRTCがあると想定するのはかなり安全です。
上で引用したエラーメッセージが意味するのは、XサーバーにLVDSパネルを有効にするように要求すると、使用可能なCRTCが検索され、見つからないということです。その後、物事はひどくうまくいかないようです。したがって、問題の解決策は、外部出力を無効にすることで、外部モニターを有効にしようとしたときにis利用可能なCRTCがあることを確認することですbeforeあなたが今やろうとしているように、後でではなく内部のもの。