Несколько дней назад пользователи дистрибутива Fedora 25 получили обновление пакета xorg-x11-drv-nouveau, который вызвал на свободных драйверах NVIDIA проблемы с мерцающим чёрным экраном. Здесь мы рассмотрим два способа её решения.
Введение
Проблема заключается в регрессии и уходе свободного драйвера nouveau 1:1.0.14-1 в dead-loop из-за линковки с библиотекой libdrm версии 2.4.78 или выше.
Пользователи Fedora 25 видят сразу после завершения загрузки мерцающий чёрный экран, полностью блокирующий работу любых логин-менеджеров, включая SDDM, GDM, LightDM и прочих. Войти в систему становится невозможно.
Исправление уже доступно в репозиториях Fedora 25 в виде пакета xorg-x11-drv-nouveau версии 1.0.14-2.fc25, но установить его на подверженной ошибке системе не так-то просто.
Способ 1. Локальный
Если блокировка не полная, то нажмём на клавиатуре комбинацию Ctrl + Alt + F2 и переключимся в другую виртуальную консоль, выполним там вход в систему от имени пользователя с доступом к sudo, либо как root (если вход осуществлён как root, то sudo перед командами писать не нужно).
Загрузим RPM пакет с исправлением:
wget http://mirror.yandex.ru/fedora/linux/updates/25/x86_64/x/xorg-x11-drv-nouveau-1.0.14-2.fc25.x86_64.rpm
Установим данный пакет:
sudo dnf --disablerepo="\*" install xorg-x11-drv-nouveau-1.0.14-2.fc25.x86_64.rpm
Перезагрузим ОС:
sudo systemctl reboot
Способ 2. Chroot в установленную ОС
Если блокировка настолько полная, что переключение в другие виртуальные консоли не работает, нам потребуется войти в установленную систему с LiveCD или LiveUSB соответствующей архитектуры (это важно). Инструкции по созданию загрузочной флешки можно найти здесь.
Итак, загружаемся с LiveCD/USB и запускаем эмулятор терминала или переходим в виртуальную консоль (особой разницы не имеет).
Для начала создадим каталог для точки монтирования:
sudo mkdir /media/fedora
Смонтируем корневой раздел установленной ОС:
sudo mount -t ext4 /dev/sda1 /media/fedora
Здесь /dev/sda1 — раздел, на котором установлена ОС, а ext4 — его файловая система. Внесём соответствующие правки если это не так.
Переходим в каталог с корневой ФС и монтируем ряд необходимых для работы окружения виртуальных ФС:
cd /media/fedora sudo mount -t proc /proc proc sudo mount --rbind /sys sys sudo mount --make-rslave sys sudo mount --rbind /dev dev sudo mount --make-rslave dev sudo mount -t tmpfs tmpfs tmp
Теперь выполняем вход в chroot:
sudo chroot /media/fedora
Загружаем обновлённый пакет:
wget http://mirror.yandex.ru/fedora/linux/updates/25/x86_64/x/xorg-x11-drv-nouveau-1.0.14-2.fc25.x86_64.rpm -O /root/xorg-x11-drv-nouveau-1.0.14-2.fc25.x86_64.rpm
Устанавливаем его:
dnf --disablerepo="\*" install /root/xorg-x11-drv-nouveau-1.0.14-2.fc25.x86_64.rpm
Удаляем ненужный более файл обновления:
rm -f /root/xorg-x11-drv-nouveau-1.0.14-2.fc25.x86_64.rpm
Завершаем работу chroot окружения:
logout
Перезагружаемся в основную ОС:
sudo systemctl reboot