#Когда возникает ошибка в Debian и какие условия важны
После обновления ядра Debian драйвер сетевой карты, графического ускорителя или другого оборудования перестал загружаться. Причины разные для встроенных модулей Linux, DKMS и модулей сторонних поставщиков; решение зависит от имени модуля и выпуска ядра.
#Причины и как отличить их друг от друга
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Сторонний модуль не собран для нового ядра | dkms status не содержит текущего uname -r либо сообщает build error. | Проверить журнал сборки и наличие заголовков для ядра. |
| Модуль блокируется политикой ядра | В dmesg есть сообщение о подписи или lockdown/Secure Boot. | Проверить подпись, не выключать Secure Boot без плана. |
| Обновилось ядро, а прошивка оборудования нет | dmesg сообщает failed to load firmware для устройства. | Проверить пакет firmware из подходящего официального репозитория. |
#Пошаговая диагностика и устранение
- 1. Сначала зафиксируйте работающую версию и симптомВ Debian откройте Терминал; для сетевого сервера запаситесь консолью провайдера. Сравните uname -r с ранее работающей версией в /boot. Не удаляйте предыдущее ядро до восстановления, так как это безопасный путь возврата.Linux · Терминал (Bash)КомандаЧтение данных и диагностика. Изменений нет.
uname -rcat /etc/os-releasels -l /boot/vmlinuz-*
- 2. Найдите идентификатор устройства и модульДля PCI используйте lspci -nnk, для USB — lsusb (пакеты утилит могут отсутствовать). Найдите строку Kernel driver in use и Kernel modules. Если драйвер отсутствует, запишите код устройства, чтобы не угадывать чужой модуль.Linux · Терминал (Bash)КомандаЧтение данных и диагностика. Изменений нет.
lspci -nnklsusblsmod
- 3. Прочитайте сообщения ядра об отказеЗапустите журнал текущей загрузки с сообщениями ядра. Ищите по времени события firmware, module, signature, invalid format или lockdown. В Debian непривилегированному пользователю журнал ядра может быть недоступен; для чтения используйте sudo.
- Чтение журналов с sudo не меняет системуLinux · Терминал (Bash)КомандаНужен sudoЧтение журналов с sudo не меняет систему.
sudo journalctl -k -b --no-pager -n 150
- 4. Проверьте, есть ли модуль в текущем ядреУзнав точное имя, выполните modinfo без загрузки. Если modinfo сообщает module not found, это может быть отсутствие пакета или сборки, а не запрет запуска. Сверьте vermagic с uname -r; несовпадение указывает на модуль другого ядра.Linux · Терминал (Bash)КомандаЧтение данных и диагностика. Изменений нет.
modinfo ИМЯ_МОДУЛЯuname -r
- 5. Разберитесь со сборкой DKMS и заголовкамиДля стороннего модуля посмотрите dkms status; если dkms не установлен, это не ошибка для встроенных драйверов. Команда dpkg-query подскажет, установлены ли linux-headers для текущей версии. Не запускайте автоматический rebuild перед чтением ошибок: он может занять время и затронуть зависимости.Linux · Терминал (Bash)КомандаЧтение данных и диагностика. Изменений нет.
dkms statusdpkg-query -W "linux-headers-*"
- 6. Проверьте прошивку и параметры безопасной загрузкиЕсли журнал явно сообщает отсутствие firmware, найдите название прошивки и соответствующий пакет Debian для своего устройства. Для Secure Boot проверьте состояние через mokutil, если он есть. Не отключайте проверки подписи и не используйте неофициальные пакеты без понимания угроз.
- Проверочные команды, без включения или отключения защитыLinux · Терминал (Bash)КомандаНужен sudoПроверочные команды, без включения или отключения защиты.
command -v mokutilapt policy firmware-linuxsudo journalctl -k -b --no-pager -n 100
- 7. Проверяйте восстановление с возможностью откатаПосле точечного исправления совместимого пакета и согласованной перезагрузки повторите uname, modinfo, lsmod и проверку реальной функции устройства. При сбое снова загрузитесь через «Дополнительные параметры» GRUB в проверенное старое ядро и сохраните журнал новой попытки.Linux · Терминал (Bash)КомандаЧтение данных и диагностика. Изменений нет.
uname -rlsmodmodinfo ИМЯ_МОДУЛЯ
#Проверка результата и действия при неуспехе
Проблема решена, если драйвер действительно привязался к нужному оборудованию в новом ядре и устройство работает; отсутствие ошибок dpkg само по себе этого не подтверждает.