Как исправить проблему с загрузкой драйверов NVIDIA после обновления ядра в Ubuntu

Обновление ядра Ubuntu может привести к тому, что система NVIDIA будет загружаться нормально, но проприетарный драйвер перестанет работать. Визуальные симптомы могут быть разными: nvidia-smiможет появиться сообщение о невозможности связи с драйвером, приложения CUDA могут перестать видеть графический процессор, рабочий стол может перейти на программный рендеринг или modprobe nvidiaвообще перестать работать. Практическое решение — определить, какой именно слой вышел из строя, вместо того чтобы переустанавливать всё сразу.

Данный справочник посвящен драйверам NVIDIA, поставляемым в составе Ubuntu, и текущим рекомендациям Canonical. По состоянию на октябрь 2026 года Ubuntu рекомендует использовать ubuntu-driversинструмент или приложение «Дополнительные драйверы» для большинства систем, а также рекомендует предварительно скомпилированные и подписанные модули ядра, если они доступны. Собственная документация NVIDIA для Ubuntu также поддерживает Ubuntu 22.04, 24.04 и 26.04, но в более новых ветках названия пакетов отличаются, поэтому не копируйте номер ветки из примера, если он фактически не предлагается для вашей машины.

Контрольный список для быстрой диагностики

ПроверятьКомандованиеЧто это вам говорит
Запущенное ядроuname -rТочный ABI ядра, для которого требуется соответствующий модуль NVIDIA.
Статус водителяnvidia-smiВозможность взаимодействия пользовательского пространства с загруженным модулем ядра NVIDIA.
Загруженные модулиlsmod | grep -E 'nvidia|nouveau'Независимо от того, владеет ли в данный момент графическим процессором NVIDIA или Nouveau.
Рекомендуемый пакетsudo ubuntu-drivers listВетви драйверов, которые Ubuntu считает подходящими для данного оборудования.
Безопасная загрузкаmokutil --sb-stateВозможно ли отклонение неподписанных модулей ядра сторонних разработчиков.
Журнал ядраsudo dmesg | grep -iE 'nvrm|nvidia|nouveau|secure|module'Полезные подсказки для выявления несоответствия API, отклонения сигнатуры или сбоев при проверке.
В терминале Ubuntu отображается сообщение об ошибке команды `uname -r`, неудачной попытке выполнения команды `nvidia-smi` и отсутствии модуля NVIDIA, возвращенного командой `lsmod`.
Типичная ситуация после обновления, приводящая к сбою: новое ядро ​​работает, но модуль NVIDIA не загружен. Точные версии ядра и драйверов в вашей системе могут отличаться.

1. Убедитесь, что проблема возникла с текущей версией ядра.

Сначала запишите состояние работающего ядра и текущее состояние NVIDIA:

uname -r
nvidia-smi
lsmod | grep -E 'nvidia|nouveau'

Если nvidia-smiошибка возникает и nvidiaмодули не отображаются lsmod, причина сбоя находится на уровне CUDA или настольного приложения. Если nvidia-smiотображается сообщение об ошибке Failed to initialize NVML: Driver/library version mismatch, Canonical описывает это как несоответствие между пользовательским пространством и модулем ядра, которое часто возникает после обновления драйвера; перезагрузка может быть достаточной, если новый модуль уже установлен.

Если вы по-прежнему можете выбрать более старое ядро ​​из GRUB, и драйвер там работает, это убедительное доказательство того, что в новом ядре отсутствует работоспособный модуль NVIDIA. Более старое ядро ​​— это полезный временный вариант, но это не окончательное решение, поскольку для корректной работы необходимо, чтобы текущее ядро ​​и стек драйверов работали согласованно.

2. Спросите у Ubuntu, какую ветку драйверов она рекомендует.

На стандартном настольном компьютере или рабочей станции Ubuntu используйте собственную логику выбора драйверов Ubuntu, а не пытайтесь угадать ветку:

sudo apt update
sudo ubuntu-drivers list

