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

2

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

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

Quando o monitor está "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, notei que posso desativar com segurança o monitor externo abrindo um PDF no modo de apresentação no Okular, o que é especialmente problemático quando quero fazer uma apresentação por meio de um projetor.

Claro, tudo está de volta ao "normal" após a reinicialização.

Observe que isso aconteceu com vários monitores e vários cabos para que o computador pareça ser a causa. O fato de eu poder acionar isso via software sugere um problema de driver.

Eu não consigo nem 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 instância Konsole com várias guias. A caixa de diálogo resultante avisou sobre fechar duas 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 do Reprodutor Ambulante .

UPDATE Hoje, um colega meu teve um problema semelhante com o mesmo hardware, executando o Gnome. Ao inserir o plugue HDMI, o monitor é detectado por um breve momento (xrandr exibe as opções) e, em seguida, é desligado novamente. O monitor do laptop pisca uma vez durante esse procedimento, como se estivesse mudando para saída externa e depois para trás.

De qualquer forma, ao diagnosticar isso, rodamos watch -n 0.5 xrandr para capturar o momento em que o monitor é detectado. Eu tentei isso no meu sistema e notei que há uma quantidade terrível de atraso em todo o sistema enquanto este comando está em execução. Além disso, recebo uma saída vazia de vez em quando e dmesg envia esses 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. Qualquer ponteiros sobre como depurar o xrandr? Runnig gdb xrandr me deu isso (começando com as últimas quatro linhas da saída xrandr, para comparação, veja a invocação não segfault na parte inferior 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 alguns resultados do dmesg que podem estar relacionados:

[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)
    
por Nobody 30.01.2017 / 16:16

0 respostas