web-dev-qa-db-fra.com

Moniteur HDMI non détecté par l'ordinateur portable après avoir débranché et reconnecté

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:

  • pilote noveau open source
  • nvidia-375.26 (recommandé par nvidia)

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é

5
mdewit

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.

1
WinEunuuchs2Unix