私がしたこと:
HDMI経由でモニターを接続します。出力は
xrandr
予想通りです。Screen 0: minimum 8 x 8, current 3840 x 1080, maximum 32767 x 32767 eDP1 connected primary 1920x1080+1920+0 (normal left inverted right x axis y axis) 310mm x 170mm 1920x1080 60.01*+ 1400x1050 59.98 1600x900 60.00 1280x1024 60.02 1280x960 60.00 1368x768 60.00 1280x720 60.00 1024x768 60.00 1024x576 60.00 960x540 60.00 800x600 60.32 56.25 864x486 60.00 640x480 59.94 720x405 60.00 640x360 60.00 DP1 disconnected (normal left inverted right x axis y axis) DP2 disconnected (normal left inverted right x axis y axis) HDMI1 disconnected (normal left inverted right x axis y axis) HDMI2 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 530mm x 300mm 1920x1080 60.00*+ 50.00 59.94 1680x1050 59.88 1600x900 60.00 1280x1024 75.02 60.02 1440x900 59.90 1280x800 59.91 1152x864 75.00 1280x720 60.00 50.00 59.94 1024x768 75.03 70.07 60.00 832x624 74.55 800x600 72.19 75.00 60.32 56.25 720x576 50.00 720x480 60.00 59.94 640x480 75.00 72.81 66.67 60.00 59.94 720x400 70.08 VIRTUAL1 disconnected (normal left inverted right x axis y axis)
接続されているモニターに対応するファイルには、期待どおりの
/sys/class/drm/card0-HDMI-A-2/status
単語が含まれています。connected
その後、HDMIケーブルを外した。確認してみたら
/sys/class/drm/card0-HDMI-A-2/status
まだconnected
。- 今すぐ再実行すると、
xrandr
設定がリセットされ、ファイルが更新され、正しい状態、つまりdisconnected
。
私の質問:ケーブルが取り外されるとすぐに/ sysファイルシステムが正常に状態を反映するようにこの動作を変更するにはどうすればよいですか?xrandr
アップデートを開始するために電話する必要もありません。
代替質問:xrandr
/ sysファイルシステムを更新するためにどのようなことが行われていますか?これにより、定期的に更新を行う小さなスクリプトを作成できます。
この間、私も次のことを見ましたudevadm monitor
。
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[7260.824844] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
UDEV [7260.825690] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
KERNEL[7280.130646] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
UDEV [7280.138375] change /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
最初の2行はHDMIケーブルをコンピュータに接続した直後に表示されますが、最後の2行は手順3で説明したxrandr
コマンドを実行したときにのみ表示されます。
役に立つなら、私のカーネルバージョンは次のようになります。
Linux archy 4.8.13-1-ARCH #1 SMP PREEMPT Fri Dec 9 07:24:34 CET 2016 x86_64 GNU/Linux