Для большинства настольных и игровых систем Canonical рекомендует использовать стандартный драйвер UDA, а не -serverпакет. На вычислительных серверах используйте рекомендации для серверов, ubuntu-drivers list --gpgpuесли это необходимо. Если на вашей системе ранее был установлен автономный установщик NVIDIA .runили сторонний репозиторий, смешивание источников пакетов может затруднить диагностику. Canonical прямо предупреждает, что драйверы, установленные вне описанных ею методов, могут перезаписывать компоненты, предоставляемые Ubuntu, и могут мешать работе Secure Boot.

В терминале Ubuntu отображается список драйверов ubuntu-drivers и список устройств ubuntu-drivers, при этом драйвер NVIDIA отмечен как рекомендуемый.
Используйте функцию обнаружения драйверов Ubuntu, чтобы определить подходящую ветку для установленной видеокарты, вместо того чтобы жестко задавать версию с другой машины.

3. Перед началом пересборки проверьте функцию Secure Boot.

Функция Secure Boot часто является причиной того, что модуль NVIDIA находится на диске, но не загружается. Проверьте его состояние:

mokutil --sb-state
sudo modprobe nvidia

Если включена функция Secure Boot и modprobeвозвращается сообщение, подобное этому Key was rejected by service, ядро ​​обеспечивает проверку доверия к модулям. Ubuntu уже много лет применяет проверку модулей ядра в режиме Secure Boot на поддерживаемых версиях amd64. Canonical рекомендует использовать подписанные, предварительно скомпилированные модули NVIDIA, если они доступны. Если вы намеренно используете DKMS, Ubuntu может потребовать создания и регистрации ключа владельца машины (MOK) при перезагрузке.

Не следует отключать Secure Boot в качестве первого шага при устранении неполадок. Это может быть короткий диагностический эксперимент в контролируемой среде, но обычно лучшим решением является установка подписанного модуля или правильная регистрация MOK. Компания Canonical описывает процесс регистрации в своей документации по UEFI Secure Boot .

В терминале Ubuntu отображается сообщение о включенной функции SecureBoot, но команда modprobe nvidia завершается с ошибкой отклонения ключа.
Отклонение подписи указывает на доверие к Secure Boot, а не на отсутствие графического процессора. Вместо многократной переустановки библиотек пользовательского пространства следует разрешить проблему с подписью модуля или регистрацией MOK.

4. Проверьте, существует ли соответствующий модуль NVIDIA для запущенного ядра.

Предварительно скомпилированные пакеты NVIDIA в Ubuntu привязаны к ABI ядра. Замените DRIVER_BRANCHна ветку, указанную в ubuntu-drivers list:

DRIVER_BRANCH=XXX
apt-cache policy linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Если пакет установлен для текущего ядра, перейдите к проверкам Secure Boot, Nouveau и логов, описанным ниже. Если он отсутствует, установите точно соответствующий пакет модулей:

sudo apt install linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Canonical также поддерживает установку метапакета для различных версий Ubuntu, например linux-modules-nvidia-${DRIVER_BRANCH}-generic, , что помогает будущим обновлениям ядра получать соответствующие модули NVIDIA. Точное имя пакета зависит от вашей версии Ubuntu, версии ядра, ветки драйверов и от того, используете ли вы серверный вариант, поэтому перед подтверждением проверьте кандидата, показанного APT.

Проверка политики apt-cache для пакета модулей ядра NVIDIA и заголовков текущего ядра в терминале Ubuntu.
Проверка политики пакетов помогает отличить отсутствующий модуль NVIDIA, специфичный для ядра, от проблемы с драйвером пользовательского пространства.

5. Если вы используете DKMS, убедитесь, что присутствуют текущие заголовочные файлы ядра.

DKMS собирает модуль именно для того ядра, которое вы используете. Поэтому ему необходимы соответствующие заголовочные файлы ядра. Canonical рекомендует использовать DKMS в основном в тех случаях, когда предварительно скомпилированные модули недоступны, например, для некоторых пользовательских ядер.

sudo apt install linux-headers-$(uname -r)
dkms status

