https://bugs.kde.org/show_bug.cgi?id=523025

            Bug ID: 523025
           Summary: кароче, если оставить систему загружаться и не
                    включать монитор, то после некого промежутка времени
                    kde login / sddm  - то менеджер входа не будет
                    подавать сигнал в монитор (точнее чёрный экран) так то
                    с видеоадаптеров сигнал идёт.
    Classification: KDE Neon
           Product: neon
      Version First unspecified
       Reported In:
          Platform: Neon
                OS: Linux
            Status: REPORTED
          Severity: critical
          Priority: NOR
         Component: general
          Assignee: [email protected]
          Reporter: [email protected]
                CC: [email protected], [email protected],
                    [email protected]
  Target Milestone: ---

Наглухо чёрный экран входа (greeter) при отсутствии EDID у amdgpu Кратко для
понимания всей абсурдности ситуации: Это отчёт о возмутительном поведении
чёрного экрана входа (greeter тупо не рисует интерфейс, хотя «сигнал есть, фон
чёрный»). Проблема воспроизводится на двух разных машинах с одним и тем же
корнем: драйвер amdgpu DRM совершенно не способен адекватно построить
CRTC/режим, если EDID временно отсутствует.  Триггер А (машина ASUS x570
"dark-hero" / 172.16.0.102, plasmalogin): Использование обычного
HDMI-коммутатора. Монитор один на два ПК, кабель из видеокарты не вынимается. 
Триггер Б (машина Gigabyte "x570s-aero-g", SDDM): Монитор просто не включили
вовремя при холодной загрузке ОС.
И в обоих случаях эта недоработка лечится только ручным перезапуском
display-manager без ребута всей ОС.  Проблема затрагивает горячее подключение
дисплеев. вероятный корень зла кроется в обработке HPD драйвером amdgpu DRM +
Wayland greeter (а как на самом деле - ХЕР ЗНАЕТ).  Серьёзность  (Критическая)
— машина становится абсолютно непригодной для графического входа без
использования консоли или SSH.  Версия: 6.7.0 (KDE Neon User Edition, база
Ubuntu 24.04 noble).    Замечание по охвату проблемы: Баг ломает работу сразу
двух менеджеров входа на двух машинах. Вторая машина (x570s-aero-g) использует
SDDM (не plasmalogin!) и выдает абсолютно тот же чёрный экран из-за того же
сбоя amdgpu. Раз корень проблемы один для обоих официально поддерживаемых KDE
логин-менеджеров, значит вина лежит на уровне amdgpu DRM / EDID / HPD - (но это
не точно, я заебался по форумам читать как решить эту проблему.).  Суть этого
безобразия - В KDE Plasma 6.7.0 (KDE Neon) Wayland-гритер plasmalogin просто
прекращает рендеринг и показывает вечный чёрный экран. Авторизоваться
графически невозможно. Триггер до смешного банален: общий HDMI-монитор был
переключен на другой ПК через внешний HDMI-коммутатор. Поскольку физически
кабель торчит в видеокарте, ядро видит статус коннектора как status=connected,
но так как монитор выводит картинку с другого ПК, EDID оказывается пустым
(edid: 0 bytes). В этот момент процесс plasmalogin остается active, но падает
до 0.0 % CPU, отказываясь отрисовывать интерфейс. Спасает только костыль в виде
systemctl restart plasmalogin.service при переключенном обратно мониторе.  И
это не проблема SDDM на машине dark-hero: KDE Neon 6.7 использует именно
plasmalogin в качестве менеджера входа (бинарника sddm там вообще нет, только
конфигуратор kde-config-sddm).  Абсолютно тот же корень проблемы
воспроизводится на второй машине с другим логин-менеджером! На x570s-aero-g
(AMD ryzen7 pro 5750g Cezanne APU + RX 6900 XT, монитор висит на APU
card2-HDMI-A-2, используется SDDM с X гритером) при холодной загрузке с
несвоевременно включенным монитором greeter выдает черный экран с
издевательским сообщением "сигнал есть". Ядро при этом сыпет ошибками amdgpu …
"[drm] Cannot find any crtc or sizes" во время инициализации дисплейного GPU
(EDID нет, так как монитор был выключен). SDDM открывает окно размером 0×0, а
коннектор остается в состоянии enabled=disabled / dpms=Off. Перезапуск службы
sudo systemctl restart sddm приводит систему в чувство без перезагрузки ОС. Две
разные машины, два разных менеджера (plasmalogin и SDDM), одна и та же кривая
обработка amdgpu/EDID.  Моя оснастка: ОС KDE neon User Edition (base Ubuntu
24.04 "noble"), ID=neon ID_LIKE="ubuntu debian"  ЯдроLinux 6.17.0-35-generic
x86_64  Plasmaplasma-workspace 6.7.0
(4:6.7.0-0zneon+24.04+noble+release+build90)  Логин-менеджерplasmalogin 6.7.0
(6.7.0-0zneon+24.04+noble+release+build20)  KDE FrameworksKF6 ≥ 6.27.0
(согласно зависимостям plasmalogin)  Qt6.11.1 (qt6-base
6.11.1-0zneon+24.04+noble+release+build161)  GPU AMD Radeon RX 6900 XT (Navi
21, gfx1030, PCI 0d:00.0, [1002:73bf]) — одиночная dGPU, без встройки  CPU AMD
Ryzen 9 5950X (16 ядер, Vermeer — без интегрированной графики)  Драйвер amdgpu
DKMS out-of-tree v6.16.13
(/lib/modules/6.17.0-35-generic/updates/dkms/amdgpu.ko.zst)  Параметры ядра
BOOT_IMAGE=/vmlinuz-6.17.0-35-generic root=UUID=... ro quiet splash
vt.handoff=7  Имя хоста dark-hero  Конфигурация дисплеев (ключевой контекст)
Один физический монитор делится между двумя ПК через обычный внешний
HDMI-переключатель (аппаратный A/B селектор). Кабель от этого ПК никогда
физически не отключается. Большую часть времени монитор обслуживает другой ПК
(172.16.0.103), а этот (102) работает в headless-режиме.  Что в итоге видит
ядро: коннектор HDMI-A-1 видеокарты RX 6900 XT отображается как connected
(аппаратный сигнал HPD высок), но EDID абсолютно пуст, потому что монитор занят
другим входом:  Plaintext$ for c in /sys/class/drm/card1-*/status; do echo "$c:
$(cat $c)"; done
/sys/class/drm/card1-DP-1/status: disconnected
/sys/class/drm/card1-DP-2/status: disconnected
/sys/class/drm/card1-DP-3/status: disconnected
/sys/class/drm/card1-HDMI-A-1/status: connected        <-- кабель воткнут, HPD
высокий
/sys/class/drm/card1-Writeback-1/status: unknown

