Die nicht zusammenhängende Software-Interaktion deaktiviert den externen Monitor und macht ihn für xrandr nicht nachweisbar

682
Nobody

Ich habe einen Laptop mit KDE Plasma 5 unter Arch Linux, der Probleme mit externen Monitoren hat.

Manchmal muss ich mehrmals versuchen, das HDMI-Kabel anzuschließen, bevor der Monitor erkannt wird. Dann läuft es einwandfrei, bis ich eine PDF-Datei in Okular öffne, wodurch die Ausgabe auf dem externen Monitor deaktiviert wird. In einigen Anwendungen bewirkt das Aufrufen eines Bestätigungsdialogfeldes den gleichen Effekt.

Wenn der Monitor von Okular "deaktiviert" ist, sagt xrandr, dass der HDMI-Anschluss getrennt ist.

Manchmal funktioniert das Wiederherstellen des Monitors, manchmal nicht. Manchmal wird es wieder lebendig, wenn Sie eine andere PDF-Datei in Okular öffnen.

Ich habe kürzlich festgestellt, dass ich den externen Monitor zuverlässig deaktivieren kann, indem ich ein PDF im Präsentationsmodus in Okular öffne. Dies ist besonders problematisch, wenn ich eine Präsentation über einen Projektor durchführen möchte.

Natürlich ist nach einem Neustart alles wieder "normal".

Beachten Sie, dass dies bei mehreren Monitoren und Kabeln der Fall war. Der Computer scheint also die Ursache zu sein. Die Tatsache, dass ich dies über Software auslösen kann, weist auf ein Treiberproblem hin.

Ich kann gar nicht erst anfangen, eine Lösung zu finden, weil ich keine Ahnung habe, wie ich die Ursachen dieses Problems untersuchen kann.

BEARBEITEN Heute konnte ich das Problem reproduzieren, indem ich versuchte, eine KonsoleInstanz mit mehreren Registerkarten zu schließen. Das resultierende Dialogfeld warnte vor dem Schließen von 2 Registerkarten, und der externe Monitor wurde deaktiviert. Ich konnte den externen Monitor auch ein- und ausschalten, indem ich eine frisch kompilierte GTK-Version des Ambulant Players startete .

UPDATE Heute hatte ein Kollege ein ähnliches Problem mit der gleichen Hardware, auf der Gnome ausgeführt wurde. Beim Einstecken des HDMI-Steckers wird der Monitor kurzzeitig erkannt (xrandr zeigt die Optionen an) und wird dann wieder ausgeschaltet. Der Laptop-Monitor flackert einmal während dieses Vorgangs, als würde er zum externen Ausgang und dann zurück wechseln.

Während wir dies diagnostizierten, liefen wir jedenfalls watch -n 0.5 xrandr, um den Moment zu erfassen, in dem der Monitor erkannt wird. Ich habe dies auf meinem System ausprobiert und festgestellt, dass das gesamte System während der Ausführung dieses Befehls extrem verzögert wird. Zusätzlich bekomme ich gelegentlich eine leere Ausgabe und dmesgspucke diese Fehler aus:

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

Es scheint also etwas faul zu sein. Irgendwelche Hinweise zum Debuggen von Xrandr? Runnig gdb xrandrhat mir folgendes gegeben (beginnend mit den letzten vier Zeilen der Xrandr-Ausgabe, zum Vergleich siehe den Nicht-Segfault-Aufruf am Ende dieses Beitrags):

 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. 

Einige weitere Dmesg-Ausgaben, die in Zusammenhang stehen könnten:

[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 

Beachten Sie auch die folgende xrandr-Ausgabe (bei diesem Laptop gibt es nur einen HDMI-Anschluss und einen internen Monitor):

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) 
2
Können Sie versuchen, Okular mit * KSCREEN_BACKEND = Fake Okular * zu starten, und mitteilen, ob dies einen Unterschied gemacht hat? Dies wird Xrandr umgehen, mit dem Okular nicht schön zu spielen scheint. MariusMatutiae vor 7 Jahren 1
@MariusMatutiae Ich werde es nächste Woche versuchen. Dieses Problem tritt jedoch auch in anderen Anwendungen auf, daher muss irgendwo ein tieferes Problem vorliegen. Nobody vor 7 Jahren 0
@MariusMatutiae Ich kann das Problem nicht mehr über Okular (mit und ohne `KSCREEN_BACKEND = Fake`) reproduzieren. Ich sehe jedoch immer noch ein- oder zweimal täglich Fälle dieses Problems. Sie müssen einen anderen zuverlässigen Reproduzent finden :( Nobody vor 7 Jahren 0

0 Antworten auf die Frage