Если в записи NVIDIA DKMS не отображается успешная сборка для текущего ядра, перед попыткой случайного удаления пакетов проверьте журнал сборки /var/lib/dkms/. Типичные причины сбоев включают отсутствие заголовочных файлов, неподдерживаемые комбинации компилятора/ядра или проблемы с подписью модулей. После устранения необходимых условий переустановите соответствующий пакет DKMS или воспользуйтесь автоматическим путем Ubuntu:

sudo ubuntu-drivers install --include-dkms

Используйте эту команду только тогда, когда DKMS действительно необходим. В текущей документации Canonical для настольных компьютеров указано, что предварительно скомпилированные модули являются предпочтительным выбором для большинства пользователей, особенно при использовании Secure Boot.

Установка linux-headers для запущенного ядра в терминале Ubuntu.
Соответствующие заголовочные файлы ядра необходимы, когда DKMS должен скомпилировать модуль NVIDIA для текущего ядра.

6. Установите отсутствующий предварительно скомпилированный модуль, когда он станет доступен.

Если на шаге 4 выяснилось, что в текущем ядре отсутствует предварительно скомпилированный модуль NVIDIA, установите его явно и позвольте APT пересобрать initramfs:

sudo apt install linux-modules-nvidia-${DRIVER_BRANCH}-$(uname -r)

Затем убедитесь, что APT завершился без ошибок зависимостей. Избегайте принудительной установки пакетов с помощью команды `pip install package install` dpkg --force-*; это может привести к несовместимым версиям модуля ядра, библиотек пользовательского пространства и метапакета.

Если вы не уверены, какую ветку использовать, то более безопасный вариант общего ремонта:

sudo ubuntu-drivers install

Компания Canonical заявляет, что ubuntu-driversиспользует ту же логику, что и приложение «Дополнительные драйверы», и по умолчанию выбирает предварительно собранные подписанные драйверы, которые, как известно, работают с Secure Boot.

В терминале Ubuntu выполняется установка пакета linux-modules-nvidia для текущего ядра и обновление initramfs.
Установка пакета модулей, специфичных для ядра, устраняет распространенную проблему, когда ветка драйвера присутствует, но в новом ядре отсутствует соответствующий модуль NVIDIA.

7. Перезагрузите компьютер после внесения изменений в пакет.

Перезагрузка здесь не просто формальность. Работающее ядро ​​может сохранять в памяти более старый модуль NVIDIA, в то время как APT уже обновила пользовательские библиотеки на диске. Компания Canonical специально указывает это как причину несоответствия версий драйвера/библиотеки NVML после обновлений.

sudo reboot

После перезагрузки не следует сразу же переустанавливать программу. Сначала проверьте результат с помощью команд, описанных в следующем разделе.

В терминале Ubuntu отображается операция установки драйверов Ubuntu с последующей перезагрузкой с помощью команды sudo reboot.
После внесения изменений в драйверы или модули ядра перезагрузите систему, чтобы ядро ​​загрузило новый установленный модуль NVIDIA, а компоненты пользовательского пространства вернулись к той же версии.

8. Убедитесь, что модуль NVIDIA загружен.

Бегать:

nvidia-smi
lsmod | grep nvidia
cat /proc/driver/nvidia/version

Успешное восстановление имеет три полезных признака: nvidia-smiотображается список графических процессоров, lsmodмодули NVIDIA и /proc/driver/nvidia/versionверсия запущенного модуля. Для рабочих нагрузок CUDA также следует повторно запустить приложение или фреймворк, который ранее дал сбой; nvidia-smiэто само по себе доказывает совместимость драйверов, а не совместимость всех библиотек CUDA в вашей среде.

В терминале Ubuntu отображается успешный вывод команды nvidia-smi и список модулей NVIDIA, полученный с помощью команды lsmod.
Оптимальное конечное состояние: nvidia-smi может взаимодействовать с графическим процессором, и модули ядра NVIDIA загружены. Приведенные значения являются примером, а не обязательной версией.

Если это по-прежнему не помогает: используйте симптом, чтобы выбрать следующее действие.

«Несоответствие версий драйвера и библиотеки»

