web-dev-qa-db-ja.com

HDMIモニターを取り外してから再び接続した後、ラップトップで検出されない

ノートパソコンのHDMIポートに外部モニターが接続されています。ラップトップを起動すると、ラップトップ画面とモニターの両方が正常にオンになり、完全に機能します。ただし、外部モニターを取り外してから再び接続すると、Ubuntuはモニターが再び接続されたことを検出できず、切断されていると表示します。外部モニターを再びオンにする唯一の方法は、ラップトップを再起動することです。

ラップトップの仕様:Dell Inspiron 15 Gaming Nvidia GeForce GTX 960M

Lshw Displayセクションの出力:

       *-display
            description: 3D controller
            product: GM107M [GeForce GTX 960M]
            vendor: NVIDIA Corporation
            physical id: 0
            bus info: pci@0000:01:00.0
            version: a2
            width: 64 bits
            clock: 33MHz
            capabilities: pm msi pciexpress bus_master cap_list rom
            configuration: driver=nvidia latency=0
            resources: irq:130 memory:e2000000-e2ffffff memory:d0000000-dfffffff memory:e0000000-e1ffffff ioport:e000(size=128) memory:e3000000-e307ffff

両方の画面が接続されている場合のxrandrの出力は次のとおりです。

Screen 0: minimum 8 x 8, current 3840 x 1113, maximum 16384 x 16384
eDP-1-1 connected primary 1920x1080+0+33 344mm x 193mm
   1920x1080     60.00*+  59.93    48.00  
   1680x1050     59.95    59.88  
   1600x1024     60.17  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      59.80    59.96  
   1152x864      60.00  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
DP-1-1 connected 1920x1080+1920+0 510mm x 290mm
   1920x1080     60.00*+
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1152x864      75.00  
   1024x768      75.03    60.00  
   832x624       74.55  
   800x600       75.00    60.32    56.25  
   640x480       75.00    59.94  
   720x400       70.08  
HDMI-1-1 disconnected

プラグを抜いて再び差し込むと、DP-1-1が切断されたと表示されます。

また、xrandr --autoは画面をオンに戻しません。また、lightdmとunityを再起動しようとしましたが、役に立ちませんでした。

私は次のディスプレイドライバを試しましたが、どれも問題を解決しません。

  • noveauオープンソースドライバー
  • nvidia-375.26(nvidiaが推奨)

Windows 10では、プラグを抜いた後、モニターを再検出するので、プラグインサイクルを実行するので、これはマザーボードの問題にはなりません。

会議などに行き、そこでラップトップを使用しなければならないので、画面を何度も抜く必要があります。基本的に、上記の問題により、1日に5回までラップトップを再起動することになります。助けてください!

これは、 HDMIのプラグを抜き差しした後、2番目のモニターが検出されない と同じではないことに注意してください

5
mdewit

あなたの問題に最も近いものは、このスレッド( buntuforums.org-入力変更または電源オフ/オン後にNvidia GTX 950およびテレビが信号を表示しない )で、nVidia 970/980のソリューションを参照します。 960が間にあるようです。

そこで提案されている解決策は、次のコードを使用して、モニターを不良モードにリセットしてから、良好モードにリセットすることです。

#!/bin/sh
#Fix TV state when HDMI link is lost.
#By Mario Limonciello <email address hidden>
sleep 10
OUTPUT="HDMI-0"
BAD_MODE="1280x720"
GOOD_MODE="1920x1080"

for MODE in $BAD_MODE $GOOD_MODE; do
DISPLAY=:0 xrandr --output $OUTPUT --mode $MODE
sleep 2
done

このスクリプトは改善できると思いますが、元のインカネーションに投稿したかったのです。


リンクの作成者の1人は、udevをセットアップして、ホットプラグイベントでスクリプトを自動的に呼び出すことを望んでいました。過去にこのコード(hotplugtv)でHDMIに対してこれを行って、Ubuntu 16.04 pulseaudio 8のバグを修正しました。

#!/bin/bash

if [[ $(cat /sys/class/drm/card*-HDMI-A-1/status | grep -Ec "^connected") -eq 1 ]]; then
        /bin/sleep 2;
        export Pulse_RUNTIME_PATH="/run/user/1000/Pulse/";
        Sudo -u rick -E pacmd set-card-profile 0 output:hdmi-stereo;
else
        export Pulse_RUNTIME_PATH="/run/user/1000/Pulse/";
        Sudo -u rick -E pacmd set-card-profile 0 output:analog-stereo;
fi

exit 0

/sys/class/drm/...ディレクトリを使用してifテストを変更する必要があります。次に、hdmi画面をリセットするスクリプトファイルを使用してifテストの真の側面を変更します。 ifテストのfalse側では、hdmiデバイスが取り外されたときに何もする必要がない場合は、単にコードを:(noop)に置き換えます。

ホットプラグイベント中にudevからこのスクリプトを呼び出すには、次を含む/etc/udev/rules.d/99-hotplugtv.rulesファイルを作成します。

ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/path/to/hotplugtv"

/path/to/hotplugtvスクリプトを配置したパスに変更します。

1