私は、すべての出力がIntelカードに接続されているnvidia optimus/intelハイブリッドグラフィックスでLinuxを実行しているラップトップを持っています。 i915ドライバーによって駆動されます。
外部モニターまたはビーマーがブートサイクルで1回だけ検出される:無効にするかプラグを抜く(そして再度プラグする)と、Linuxカーネルがそれをもう検出しないため、再度有効にすることはできません:udevまたはacpiがありませんプラグ/アンプラグとsysfsのイベント、私の場合/sys/class/drm/card0-DP-1/status
、出力が切断されていることを示します。再起動後、ディスプレイが再び検出され、正確に1回だけ検出されます。サスペンド/ハイバネーションおよびレジュームでも十分ですが、再起動中に出力がuplugされた場合のみです。
これはどういうわけか、ブート時の出力デバイスのカーネルプローブ/再プローブに関連していると思います。カーネルを何らかの方法でモニターの再プローブに誘導して、うまくいけばそれらを再び検出できるようにできますか?
これは、Xで動作することがわかっているxrandrアプローチではありませんが、コンソールではこれを試すことができます。これにwriteすることができます/sys/class/drm/card0-DP-1/status
ファイルも同様です。適切なドキュメントは見つかりませんでしたが、ありがたいことにLinuxはオープンソースです。 ソースコード を確認すると、detect
、on
、on-digital
、off
。
そう echo detect > /sys/class/drm/card0-DP-1/status
はモニターの再チェックを強制する必要があります。またはecho on-digital > /sys/class/drm/card0-DP-1/status
は、検出の結果に関係なく、何とかオンにすることができます。
edit:Xでは、これを使用して、差し込まれていることを検出しなかったHDMIを処理しました。出力を強制的に有効にします。ただし、残念ながらビデオのみで、HDMIオーディオは機能しません(カーネルパッチがないと不可能です)。
xrandr --newmode "Mode 2" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
xrandr --addmode HDMI-1 "Mode 2"
xrandr --output HDMI-1 --mode "Mode 2" --right-of LVDS-1
これらの数値はすべてビデオのタイミングを指定します。通常は自動的に検出されます。それらを取得する最も簡単な方法は、起動時に使用しているモードを取得して機能するようにすることです(xrandr --verbose
に表示されます)。