J'ai un moniteur externe connecté au port HDMI de mon ordinateur portable. Lorsque je démarre mon ordinateur portable, son écran et son moniteur s’allument correctement et fonctionnent parfaitement. Cependant, chaque fois que je débranche le moniteur externe, puis que je le rebranche, Ubuntu ne détecte pas que le moniteur est de nouveau branché et l'affiche comme déconnecté. Le seul moyen de rallumer le moniteur externe est de redémarrer mon ordinateur portable.
Spécifications des ordinateurs portables: Dell Inspiron 15 Gaming Nvidia GeForce GTX 960M
Sortie de la section d'affichage lshw:
*-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
Voici ma sortie xrandr lorsque les deux écrans sont connectés:
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
Après avoir débranché et reconnecté, le DP-1-1 apparaît comme étant déconnecté.
De plus, xrandr --auto ne rallume pas l'écran. Également essayé de redémarrer lightdm et l'unité, mais en vain.
J'ai essayé avec les pilotes d'affichage suivants, et aucun ne résout le problème:
Notez que dans Windows 10, le moniteur est redétecté lorsque, après le cycle de branchement, débranchez, cela ne devrait donc pas être un problème avec la carte mère.
Je dois beaucoup débrancher mon écran car je dois aller à des réunions, etc. et utiliser mon ordinateur portable là-bas. Fondamentalement, le problème ci-dessus me force à redémarrer mon ordinateur portable jusqu'à 5 fois par jour. S'il vous plaît aider!
Notez que ce n'est pas la même chose que Deuxième moniteur non détecté après que HDMI soit débranché et rebranché
Le problème le plus proche de votre problème est ce fil ( buntuforums.org - Nvidia GTX 950 et TV ne voyant pas le signal après un changement d’entrée ou une mise hors tension/sous tension ) qui fait référence aux solutions de nVidia 970/980. Il semblerait que votre 960 soit entre les deux.
La solution proposée consiste à réinitialiser le moniteur sur un mode incorrect, puis sur un mode correct à l'aide de ce code:
#!/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
Je pense que ce script peut être amélioré, mais je voulais le poster dans son incarnation originale.
L'un des auteurs du lien souhaitait configurer udev
pour appeler automatiquement le script lors d'un événement hot-plug. Je l'ai déjà fait pour HDMI avec ce code (hotplugtv
) dans le passé pour corriger le bug d'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
Vous devrez modifier le test if avec votre répertoire /sys/class/drm/...
. Puis modifiez le côté vrai du test if avec votre fichier de script qui réinitialise l'écran hdmi. Sur le côté faux du test if, remplacez simplement le code par un :
(noop) s'il n'y a rien à faire lorsque le périphérique hdmi
est débranché.
Pour appeler ce script à partir de udev
lors d'événements hot-plug, créez le fichier /etc/udev/rules.d/99-hotplugtv.rules
contenant:
ACTION=="change", SUBSYSTEM=="drm", ENV{HOTPLUG}=="1", RUN+="/path/to/hotplugtv"
Remplacez /path/to/
par le chemin où vous avez placé le script hotplugtv
.