Чёрный экран с курсором при старте GDM

Чёрный экран с курсором при старте GDM

На днях установил #Debian 11 на несколько ПК. Всё было отлично, кроме как на одном из ПК почему то #GDM не стал загружаться. Чёрный экран с мигающем текстовым курсором…

На других ПК всё было нормально. Отличие проблемного ПК от остальных заключалось в том, что на проблемном ПК система была установлена на #SSD. Может быть дело в этом. В интернете я нашёл похожую проблему. По сути, проблема заключается в том, что сам #GDM запускается чуть раньше, чем начинается инициализация графической подсистемы. И на кой чёрт его несёт вперёд…

В общем, предлагают несколько решений.

Настройка сервиса GDM

Данный вариант решения проблемы предлагает отредактировать стартовые параметры сервиса #GDM, чтобы тот запускался с небольшой задержкой и не лез вперёд остальной графической подсистемы.

В терминале нужно ввести от root’а команду systemctl edit gdm.service, откроется редактор сервиса #GDM. В нем необходимо добавить строку ExecStartPre=/bin/sleep 2, которая создаёт задержку перед запуском самого #GDM. Примерно вот так:

### Anything between here and the comment below will become the new contents of the file

[Service]
ExecStartPre=/bin/sleep 2

### Lines below this comment will be discarded

Таким образом GDM начинает запускаться после того, как инициализируется графическая подсистема.

Ещё одно исправление предложили в баг-трекере #GNOME / #GDM. Вместо торможения загрузки GDM, необходимо добавить следующие строки:

[Unit]
Wants=systemd-udev-trigger.service systemd-udev-settle.service
After=systemd-udev-trigger.service systemd-udev-settle.service

Но это не совсем корректное исправление (хотя исправление, изложенное выше, тоже трудно назвать правильным), так как после применения этих строк, появляется ошибка:

Терминал
Dec 27 22:23:48 oleksandr-xps15 udevadm[260]: systemd-udev-settle.service is deprecated. Please fix gdm.service not to pull it in.

Указание порядка инициализации графической подсистемы

Этот вариант решения проблемы подходит для Arch Linux. Необходимо в файле /etc/mkinitcpio.conf добавить в массив MODULES свою графическую подсистему, чтобы та запускалась раньше, чем #GDM. Например:

MODULES=(amdgpu)

Можно указать другие графические подсистемы, всё зависит от видеокарты, установленной в ПК:

  • amdgpu - для современных видеокарт AMD.
  • radeon - для устаревших видеокарт AMD.
  • nouveau - для Nvidia Nouveau.
  • i915 - для Intel.
  • mgag200 - для видеокарт Matrox.

Если в системе используется #Intel в качестве графики и в модулях прописан i915, то могут появится ошибки ACPI. Для исправления этих ошибок необходимо добавить intel_agp перед i915. Чтобы проверить корректность загрузки модуля, можно ввести команду lsmod | grep intel_agp.