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)
Tags multiple-monitors kde okular hdmi linux