Как исправить проблему с загрузкой драйверов 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, а не рассматривайте примеры версий как универсальные.

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

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Как безопасно восстановить потерянные разделы и данные с жесткого диска

Узнайте, как восстановить потерянные разделы и файлы с помощью TestDisk и PhotoRec. Защитите исходный диск, проведите безопасное сканирование и сохраните восстановленные данные на другой диск.

Как сканировать QR-коды на настольном компьютере с Linux

Как сканировать QR-коды на настольном компьютере с Linux

Сканируйте QR-коды в Linux с помощью CoBang, используя веб-камеру или файл изображения. См. варианты установки, шаги настройки и решения проблем с доступом к камере Flatpak.

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Как изменить настройки веб-камеры в Linux с помощью Cameractrls

Изменяйте настройки веб-камеры в Linux с помощью Cameractrls: настраивайте экспозицию, цвет, подавление мерцания и другие поддерживаемые параметры, а затем проверяйте совместимые видеорежимы.

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Как установить PhpStorm на Linux: Toolbox, Tar.gz, Snap и AUR

Установите PhpStorm на Linux с помощью JetBrains Toolbox или автономного архива tar.gz, а также через Snap и Arch AUR. Java уже включена в комплект.

Как создать резервную копию CD-ROM в формате ISO в Linux

Как создать резервную копию CD-ROM в формате ISO в Linux

Создайте образ CD-ROM ISO в Linux с помощью GNOME Disks или dd. Определите оптический привод, отслеживайте процесс копирования, проверяйте образ и узнавайте, когда поврежденный диск или аудиодиск требует использования другого инструмента.

Как вырезать изображение в Linux с помощью GIMP

Как вырезать изображение в Linux с помощью GIMP

Удаление фона фотографии в Linux с помощью GIMP: обведите контур объекта, удалите выделенный фон, сохранив прозрачность, и экспортируйте многоразовый PNG-файл.

Как установить Cisco Packet Tracer на Linux

Как установить Cisco Packet Tracer на Linux

Загрузите Cisco Packet Tracer 9.0.1 для Ubuntu 64-бит, установите DEB-пакет с помощью APT, примите лицензионное соглашение в Терминале и войдите в систему, чтобы начать лабораторную работу.

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно: официальное руководство по установке

Скачайте FlightGear бесплатно с официального сайта. Сравните пакеты для Windows, macOS и Linux, установите файлы данных и совершите свой первый полет.

Настольное приложение Google Tasks: как им пользоваться на компьютере

Настольное приложение Google Tasks: как им пользоваться на компьютере

Откройте Google Задачи в браузере, добавьте ярлык Chrome или запустите приложение, и управляйте задачами с указанием даты через Календарь и Gmail.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler: Бесплатный и простой музыкальный сэмплер для клавишных ритмов.

OKSampler сопоставляет MP3-клипы с клавишами клавиатуры и может зацикливать аудио. Узнайте, что делает эта старая бесплатная программа, на чем заканчиваются ее старые функции и что нужно проверить перед загрузкой.