решение проблемы зависания Arch Linux

archlinux

В ходе установки Arch Linux с драйвером nvidia на моем ПК возникла проблема. После автоматического старта, запланированного командой:

systemctl enable sddm

и перезагрузки экранный менеджер sddm зависал при загрузке. Загрузка заканчивалась печальным миганием курсора.

При этом, если отключить автостарт командой:

systemctl disable sddm

и запускать sddm вручную командой:

systemctl start sddm

менеджер запускался без проблем.

Та же ситуация возникала и с экранным менеджером kdm. При этом менеджер lxdm оказался свободен от такой проблемы.

На форуме http://archlinux.org.ru на описание проблемы предлагали советы различной степени бесполезности, пока не подсказали, следующее решение.

В арч-вики по ссылке https://wiki.archlinux.org/index.php/NVIDIA#Troubleshooting в секции "Xorg fails during boot, but otherwise starts fine" указано, что на компьютерах с очень быстрой загрузкой systemd пытается запустить экранный менеджер до того, как проприетарный драйвер NVIDIA полностью инициализируется.

В результате этого при загрузке xorg возникают примерно такие логи:

/var/log/Xorg.0.log

[     1.807] (EE) NVIDIA(0): Failed to initialize the NVIDIA kernel module. Please see the
[     1.807] (EE) NVIDIA(0):     system's kernel log for additional error messages and
[     1.808] (EE) NVIDIA(0):     consult the NVIDIA README for details.
[     1.808] (EE) NVIDIA(0):  *** Aborting ***

В этом случае нужно принудительно задать порядок загрузки:

1. Создать файл:

/etc/udev/rules.d/99-systemd-dri-devices.rules 

с содержимым:

ACTION=="add", KERNEL=="card*", SUBSYSTEM=="drm", TAG+="systemd"

2.  Создать файл:

/etc/systemd/system/display-manager.service.d/10-wait-for-dri-devices.conf 

с содержимым:

[Unit]
Wants=dev-dri-card0.device
After=dev-dri-card0.device

После этого Arch Linux с драйвером nvidia не зависает при загрузке. Победа!