Сначала перезагрузите систему. Затем сравните версию работающего модуля ядра с установленными пакетами. Компания Canonical отмечает, что обновленные компоненты пользовательского пространства могут временно не совпадать со старым модулем, все еще загруженным в память. Если несоответствие сохраняется после перезагрузки, проверьте наличие смешанных источников пакетов и нескольких ветвей драйверов.

«Устройства не обнаружены», и Nouveau загружен

Проверять:

lsmod | grep nouveau

В документации Ubuntu для серверов указано, что в этой ситуации Nouveau может конфликтовать с проприетарным драйвером NVIDIA. Если Nouveau загружен, и вы собираетесь использовать проприетарный драйвер, Canonical рекомендует внести его в черный список и пересобрать initramfs:

echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot

Не следует блокировать Nouveau только потому, что он есть на диске; сначала убедитесь, что он действительно загружен и имеет отношение к возникшей ошибке.

modprobe nvidiaсообщается, что ключ был отклонен.

Вернитесь к использованию безопасной загрузки. По возможности используйте подписанные модули Ubuntu или завершите регистрацию MOK для модуля DKMS. Многократная переустановка одного и того же неподписанного модуля не изменит решение о доверии.

В новом ядре отсутствует совместимый пакет модулей.

Временно загрузите заведомо рабочее старое ядро, поддерживайте систему в актуальном состоянии и проверьте, предоставляет ли Ubuntu соответствующий предварительно скомпилированный модуль для более нового ядра. Если вы намеренно используете пользовательское ядро, DKMS может быть подходящим вариантом, но ознакомьтесь с его журналом сборки и подтвердите наличие подписи Secure Boot. Избегайте фиксации старого ядра на неопределенный срок, если у вас нет плана обслуживания для обновлений безопасности.

Команды, которые следует собрать перед тем, как обратиться за помощью.

Эти команды предоставляют компактный диагностический пакет без изменения системы:

uname -a
lspci -nnk | grep -A3 -i nvidia
nvidia-smi
lsmod | grep -E 'nvidia|nouveau'
mokutil --sb-state
dkms status
apt-cache policy 'nvidia-driver-*' | sed -n '1,160p'
sudo dmesg | grep -iE 'nvrm|nvidia|nouveau|secure|module' | tail -n 120

Укажите версию Ubuntu (из lsb_release -aили ) /etc/os-release, точное ядро ​​(из ) uname -r, а также был ли драйвер изначально установлен через пакеты Ubuntu, репозиторий NVIDIA, PPA или автономный установщик. Эти детали обычно важнее, чем общее утверждение о том, что «драйвер перестал работать после обновления».

Практическая профилактика

  • ubuntu-driversДля обычных настольных систем предпочтительнее использовать алгоритм установки драйверов Ubuntu или дополнительных драйверов.
  • Сохраните установленный метапакет для данной версии ядра, чтобы в будущих обновлениях ядра можно было добавить соответствующие модули NVIDIA.
  • Перезагрузите систему после обновления ядра или драйверов NVIDIA, вместо того чтобы продолжать работу со смешанным стеком данных в оперативной памяти и на диске.
  • Держите под рукой хотя бы одно заведомо рабочее ядро, пока не убедитесь, что новое ядро ​​загружается с драйвером графического процессора.
  • Избегайте смешивания пакетов Ubuntu, репозиториев PPA, автономного установщика NVIDIA и нескольких репозиториев, если вы намеренно не контролируете последствия.

Официальные ссылки

Текущие инструкции Canonical описаны в разделах «Установка драйверов NVIDIA — Ubuntu Desktop» и «Установка драйверов NVIDIA — Ubuntu Server» . Инструкции по использованию DKMS см. в разделе « Создание собственных модулей NVIDIA с помощью пакета DKMS» . Документация от производителя NVIDIA доступна в руководстве по установке драйверов NVIDIA для Ubuntu .

Точные названия ветки драйвера, ABI ядра и пакетов зависят от версии. Всегда используйте значения, сообщаемые вашей системой и APT, а не рассматривайте примеры версий как универсальные.

