Как приручить NVIDIA в Alma Linux
Совсем недавно, исправляя уязвимости в ядре, я столкнулся с тем, что у меня слетели драйвера NVIDIA. Вот прям совсем, даже nvidia-smi не отрабатывала. На тот момент я еще не подозревал, что впереди меня ждет приключение на несколько часов.
В этой статье я хочу поделиться опытом решения данной проблемы, но ни в коем случае не настаиваю, что мой способ/мнение - единственно верное. И буду очень рад, если вы поделитесь своим опытом выхода из подобной ситуации!
Дисклеймер
Перед повествованием хотелось бы отдельно отметить, что о существовании утилиты, способной пересобирать драйвера после обновления версии ядра я узнал только после того, как прошел весь путь от начала и до конца.
Выбираем необходимый драйвер
Итак, первым этапом нашего путешествия становится определение используемой видеокарты и загрузка установочного файла драйвера под неё.Если у вас все же остались драйвера, а вы просто их обновляете - можно воспользоваться командой:
В ином случае потребуется копнуть чуть глубже:
Также необходимо проверить версию CUDA, к счастью она не ломается вместе с драйверами. Для этого вызовите следующий файл:
Итак, когда вы определились с типом видеокарт, версией CUDA Toolkit и уверены в этой информации - переходим на сайт NVIDIA.
Далее выполняем поиск и выбираем версию, которая придется вам по душе и загружаем .run-файл для установки.
В моем случае сервер, на котором требовалось починить драйвера, был закрыт от внешней сети. Именно поэтому пришлось совершать столько приседаний.После успешной загрузки потребуется передать установочный файл на удаленный сервер посредством scp:
Приседания на удаленном сервере
Если все-таки вы стали заложниками положения и драйвера "сломались" - необходимо зачистить следы их присутствия:
Поздравляю! Вы успешно снесли старые нерабочие драйвера и теперь можете приступать к подготовке установки.Файл, который мы загрузили с сайта NVIDIA необходимо поместить в директорию /opt/nvidia. А для временных файлов создадим директорию tmp:
Половина приседаний позади. Время запускать установку:
Здесь я попрошу вашей милости, потому что скриншоты у меня, к сожалению, не сохранились, но я очень постараюсь описать все доходчиво в тексте.
Перед вами откроется установщик и начнет задавать вопросы, касаемо ключей, автопересборки дров и т.п.
Нам необходимо согласиться на создание ключей, отказаться от удаления приватной части (тут потребуется подтвердить, что вы в курсе как хранить подобные файлы, но я думаю, что если вы читаете эту статью - вы наверняка в курсе этого тонкого момента).
Установщик также предложит залить пакеты для 32-разрядной системы, что нам совершенно не нужно, а также настоятельно порекомендует поставить утилиту пересборки драйверов в случае обновления версии ядра.
Здесь я, к превеликому сожалению, не обладал достаточными ресурсами на удаленном сервере, что заставило меня снова отказаться от этой утилиты...
Знакомство системы и драйверов
Ничего в этой жизни не бывает просто так, и эта история тому подтверждение.
Если у вас тоже включен MOK и работает Secure Boot - вам потребуется "познакомить" систему с драйверами. Далее - смертельный номер!
Нам потребуется временно отключить MOK:
Важно для ребута перейти в Remote Console удаленного сервера, чтобы узреть отображение загрузки системы и, соответственно, интерфейс самого MOK. SSH-подключение, к сожалению, не подойдет.
После первоначальной подгрузки всего необходимого в системе - перед вами возникнет синее окно MOK с вопросом: "Действительно ли вы хотите отключить Secure Boot?".
Подтвердите свой выбор и введите запрашиваемые символы пароля, заданного на предыдущем этапе. Далее кликаем по любой клавише на клавиатуре и выбираем Reboot.
Если вы выполнили все корректно - после перезагрузки драйвера будут работать, как и Secure Boot. Для проверки достаточно будет выполнить команду nvidia-smi, которая отобразит вам информацию о видеокартах.
Послесловие
Учитывая, что ранее я работал в компаниях с очень закрытой инфраструктурой, где даже в консоли серверов нельзя было покопаться ручками - для меня эта ситуация стала очень интересным опытом.
Надеюсь кому-нибудь мой небольшой мануал поможет сэкономить время и разобраться в такой нестандартной ситуации.
Если вам помогла моя статья или заинтересовал материал - буду рад если вы подпишетесь на мой Telegram-канал