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

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

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

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

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

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

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

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

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

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

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

ОБНОВЛЯТЬ Сегодня у моего коллеги была похожая проблема с тем же оборудованием, запущенным 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? Runnig 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)

ОБНОВЛЯТЬ

Я уже некоторое время не могу успешно подключить ни одно устройство HDMI, поэтому исходный вопрос может быть невоспроизводимым для меня. Однако я заметил, что могу использовать HDMI в Antergos Live Installer (который использует GNOME?) и что повторный запуск xrandr в какой-то момент приведет к сбою xrandr и отключению монитора, а также его удалению из списка дисплеев.

Я также нашелэтот вопросчто похоже на то, что я вижу.

Связанный контент