$ for c in /sys/class/drm/card1-*/edid; do echo "$c: $(stat -c%s $c) bytes";
done
/sys/class/drm/card1-HDMI-A-1/edid: 0 bytes            <-- монитор переключен:
EDID нет
Это состояние "подключен, но без EDID" и есть подозриваемый источник. Это
абсолютно штатная ситуация для любой машины за HDMI/KVM-свитчом.  Шаги для
воспроизведения (и страдания). Загрузить ПК с активным монитором (greeter
работает, вход выполняется нормально).  Переключить монитор на другой ПК через
HDMI-свитч (кабель остается в видеокарте). Оставить так на некоторое время.  В
это время машина используется по SSH (работает вычислительная задача на GPU —
distcc, пользователь вошёл в систему).  Переключить монитор обратно. Ожидание:
видим экран блокировки или greeter plasmalogin. Реальность: чёрный экран.
Greeter не принимает ввод, войти невозможно.  Проблема воспроизводится
стабильно: из-за этого бага машина перенесла 5 перезагрузок за 2 дня: 
Plaintext$ journalctl --list-boots
 -4  5697cea8…  Tue 2026-07-07 22:04:34 → Wed 2026-07-08 04:19:16
 -3  f2b248a4…  Wed 2026-07-08 20:23:17 → Wed 2026-07-08 23:41:12
 -2  704f0226…  Wed 2026-07-08 23:41:33 → Thu 2026-07-09 00:15:19
 -1  9fed31e3…  Thu 2026-07-09 00:15:41 → Thu 2026-07-09 00:32:21
  0  1fd4df19…  Thu 2026-07-09 00:32:43 → current
Что ломается (Observed behavior)А. Greeter plasmalogin виснет на 0 % CPUСлужба
plasmalogin.service числится active, но greeter мёртв в плане отрисовки: 
Plaintext$ systemctl is-active plasmalogin.service
active
$ systemctl show plasmalogin.service -p MainPID -p ActiveEnterTimestamp
MainPID=1318
ActiveEnterTimestamp=Thu 2026-07-09 00:32:45 EEST
$ ps -o pid,pcpu,etimes,comm -p 1318
   PID %CPU   ELAPSED COMMAND
  1318  0.0   50406 plasmalogin                          <-- 0.0% CPU:
рендеринг встал
Б. Журнал plasmalogin — краш-секвенцияЛогин проходит успешно, хелпер штатно
завершается, а спустя ~16 минут (пока монитор переключен) хелпер падает с
ошибкой ("Process crashed", код 1), убивая активную сессию:  Plaintextиюл 09
00:15:56 plasmalogin[1318]: Auth: plasmalogin-helper exited with 255         
<-- нормальное завершение
    [Проходит 16 минут; монитор переключен]
июл 09 00:32:18 plasmalogin[1318]: Authentication error:
PLASMALOGIN::Auth::ERROR_INTERNAL "Process crashed"
июл 09 00:32:18 systemd[1]: Stopping plasmalogin.service - Plasma Login
Manager...
В. Очередь IRQ amdgpu DRM жрёт процессорное время В dmesg видно, как
dm_irq_work_func от amdgpu постоянно захватывает CPU. Драйвер впустую поллит
коннектор без EDID:  Plaintext[17742.056594] workqueue: dm_irq_work_func
[amdgpu] hogged CPU for >10000us 4 times...
[45357.786849] workqueue: dm_irq_work_func [amdgpu] hogged CPU for >10000us 11
times...
Plasmalogin просто не может нормально отрисовать Wayland-поверхность, пока
подсистема DRM бьется в истерике из-то hotplug'а.  Г. Вторичный краш:
plasmashell --version выдает SIGABRTПри попытке собрать версии команда
plasmashell --version рухнула с SIGABRT. И это просто при запросе версии! 
Триггер Б — Холодная загрузка с выключенным монитором (x570s-aero-g,
SDDM)Вторая машина демонстрирует ту же проблему с черным экраном из-за того же
сбоя amdgpu/EDID, но с другим логин-менеджером (SDDM 0.21.0, Xorg).  Железо:
dGPU RX 6900 XT + APU Vega (монитор подключен к APU card2-HDMI-A-2).  Триггер:
ПК загрузился, но монитор включили с опозданием.  Симптомы: Монитор пишет
"сигнал есть", но экран чёрный. Ядро ругается amdgpu 0000:0e:00.0: [drm] Cannot
find any crtc or sizes (попытка инициализации без EDID).  Состояние SDDM:
Greeter открывает окно размером 0×0 (Adding view for ":0.0" QRect(0,0 0x0)),
коннектор висит в статусе enabled=disabled dpms=Off[cite: 1].Восстановление:
Выполнение sudo systemctl restart sddm заставляет систему перечитать EDID и
нормально отрисовать экран без перезагрузки ПК[cite: 1].Обе ситуации сводятся к
одному безобразию: amdgpu пытаются заставить поднять вывод на коннекторе со
статусом connected, но без EDID, драйвер не может настроить CRTC/режим, а
display-manager (ни plasmalogin, ни SDDM) не способен адекватно это переварить
и восстановиться, когда EDID наконец появляется[cite: 1].Как это должно
работать в нормальной системе (Expected behavior) .Когда монитор переключается
обратно (Триггер А) или включается после загрузки (Триггер Б), дисплейный
менеджер должен автоматически возобновить рендеринг без ручных перезапусков
служб[cite: 1]. Драйвер и пользовательское пространство обязаны адекватно
обрабатывать пустой EDID на подключенном порту: откладывать установку режима и
повторять попытку при появлении HPD-события с валидным EDID, а не вешать
greeter на 0×0 / 0 % CPU и не крашить plasmalogin-helper[cite: 1].Костыли
(Workarounds)Для dark-hero: sudo systemctl restart plasmalogin.service (через
SSH). Это хотя бы не убивает фоновые GPU-задачи (ggml-rpc-server)[cite: 1].Для
x570s-aero-g: sudo systemctl restart sddm (через SSH)[cite: 1].И всё это — лишь
временные костыли до следующего выключения монитора или переключения KVM[cite:
1].Данные для предоставления по запросу. Я могу предоставить все логи (полный
journalctl, dmesg, дамп coredumpctl для SIGABRT, выводы modinfo amdgpu, статусы
/sys/class/drm/)[cite: 1].Собрано с машин dark-hero (172.16.0.102) и
x570s-aero-g через SSH.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to