Monitor HDMI não detectado pelo laptop após desconectar e conectar novamente

5

Eu tenho um monitor externo conectado à porta HDMI do meu laptop. Quando eu inicializo meu laptop, tanto a tela do laptop quanto o Monitor são ativados com sucesso e funcionam perfeitamente. No entanto, sempre que eu desconectar o monitor externo e, em seguida, conectá-lo novamente, o Ubuntu não consegue detectar que o monitor está conectado novamente, e mostra-lo como desconectado. A única maneira de ativar o monitor externo é reinicializar meu laptop.

Especificações do notebook: Dell Inspiron 15 Gaming Nvidia GeForce GTX 960M

Saída da seção de exibição do 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

Aqui está minha saída xrandr quando as duas telas estão anexadas:

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

Depois de desconectar e conectar novamente, o DP-1-1 aparece desconectado.

Além disso, xrandr --auto não liga a tela novamente. Também tentei reiniciar o lightdm e a unidade, mas sem sucesso.

Eu tentei com os seguintes drivers de exibição e nenhum resolve o problema:

  • driver de código aberto do noveau
  • nvidia-375.26 (recomendado pela nvidia)

Observe que, no Windows 10, o monitor é redetectado quando, após a desconexão, o ciclo de conexão é encerrado, portanto, isso não deve ser um problema com a placa-mãe.

Eu preciso desconectar muito minha tela, já que tenho que ir a reuniões etc. e usar meu laptop lá. Basicamente, a questão acima está me levando a reiniciar meu laptop até 5 vezes por dia. Por favor ajude!

Observe que isso não é o mesmo que Segundo monitor não detectado Depois que o HDMI foi desconectado e conectado novamente

    
por mdewit 21.01.2017 / 13:31

1 resposta

1

O mais próximo que eu encontrei do seu problema é este tópico ( ubuntuforums.org - Nvidia GTX 950 e TV não vendo sinal após alteração de entrada ou desligamento / desligamento ) que referencia soluções para nVidia 970/980. Parece que o seu 960 está no meio.

A solução proposta é restaurar o monitor para um modo ruim e, em seguida, um modo bom usando este código:

#!/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

Eu acho que este script pode ser melhorado, mas queria postá-lo em sua encarnação original.

Um dos autores no link queria configurar udev para chamar automaticamente o script no evento hot-plug. Eu fiz isso para HDMI com este código ( hotplugtv ) no passado para corrigir bug 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

Você precisará modificar o teste if com o diretório /sys/class/drm/... . Em seguida, modifique o lado verdadeiro do teste if com o arquivo de script que redefine a tela HDMI. No lado falso do teste if, simplesmente substitua o código por : (noop) se não houver nada a fazer quando o dispositivo hdmi for desconectado.

Para chamar esse script de udev durante eventos de hot-plug, crie o arquivo /etc/udev/rules.d/99-hotplugtv.rules contendo:

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

Altere /path/to/ para o caminho em que você colocou o script hotplugtv .

    
por WinEunuuchs2Unix 27.01.2017 / 01:23