3

I have a laptop running KDE Plasma 5 on Arch Linux which has problems with external monitors.

Sometimes I have to try multiple times to connect the HDMI cable before the monitor is detected. Then it runs fine until I open a PDF file in Okular, which disables the output to the external monitor. In some applications popping up a confirmation dialog results in the same effect.

When the monitor is "disabled" by Okular, xrandr says the HDMI port is disconnected.

Sometimes reconnecting the monitor works, sometimes it does not. Sometimes it comes back to life when opening another PDF file in Okular.

Recently, I noticed that I can reliably disable the external monitor by opening a PDF in presentation mode in Okular, which is especially problematic when I want to give a presentation via projector.

Of course, everything is back to "normal" after a reboot.

Note that this has happened with multiple monitors and multiple cables so the computer seems to be the cause. The fact that I can trigger this via software hints at a driver problem.

I can't even start to find a solution because I have no idea how to go about diagnosing what causes this problem.

EDIT Today I could reproduce the problem by trying to close a Konsole instance with multiple tabs. The resulting dialog warned about closing 2 tabs at once and the external monitor was disabled. I also was able to switch the external monitor on and off by starting a freshly compiled GTK version of the Ambulant Player.

UPDATE Today a colleague of mine had a similar problem with the same hardware, running Gnome. When inserting the HDMI plug the monitor is detected for a brief moment (xrandr displays the options) and then it is shut off again. The laptop monitor flickers once during this procedure, as if switching to external output and then back.

Anyways, while diagnosing this we ran watch -n 0.5 xrandr to catch the moment when the monitor is detected. I tried this on my system and noticed that there is an aweful amount of lag on the whole system while this command is running. Additionally I get an empty output every once in a while and dmesg spits out these errors:

[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]

So something fishy seems to be going on. Any pointers on how to debug xrandr? Runnig gdb xrandr gave me this (starting with the last four lines of the xrandr output, for comparison, look at the non segfault invocation at the bottom of this 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.

Some more dmesg output that might be related:

[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

Also note the following xrandr output (there is only one HDMI port and one internal monitor on this 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)

UPDATE

I was not able to successfully connect any HDMI device anymore for some time now, so the original question might be unreproducable for me. However, I noticed that I could use the HDMI on the Antergos Live Installer (which uses GNOME?) and that starting xrandr repeatedly will crash xrandr at some point and disconnect the monitor as well as unlist it in the display list.

I also found this question which sounds similar to what I am seeing.

  • 1
    Can you try starting okular with KSCREEN_BACKEND=fake okular, and report whether this made any difference? This will bypass xrandr, with which okular does not seem to play nice. – MariusMatutiae Jun 3 '17 at 7:54
  • @MariusMatutiae I'll try that next week. However, this problem does happen in other applications as well, so there must be a deeper issue somewhere. – Nobody moving away from SE Jun 3 '17 at 18:01
  • @MariusMatutiae I cannot reproduce the issue via okular (with and without KSCREEN_BACKEND=fake) anymore. However, I am still seeing instances of this problem once or twice per day. Need to find another reliable reproducer :( – Nobody moving away from SE Jun 6 '17 at 9:13

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.