A interação de software não relacionada desativa o monitor externo e o torna indetectável pelo xrandr

A interação de software não relacionada desativa o monitor externo e o torna indetectável pelo xrandr

Eu tenho um laptop rodando KDE Plasma 5 no Arch Linux que tem problemas com monitores externos.

Às vezes tenho que tentar várias vezes conectar o cabo HDMI antes que o monitor seja detectado. Então funciona bem até eu abrir um arquivo PDF no Okular, o que desativa a saída para o monitor externo. Em alguns aplicativos, a exibição de uma caixa de diálogo de confirmação resulta no mesmo efeito.

Quando o monitor é "desativado" pelo Okular, xrandr diz que a porta HDMI está desconectada.

Às vezes, reconectar o monitor funciona, às vezes não. Às vezes, ele volta à vida ao abrir outro arquivo PDF no Okular.

Recentemente, percebi que posso desativar o monitor externo de maneira confiável abrindo um PDF no modo de apresentação no Okular, o que é especialmente problemático quando quero fazer uma apresentação via projetor.

Claro, tudo volta ao “normal” após uma reinicialização.

Observe que isso aconteceu com vários monitores e vários cabos, então o computador parece ser a causa. O fato de eu poder acionar isso por meio de software indica um problema de driver.

Não consigo nem começar a encontrar uma solução porque não tenho ideia de como diagnosticar o que causa esse problema.

EDITAR Hoje consegui reproduzir o problema tentando fechar uma Konsoleinstância com várias abas. A caixa de diálogo resultante alertou sobre o fechamento de 2 guias ao mesmo tempo e o monitor externo foi desativado. Também consegui ligar e desligar o monitor externo iniciando uma versão GTK recém-compilada doJogador Ambulante.

ATUALIZAR Hoje um colega meu teve um problema semelhante com o mesmo hardware, rodando o Gnome. Ao inserir o plugue HDMI o monitor é detectado por um breve momento (xrandr exibe as opções) e depois é desligado novamente. O monitor do laptop pisca uma vez durante este procedimento, como se estivesse alternando para saída externa e depois vice-versa.

De qualquer forma, ao diagnosticar isso corremos watch -n 0.5 xrandrpara captar o momento em que o monitor é detectado. Eu tentei isso em meu sistema e percebi que há um atraso terrível em todo o sistema enquanto este comando está em execução. Além disso, recebo uma saída vazia de vez em quando e dmesgexponho estes erros:

[13856.498317] xrandr[30492]: segfault at 38 ip 000000000040300c sp 00007ffffbd85370 error 4 in xrandr[400000+e000]
[13913.933446] xrandr[30629]: segfault at 38 ip 0000000000402f8d sp 00007fff27f746f0 error 4 in xrandr[400000+e000]
[13945.980728] xrandr[30709]: segfault at 38 ip 0000000000402f8d sp 00007ffc510a87e0 error 4 in xrandr[400000+e000]
[14022.522987] xrandr[30880]: segfault at 38 ip 0000000000402f8d sp 00007fffe3d274c0 error 4 in xrandr[400000+e000]
[14049.008622] xrandr[30939]: segfault at 38 ip 0000000000402f8d sp 00007ffc295ca130 error 4 in xrandr[400000+e000]

Então, algo suspeito parece estar acontecendo. Alguma dica sobre como depurar o xrandr? Runnig gdb xrandrme deu isso (começando com as últimas quatro linhas da saída do xrandr, para comparação, veja a invocação não segfault no final deste post):

   400x300       60.32    56.34  
   320x240       60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected (normal left inverted right x axis y axis)

Program received signal SIGSEGV, Segmentation fault.
0x0000000000402f8d in ?? ()
(gdb) bt
#0  0x0000000000402f8d in ?? ()
#1  0x00007ffff71f843a in __libc_start_main () from /usr/lib/libc.so.6
#2  0x0000000000408629 in ?? ()
(gdb) disassemble 0x0000000000408620,100
Dump of assembler code from 0x408620 to 0x64:
End of assembler dump.

Mais alguma saída dmesg que pode estar relacionada:

[14887.537240] [drm:drm_dp_dual_mode_detect [drm_kms_helper]] *ERROR* Unexpected DP dual mode adaptor ID 04
[14887.681751] i915 0000:00:02.0: HDMI-A-1: EDID is invalid:
[14887.681758]  [00] BAD  04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
[14887.681761]  [00] BAD  04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
[14887.681763]  [00] BAD  04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
[14887.681765]  [00] BAD  04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
[14887.681767]  [00] BAD  04 05 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[14887.681770]  [00] BAD  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[14887.681771]  [00] BAD  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[14887.681773]  [00] BAD  ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
[14892.829695] [drm:drm_dp_dual_mode_detect [drm_kms_helper]] *ERROR* Unexpected DP dual mode adaptor ID 04

Observe também a seguinte saída xrandr (há apenas uma porta HDMI e um monitor interno neste laptop):

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
   1920x1080     60.02*+
   1400x1050     59.98  
   1280x1024     60.02  
   1280x960      60.00  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   800x600       60.00    60.32    56.25  
   700x525       59.98  
   640x512       60.02  
   640x480       60.00    59.94  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.00 +  50.00    59.94    30.00    25.00    24.00    29.97    23.98  
   1920x1080i    60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     60.02  
   1280x960      60.00  
   1152x864      59.97  
   1280x720      60.00    50.00    59.94  
   1024x768      60.00  
   800x600       60.32  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       60.00    59.94  
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)

ATUALIZAR

Já faz algum tempo que não consigo conectar nenhum dispositivo HDMI com êxito, então a pergunta original pode não ser reproduzível para mim. No entanto, percebi que poderia usar o HDMI no Antergos Live Installer (que usa GNOME?) E que iniciar o xrandr repetidamente irá travar o xrandr em algum momento e desconectar o monitor, bem como retirá-lo da lista de exibição.

Eu também encontreiessa questãoque parece semelhante ao que estou vendo.

informação relacionada