Содержание
В крайнее время я стал замечать, что ноут (ASUS TUF Gaming A15, если кому надо) под управлением Manjaro Linux начал вести себя довольно нестабильно. Постоянные зависоны, сбои, тормоза я ещё как-то терпел, но когда ядро мне выкатило kernel panic – я понял, что нужно что-то делать. Конечно, вначале я проверил железо: прогнал память Memtest’ом, смотрел S.M.A.R.T. NVMe’шки, сжимал многогиговые архивы и проверял их на корректность, и т.д. Никаких проблем выявлено не было. Более того, на live-линуксах с флешки всё работало без проблем! Это подтолкнуло меня к мысли, что что-то сломалось в самой системе, а значит её нужно переустановить. Забэкапив все нужные данные, я решил накатить новенькую, чистую ОС.
Выбор пал ради разнообразия на EndeavourOS. Бут с флешки – установка – запуск, всё прошло как обычно без проблем. Во время установки был выбран проприетарный видеодрайвер Nvidia. Каково же было моё удивление, когда во время установки софта на чистую систему я снова начал ловить те же самые глюки, что были на старой Manjaro! Закончив офигивать, я полез искать решение проблемы в интернеты. В русскоязычном сегменте ничего похожего на свою проблему я не нашёл, что ещё больше убедило меня в том, что проблема всё-таки может быть в железе. Чистый дистр же выкатывает глюки! Но, решив не падать духом раньше времени, полез искать по англоязычной части сети, и… нашёл то что искал.
Проблема
Объяснение и решение проблемы нашлось в одном из тредов на форуме Arch Linux. Пользователь с ником mesaprotector написал следующий пост (машинный перевод на русский):
Это действительно похоже на обновление, которое вызвало проблемы. Обратите внимание на упоминания ошибок, связанных с разыменованием нулевого указателя в Linux. Похоже, Nvidia попыталась исправить некоторые уязвимости и вместо этого сломала многое.
(Я переключился на nvidia-open, но если это не поможет, я думаю, что я могу вернуться к версии 545 и оставаться там навсегда, ха-ха. К счастью, я не играю на Linux, поэтому обновленные драйверы не являются обязательными.)
mesaprotector
Конечно же, после этого я сразу понял что нужно делать – и проблема была решена! Так же стало понятно, почему у меня сыпало глюками на новой системе – злое… счастный проприетарный драйвер был установлен ещё в процессе установки самого дистрибутива на ноут! Nvidia, луч органики тебе в лицо за это! 🤬 А пользователю mesaprotector большое спасибо за подсказку 🤝
Временное решение проблемы
Теперь ясно что делать. Нужно удалить глючный драйвер Nvidia 550 и либо перейти на open-source драйвер Nouveau, либо установить видеодрайвер предыдущей версии. Т.к. в работе мне нужно GPU ускорение, я выбрал второй вариант: драйвер предыдущей версии.
В AUR лежит видеодрайвер Nvidia 535 версии, его и ставим с помощью любого AUR-хелпера:
yay -S nvidia-535xx-dkms nvidia-535xx-utils opencl-nvidia-535xx
Для тех, кому нужны дополнительно 32-битные варианты (например, для запуска некоторых игр), добавляем их в список установки:
yay -S nvidia-535xx-dkms nvidia-535xx-utils opencl-nvidia-535xx lib32-nvidia-535xx-utils lib32-opencl-nvidia-535xx
Дожидаемся завершения установки, перезагружаемся. Можно пользоваться стабильной системой пока Nvidia пытается отловить и пофиксить баг в своём крайнем драйвере.
Ждём от Невидии исправления этого позора 😒
Дополнение 07.05.2024
Обновления глючного драйвера версии 550.78-1 всё ещё нет. Пользователи высмеивают Nvidia.
Обсуждение на форуме разработчиков здесь.
Дополнение 10.06.2024
Вместо даунгрейда на старую версию видеодрайвера можно собрать и установить beta-версию open-source версии драйвера Nvidia. Для этого нужно полностью удалить проприетарный видеодрайвер (пакеты nvidia-*, lib32-nvidia-*, opencl-nvidia*, lib32-opencl-nvidia*, nvidia-utils*, lib32-nvidia-utils*), после чего собрать открытый драйвер с помощью AUR-хелпера:
yay -S nvidia-open-beta-dkms
Система будет вести себя стабильно, и иметь последнюю версию драйвера.
В обсуждении на форуме разработчиков Nvidia вроде бы нашли рабочий костыль как заставить корректно работать проприетарный драйвер крайней версии, но это не решение проблемы. Nvidia, “вторая по стоимости корпорация в мире”, ты серьёзно не можешь решить проблему с поддержкой собственного оборудования на Linux уже четвёртый месяц?!
Дополнение 16.06.2024
В версии 555.52 проблему вроде исправили, по крайней мере я на ней уже второй день и проблем не заметил. Устанавливается из AUR:
yay -S nvidia-beta-dkms nvidia-utils-beta opencl-nvidia-beta lib32-opencl-nvidia-beta lib32-nvidia-utils-beta
Кому не нужны lib32-* и OpenCL, можно не ставить.
В этой версии видеодрайвера исправлена проблема с некорректным рендерингом 3D, но драйвер Nvidia по прежнему ломает систему! 🤬
Спустя несколько дней после установки данной версии драйвера система начала намертво зависать при перезагрузке, а при обновлении пакетов pacman уже знакомо стал ругаться на то, что файлы пакетов уже существуют в системе, вроде вот такого:
libreoffice-fresh: '/usr/share/templates/.source/soffice.odp' существует в файловой системе
libreoffice-fresh: '/usr/share/templates/.source/soffice.ods' существует в файловой системе
libreoffice-fresh: '/usr/share/templates/.source/soffice.odt' существует в файловой системе
libreoffice-fresh: '/usr/share/templates/soffice.odg.desktop' существует в файловой системе
libreoffice-fresh: '/usr/share/templates/soffice.odp.desktop' существует в файловой системе
libreoffice-fresh: '/usr/share/templates/soffice.ods.desktop' существует в файловой системе
libreoffice-fresh: '/usr/share/templates/soffice.odt.desktop' существует в файловой системе
Такую картину я уже видел, в прошлый раз когда чёртов видеодрайвер Nvidia поломал мне предыдущую установку Manjaro 🤬 Можно сказать что если вы увидели такое, значит система уже конкретно разбита, и лучше будет её переустановить начистую. Ну а временно установить/обновить пакеты, на которые так ругается pacman можно добавив в конце команды –overwrite ‘*’, например:
sudo pacman -S libreoffice-fresh --overwrite '*'
Не зря пользователи Linux советуют использовать графику AMD, где никогда никаких проблем с поддержкой оборудования на Linux нет и не было.
Напомню, единственным более-менее нормальным вариантом использования графики Nvidia в Manjaro/Arch Linux на данный момент является установка открытой версии видеодрайвера из AUR:
yay -S nvidia-open-beta-dkms
Дополнение 06.07.2024
Якобы, в версии 555.58 проблему исправили, и видеодрайвер Nvidia больше не будет убивать систему до kernel panic.
Только что зашёл в тред на форуме разработчиков Nvidia, и некоторые пишут что проблема у них осталась, так что осторожно!
Я испытывать удачу больше не буду, и останусь на бета-версии открытого драйвера, который я уже проверил в работе. Напомню, бета версия открытого видеодрайвера Nvidia в Manjaro/Arch Linux с поддержкой Vulkan и OpenCL, а так же их 32-битные версии (короче, чтобы система была готова для запуска любых графических приложений и игр) устанавливается так:
yay -S nvidia-open-beta-dkms nvidia-utils-beta lib32-nvidia-utils-beta opencl-nvidia-beta lib32-opencl-nvidia-beta
Где yay можно заменить любым другим вашим любимым AUR-helper’ом.