ノートパソコンの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を再起動しようとしましたが、役に立ちませんでした。
私は次のディスプレイドライバを試しましたが、どれも問題を解決しません。
Windows 10では、プラグを抜いた後、モニターを再検出するので、プラグインサイクルを実行するので、これはマザーボードの問題にはなりません。
会議などに行き、そこでラップトップを使用しなければならないので、画面を何度も抜く必要があります。基本的に、上記の問題により、1日に5回までラップトップを再起動することになります。助けてください!
これは、 HDMIのプラグを抜き差しした後、2番目のモニターが検出されない と同じではないことに注意してください
あなたの問題に最も近いものは、このスレッド( 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
スクリプトを配置したパスに変更します。