LINUX.ORG.RU

Выключение монитора вешает иксы

 , ,


0

4

Собственно, сабж.

Gentoo, Radeon 5700XT, драйвер amdgpu, кастомные конфиги для иксов отсутствуют.

К карте подключено 2 монитора (DP, HDMI<–>DVI) и телек HDMI. Монитор с DP - Dell P2720D, второй монитор Benq RL2450H довольно старый.

Суть проблемы: Если выключаю кнопкой Dell, иксы виснут. Если при этом включен второй монитор, то при выключении Dell на Benq становится черный экран с курсором, курсор при этом отзывается, но если поиграться клавиатурой, монитор уходит в артефакты и все совсем пропадает, в том числе TTY не меняется (ну или я не могу это увидеть). Далее если Dell включить кнопкой, то иксы виснут совсем наглухо: Benq подмигивает, курсор пропадает, на клавиши реакции нет. При этом, если в фоне что-то играло, например, ютуб в браузере, оно так и продолжит играть, то есть это не зависание вообще всего, а только иксов. На Dell при этом сообщение, что нет сигнала. При отключении Benq и оставлении Dell работающим, проблема не наблюдается. Перевод Dell в режим энергосбережения по таймауту (настроено в KDE) также не приводит к зависанию. В других ОС (имеется Hackintosh и Win10) все ок.

P.S. Dell подключен по USB к компьютеру и служит хабом, но это ни на что не влияет, я пробовал отключать - все равно все зависает.

Лог иксов: https://pastebin.com/PBKs6w8P



Последнее исправление: Slaviro (всего исправлений: 2)

судя по логу, у тебя sddm, глянь в его лог и погугли ошибки

Anoxemian ★★★★★
()

Попробуй отключить управление питанием в конфиге иксов в секции для делла: Option "DPMS" "false".

Или даже вообще для всего:

/etc/X11/xorg.conf.d/10-monitor.conf

Section "Extensions"
    Option      "DPMS" "Disable"
EndSection

cocucka ★★★★☆
()
Последнее исправление: cocucka (всего исправлений: 1)
Ответ на: комментарий от mky

С иксами, кроме того, что я приложил в логе, ничего не происходит.

Сдампил journalctl: https://pastebin.com/55yjyrQB

Из всего журнала зацепился пока только за строчки

[drm:drm_atomic_helper_wait_for_flip_done] ERROR [CRTC:64:crtc-1] flip_done timed out

[drm:drm_atomic_helper_wait_for_dependencies] ERROR [CRTC:64:crtc-1] flip_done timed out

Slaviro
() автор топика
Ответ на: комментарий от cocucka

Попробовал отключить для всех, ничего не изменилось.

Slaviro
() автор топика
Ответ на: комментарий от Slaviro

То есть X-сервер не отвечает командам xset, xrandr?

Попробуйте до зависания через xrandr сделать основным (primary) другой монитор.

mky ★★★★★
()
Ответ на: комментарий от mky

Поигрался немного с монитором.

  1. Если во время висяка подключиться по ssh и выполнить xrandr, то он скажет can’t open display.
  2. Обнаружил занятный факт, что если Dell отключить во время загрузки и включить только на этапе SDDM или позже, то далее никакие включения-выключения монитора иксам не страшны.
  3. В продолжение (2) - если Dell будет включен не на SDDM, а на экране GRUB, то проблема вернется.
  4. Пробовал добавить параметр video=SVIDEO-1:d, как советуют в интернетах на мою ошибку, это не помогло.
Slaviro
() автор топика
Ответ на: комментарий от Slaviro

что если Dell отключить во время загрузки и включить только на этапе SDDM или позже

Ну попробуйте в работающих X-ах сделать primary другой монитор. как-то так: xrandr --output HDMI1 --primary

mky ★★★★★
()
Ответ на: комментарий от mky

Работает и туда и обратно. Смена главного монитора через KDE тоже работает нормально. Вывод xrandr:

~ # xrandr 
Screen 0: minimum 320 x 200, current 4480 x 1440, maximum 16384 x 16384
DisplayPort-0 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95*+
   1920x1200     59.88  
   2048x1080     60.00  
   1920x1080     60.00    50.00    59.94  
   1600x1200     60.00  
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      59.95  
   1280x800      59.81  
   1152x864      75.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    60.00    59.94  
   720x400       70.08  
