#Когда возникает проблема и к каким системам относится
Устройство перестало работать после установки нового ядра, а modprobe сообщает об отсутствии модуля или отказе его загрузки. Перед исправлением надо установить имя драйвера и текущее ядро. Rocky Linux после обновления ядра; важно различать встроенные драйверы, дополнительные kmod/DKMS и Secure Boot.
#Основные причины: как отличить одну от другой
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет модуля для текущего ядраСторонний kmod или DKMS собран под старую версию | modinfo не видит файл для uname -r | Уточнить доступность совместимого пакета для ядра |
| Secure Boot не допускает модульМодуль существует, но подпись не доверена | journalctl/dmesg показывают rejection/key | Проверить доверие подписи и инструкцию поставщика |
| Изменён драйвер или прошивкаВстроенный модуль загружается, но оборудование не поднимается | lspci и dmesg дают ошибки firmware | Проверить поддержку конкретного устройства |
#Пошаговая диагностика и устранение неисправности
- Шаг 1. Запишите работающее ядро и установленную системуОткройте терминал. Сравните uname -r с установленными пакетами kernel. Если машина запущена в старом ядре, вывод о неисправности нового делайте по предыдущей загрузке, а не только по текущей.Linux · Терминал (Bash)КомандаТерминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
uname -rcat /etc/os-releaserpm -qa "kernel*" | sort
- Шаг 2. Уточните устройство и реально нужный драйверДля PCI-устройства вывод lspci -nnk показывает идентификатор и Kernel driver in use; если lspci отсутствует, возможно не установлен pciutils. Не копируйте имя модуля по чужой модели.Linux · Терминал (Bash)КомандаТерминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
lspci -nnklsmod | head -40
- Шаг 3. Найдите отказ ядра в журналеВ журнале ищите сообщения modprobe, firmware, module, signing. Если сбой в прошлой загрузке, используйте -b -1 только при сохранённом постоянном журнале; отсутствие записей не доказывает отсутствие ошибки.
- Терминал Rocky Linux; административные права не обязательныLinux · Терминал (Bash)КомандаТерминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
journalctl -b -k --no-pager -n 100journalctl -b -1 -k --no-pager -n 70
- Шаг 4. Проверьте, существует ли модуль для этой версии ядраВ следующей команде замените НАЗВАНИЕ_МОДУЛЯ на имя, установленное по устройству. modinfo -k проверяет соответствующий каталог модулей. Если файла нет, не пытайтесь применять модуль от другой версии ядра.
- Терминал Rocky Linux; административные права не обязательныLinux · Терминал (Bash)КомандаТерминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
MOD="НАЗВАНИЕ_МОДУЛЯ"modinfo -k "$(uname -r)" "$MOD"ls -ld "/lib/modules/$(uname -r)"
- Шаг 5. Отделите сторонние kmod и DKMS от встроенных драйверовПосмотрите статус DKMS, если утилита установлена, и список kmod-пакетов. Отсутствие DKMS само по себе нормально для штатных драйверов. При несовпадении ABI устанавливайте только пакет из доверенного репозитория, предназначенный для этой версии Rocky Linux и ядра.
- Терминал Rocky Linux; административные права не обязательныLinux · Терминал (Bash)КомандаТерминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
command -v dkms && dkms status || truerpm -qa | grep -E "^(kmod-|akmod-|dkms|kernel-devel)" || true
- Шаг 6. При наличии модуля проверьте Secure Bootmokutil существует только если установлен пакет и используется UEFI. Отказ из-за подписи подтверждается журналом и состоянием Secure Boot; не советуйте отключать защиту как универсальное решение. Для стороннего модуля следуйте процедуре подписывания производителя.
- Терминал Rocky Linux; административные права не обязательныLinux · Терминал (Bash)КомандаТерминал Rocky Linux; административные права не обязательны. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
command -v mokutil && mokutil --sb-state || truejournalctl -b -k --no-pager | grep -Ei "module verification|signature|secure boot|firmware" | tail -30
- Шаг 7. Планируйте исправление с возможностью возвратаСохраните рабочую запись загрузчика и убедитесь в доступности консоли. Если предыдущая версия ядра работает, не удаляйте её, пока не установлен совместимый модуль для нового. После штатного исправления перезагрузитесь в новое ядро в окно обслуживания и повторите modinfo и lspci.
- Терминал Rocky Linux; нужны административные праваLinux · Терминал (Bash)КомандаНужен sudoТерминал Rocky Linux; нужны административные права. Диагностика или адресная проверка; выполните только при соответствии условиям шага.
uname -rsudo grubby --info=ALL | grep -E "^(index|kernel|title)="
#Как убедиться, что неисправность устранена
После загрузки нового ядра устройство видно, его штатный драйвер указан в lspci -nnk, в журнале нет отказов подписи или firmware, прежнее ядро сохранено для отката.
#Если предложенный способ не сработал
Если не помогло, загрузитесь с заведомо работающего ядра через меню загрузчика; зафиксируйте ID устройства, версии kernel/kmod, ошибку журнала. Не отключайте Secure Boot и SELinux без доказанной причины.