Оставить комментарий

Как исправить проблему с загрузкой драйверов NVIDIA после обновления ядра в Ubuntu

Как исправить проблему с загрузкой драйверов NVIDIA после обновления ядра в Ubuntu

Устраните проблему с драйверами NVIDIA, которые перестают загружаться после обновления ядра Ubuntu, проверив модули ядра, Secure Boot, DKMS, заголовки, Nouveau и несоответствие версий.

Как установить Pardus 23 на устаревшее оборудование: пошаговая инструкция

Как установить Pardus 23 на устаревшее оборудование: пошаговая инструкция

Установите Pardus 23.4 XFCE на старые 64-битные ПК с устаревшим BIOS, загрузочным USB-накопителем, безопасным разметкой диска и проверкой после установки на совместимость с оборудованием с низкими характеристиками.

Модель безопасности Gooroom OS: доверенная загрузка, защита ОС и песочница браузера.

Модель безопасности Gooroom OS: доверенная загрузка, защита ОС и песочница браузера.

Узнайте, как Gooroom OS обеспечивает многоуровневую защиту при загрузке, исполняемых файлах и операционной системе, а также контроль со стороны браузера, и что пользователям следует проверять относительно режима «песочницы».

Запускайте Debian 12 на VPS с небольшим объемом оперативной памяти без сбоев, приводящих к ошибке нехватки памяти и отключению MySQL.

Запускайте Debian 12 на VPS с небольшим объемом оперативной памяти без сбоев, приводящих к ошибке нехватки памяти и отключению MySQL.

Проведите диагностику нехватки памяти в Debian 12, правильно настройте размер MariaDB или MySQL, тщательно добавьте файл подкачки и проверьте, сможет ли ваш VPS справиться с нагрузкой.

Как настроить VPN-подключения на настольной системе Pardus Linux

Как настроить VPN-подключения на настольной системе Pardus Linux

Настройте VPN-соединения OpenVPN, WireGuard, OpenConnect или IPsec на Pardus 25 Desktop, затем проверьте маршрутизацию, DNS и состояние туннеля.

SLES 15 против RHEL 9: сравнение производительности корпоративных серверов

SLES 15 против RHEL 9: сравнение производительности корпоративных серверов

Сравните показатели производительности SLES 15 и RHEL 9, потоки ядра, профили TuneD, переменные рабочей нагрузки и узнайте, как объективно оценить производительность обеих систем.

Устранение проблемы зависания сервера SUSE Linux при перезагрузке во время завершения работы systemd.

Устранение проблемы зависания сервера SUSE Linux при перезагрузке во время завершения работы systemd.

Узнайте, как диагностировать и устранять зависания сервера SUSE Linux во время завершения работы systemd, выявляя зависшие задания, анализируя предыдущую загрузку и исправляя блокирующую службу или точку монтирования.

Как настроить панель XFCE в Pardus Linux для пользователей Windows

Как настроить панель XFCE в Pardus Linux для пользователей Windows

Настройте Pardus XFCE так, чтобы он выглядел привычно: нижняя панель задач, меню приложений, избранные ярлыки, кнопки открытия окон, системный трей и часы. Узнайте, что нужно изменить и как протестировать расположение элементов.

Как настроить автоматическое обновление Debian в режиме без графического интерфейса с помощью Unattended-Upgrades

Как настроить автоматическое обновление Debian в режиме без графического интерфейса с помощью Unattended-Upgrades

Настройте автоматическое обновление на сервере Debian без графического интерфейса, проверьте таймеры systemd, проведите безопасное тестирование, управляйте перезагрузками и отслеживайте автоматические обновления безопасности.

Исправлена ​​ошибка подключения веб-консоли Cockpit на сервере SUSE Linux Enterprise Server.

Исправлена ​​ошибка подключения веб-консоли Cockpit на сервере SUSE Linux Enterprise Server.

Для устранения неполадок в Cockpit на SUSE Linux Enterprise Server проверьте URL-адрес HTTPS, сокет systemd, установленные пакеты, зону firewalld, сертификаты и журналы.