DisplayPort-1 disconnected (normal left inverted right x axis y axis)
HDMI-A-0 connected primary 1920x1080+2560+0 (normal left inverted right x axis y axis) 531mm x 298mm
   1920x1080     60.00*+
   1680x1050     59.88  
   1600x900      60.00  
   1280x1024     75.02    60.02  
   1440x900      60.00  
   1280x800      59.91  
   1152x864      75.00  
   1280x720      60.00  
   1024x768      75.03    60.00  
   832x624       74.55  
   800x600       75.00    60.32  
   640x480       75.00    59.94  
   720x400       70.08  
HDMI-A-1 disconnected (normal left inverted right x axis y axis)
Slaviro
() автор топика
Ответ на: комментарий от torvn77

Да вроде кабель с монитором шел, вполне нормальный. У меня нет никаких проблем с монитором ровно до того момента, пока я не нажму на кнопку на мониторе. Ни артефактов, ни полос, нет даже проблем если система сама гасит монитор. Более того, как я писал ранее, если проблемный монитор выключить и включить только после старта иксов, а до старта иксов пользоваться только вторым монитором с dvi<–>hdmi кабелем, проблем также не будет. Всё-таки это выглядит как какая-то лажа или с иксами или с amdgpu.

Slaviro
() автор топика
Ответ на: комментарий от Slaviro

Ну у меня тоже внешне проблем небыло, а красные полосы показывались только в момент непосредственного трясения.

В общем имхо проверить версию с кабелем тебе не мешает.

torvn77 ★★★★★
()
Последнее исправление: torvn77 (всего исправлений: 1)
Ответ на: комментарий от Slaviro

Но при это X-ы вешаются при выключении монитора Dell, даже если он не primary? Сравните вывод xrandr при включении монитора до и после старта X-ов.

mky ★★★★★
()
Ответ на: комментарий от Landgraf

Работает, но у меня в двухмониторной конфигурации, второй монитор с артефактами.

Slaviro
() автор топика
Ответ на: комментарий от mky
Еще раз опишу все кейсы, которые я смог на текущий момент выявить.

Конфигурация: Radeon 5700XT имеет 2 DP и 2 HDMI.
На данный момент в нее воткнуто: 
Dell (DP <--> DP)
BenQ (HDMI <--> DVI)

Все кейсы рассматриваются от момента включения компьютера.

Case 1. Оба монитора воткнуты в видеокарту, включены.
Res: при выключении Dell кнопкой происходит попытка реконфигурации Х сервера, которая заканчивается неудачей, в результате на Benq отображаются артефакты, усиливающиеся при повторном включении Dell. Решается только перезагрузкой (кнопкой или по ssh).

Смена главного монитора через xrandr или настройки KDE не влияет на ситуацию. Главным монитором по умолчанию считается Dell, т.к. на уровне видеокарты порт DP главнее, чем HDMI.

Case 2. Оба монитора воткнуты в видеокарту, Dell выключен, Benq включен.
1) Dell включается до попадания на SDDM.
Res: совпадает с Case 1.
2) Dell включается после попадания на SDDM.
Res: на Dell нет сигнала. Сигнал появляется после логина в систему, после чего система корректно отрабатывает выключение и включение Dell (происходит реконфигурация, главным монитором становится оставшийся).

Case 3. Оба монитора воткнуты, Dell включен, Benq выключен.
Res: совпадает с Case 1. 

Case 4. Оба монитора воткнуты, включены, после логина физически вынимается из видеокарты HDMI<-->DVI кабель.
Res: Х ломается, но не так, как при выключении Benq - темный экран, ничего не видно.

Case 5. Воткнут только Dell, включен.
Res: при выключении и включении все работает нормально.

Case 6. Воткнут Dell, для Benq кабель сменен на HDMI<-->HDMI, тоже воткнут, оба включены.
Res: 
1) при выключении Dell совпадает с Case 1, 
2) при выключении Benq ничего не происходит, но при повторном включении Benq X ломается, на Benq зеленый экран, иногда помигивающий, на Dell - черный. Лечится перезагрузкой.

Таким образом, мы видим, что проблема проявляется только в двухмониторной конфигурации, Х с большой вероятностью ломается при физическом изменении конфигурации устройств, о которой система узнает при подключении монитора либо по DP, либо по HDMI кабелю. Кабель HDMI<–>DVI видимо не передает информацию об отключении устройства, что подтверждается тем, что KDE продолжает видеть Benq после отключения.

Slaviro
() автор топика
Последнее исправление: Slaviro (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.