Debian の X と xrandr の問題

Debian の X と xrandr の問題

私が使用しているX、xrandr、およびWMに関する問題が発生しました。私はここにいる

  • Debian 8 は安定して更新されました。
  • インテルグラフィックスカード、
  • i3wm、DEなし
  • lightDM(これが関連性があるかどうかはわかりませんが、ある時点ではそうかもしれないと思います)。クラッシュが発生したときにGDMを使用していて、lightdmをインストールしようとしました。 DMがXを認証するのがどれほど複雑かわかりません。

これがまさにその場面だ。家に帰り、ラップトップを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にバインドされているSuper + Shift + F8を押します。xrandr --autoこれにより、VGA1とHDMI1は接続されなくなり、切断されなければなりません。i3wmはすべてのワークスペースを移動します。 1画面で。時にはこれはうまくいきますが、ほとんどの場合、Xサーバーはクラッシュしてログインを要求するDMに行きます。そのため、開いているアプリケーションとファイルの両方を失いました(保存に関するOCDにもかかわらず)。

システムログです。 i3wm構成ファイルのSuper + Shift + F8にバインドされたスクリプトによって印刷された行で始まります。このショートカットを使用する理由は、VGAまたはHDMIのudevルールがないためです。スクリプトを実行するが削除するルールがあります。投稿できますが、投稿がすでに大きすぎて複雑にならないことを願っています。したがって、HDMIまたはVGAを取り外すと、LVDSが黒に変わり、スクリプトはそれをオンにする必要があります。 /var/logでXorg.logを公開することもできますが、役に立つものが含まれていないようです(公開する予定ですが、もう一度 - 内容が長すぎます。教えてください)。

これで問題が複雑になりました。 Debian 8に付属のGnome 3をインストールしました。 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にバックポートする必要がありますか?それとも別のものですか?

答え1

メッセージが急速に連続する場合、xrandrX サーバーでエラーが発生する可能性があります。私はあなたが2つのことをすることを提案します:

  • Xサーバーにバグを報告してください。何をしても競合は発生しないでください(最悪の場合はエラーメッセージが表示されるはずです)。
  • xrandr一度だけ呼び出されるようにスクリプトを変更してください。

    xrandr --output LVDS --off --output VGA1 --mode 1280x1024 --output HDMI1 --mode 1280x1024 --rotate left --right-of VGA1
    

    ここで重要な点は、xrandr出力ごとに複数のコマンドを渡すことができ、複数の出力を 。個人的には、出力の1つをデフォルトの出力に設定することもできますが(を使用して--primary)、実際には重要ではありません。

編集する:ログをさらに詳しく見ると、次のようになります。

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)を介して転送します。 ~のため陰極線管のコントローラーしかし、その用語は間違いなくやや古いですが。ほとんどのGPUは出力よりもこの数が少なく、CRTCの数はGPUカードが同時に制御できるモニタの数を決定する制限要因です。数年前まではほとんどのIntelモバイルGPUではこの数字が2つでしたが、4K画面(ディスプレイあたり2つのCRTCが必要)が登場し、現在、ほとんどの最新モバイルGPUには3つがあります。

システムはLVDS(現在のeDPに置き換えられた以前の標準)についても説明しているため、2つのCRTCがあると仮定するのは非常に安全です。

上記で引用したエラーメッセージの意味は、XサーバーにLVDSパネルの有効化を要求すると、利用可能なCRTCが見つかりましたが見つかりませんでした。そうすれば、状況が本当に悪くなるようでした。したがって、問題の解決策は次の点を確認することです。はい外部出力を無効にして外部モニタを有効にしようとすると、CRTCを使用できます。今後今試しているように、後で有効にする代わりに内部で有効にします。

関連情報