Несвязанное взаимодействие с программным обеспечением отключает внешний монитор и делает его необнаружимым для xrandr

506
Nobody

У меня есть ноутбук под управлением KDE Plasma 5 на Arch Linux, который имеет проблемы с внешними мониторами.

Иногда мне приходится несколько раз пытаться подключить кабель HDMI, прежде чем обнаружится монитор. Затем он работает нормально, пока я не открою PDF-файл в Okular, который отключает вывод на внешний монитор. В некоторых приложениях всплывающее диалоговое окно подтверждения приводит к тому же эффекту.

Когда Okular «отключил» монитор, xrandr сообщает, что порт HDMI отключен.

Иногда переподключение монитора работает, иногда нет. Иногда это возвращается к жизни при открытии другого файла PDF в Okular.

Недавно я заметил, что могу надежно отключить внешний монитор, открыв PDF в режиме презентации в Okular, что особенно проблематично, когда я хочу сделать презентацию через проектор.

Конечно, после перезагрузки все возвращается в «нормальное состояние».

Обратите внимание, что это произошло с несколькими мониторами и несколькими кабелями, поэтому компьютер, кажется, является причиной. Тот факт, что я могу вызвать это с помощью программного обеспечения, намекает на проблему с драйвером.

Я даже не могу найти решение, потому что понятия не имею, как диагностировать причины этой проблемы.

РЕДАКТИРОВАТЬ Сегодня я мог воспроизвести проблему, пытаясь закрыть Konsoleэкземпляр с несколькими вкладками. В результате диалоговое окно предупреждает о закрытии сразу 2 вкладок и внешний монитор был отключен. Я также смог включить и выключить внешний монитор, запустив недавно скомпилированную GTK-версию Ambulant Player .

ОБНОВЛЕНИЕ Сегодня у моего коллеги была похожая проблема с тем же оборудованием, работающим с Gnome. При подключении разъема HDMI монитор обнаруживается на короткое время (xrandr отображает параметры), а затем снова отключается. Во время этой процедуры монитор ноутбука мигает один раз, как будто переключается на внешний выход, а затем обратно.

В любом случае, при диагностике этого мы побежали watch -n 0.5 xrandrловить момент, когда обнаружен монитор. Я попытался сделать это в своей системе и заметил, что во время работы этой команды наблюдается огромная задержка во всей системе. Кроме того, я иногда получаю пустой вывод и dmesgвыкладываю следующие ошибки:

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

Так что что-то подозрительное происходит. Любые указатели о том, как отладить Xrandr? Рунниг gdb xrandrдал мне это (начиная с последних четырех строк вывода xrandr, для сравнения, посмотрите на вызов non-segfault внизу этого поста):

 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. 

Еще несколько выводов dmesg, которые могут быть связаны:

[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 

Также обратите внимание на следующий вывод xrandr (на этом ноутбуке только один порт HDMI и один внутренний монитор):

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
Можете ли вы попробовать запустить okular с * KSCREEN_BACKEND = fake okular * и сообщить, имеет ли это какое-то значение? Это обойдёт xrandr, с которым okular, похоже, не играет хорошо. MariusMatutiae 6 лет назад 1
@MariusMatutiae попробую на следующей неделе. Однако эта проблема возникает и в других приложениях, поэтому где-то должна быть более глубокая проблема. Nobody 6 лет назад 0
@MariusMatutiae Я больше не могу воспроизвести проблему с помощью okular (с и без `KSCREEN_BACKEND = fake`). Тем не менее, я все еще вижу случаи этой проблемы один или два раза в день. Нужно найти другого надежного репродуктора :( Nobody 6 лет назад 0

0 ответов на вопрос

Похожие вопросы