linux-labs

Вики / Загрузка

Ядро и модули (lsmod, modprobe, dmesg)

Концепция Ubuntu 24.04 ЯдроЗагрузкаПроцессы

Загрузка модулей ядра, просмотр сообщений ядра, параметры.

Модули ядра — подгружаемые драйверы и подсистемы (сеть, ФС, железо). Большинство грузятся автоматически по обнаружению устройств.

uname -r                          # версия ядра
lsmod                             # загруженные модули (имя, размер, кем используется)
dmesg | tail                      # сообщения ядра (или journalctl -k)
sudo modprobe nf_tables           # загрузить модуль (с зависимостями)
sudo modprobe -r nf_tables        # выгрузить (-r, если не используется)
sudo modprobe overlay dm_mod      # несколько сразу
modinfo nf_tables                 # инфо: путь, параметры, зависимости, alias
modinfo -p i915                   # доступные ПАРАМЕТРЫ модуля
lsmod | grep nf_                  # что загружено
sudo depmod -a                    # пересобрать карту зависимостей (после ручной установки)

# параметры модуля при загрузке:
sudo modprobe usbcore autosuspend=-1
# постоянно — /etc/modprobe.d/*.conf:
echo 'options i915 enable_psr=0' | sudo tee /etc/modprobe.d/i915.conf
# грузить при старте:
echo nf_tables | sudo tee /etc/modules-load.d/nft.conf

# запретить (blacklist):
echo 'blacklist pcspkr' | sudo tee /etc/modprobe.d/no-beep.conf
sudo update-initramfs -u          # если модуль грузится из initramfs — пересобрать
# жёстко из cmdline ядра: module_blacklist=nouveau (в GRUB_CMDLINE, см. boot-grub)
dmesg                             # кольцевой буфер ядра
dmesg -T                          # с человекочитаемым временем
dmesg -w                          # следить (как tail -f)
dmesg --level=err,warn            # только ошибки/предупреждения
journalctl -k                     # то же через journald
journalctl -k -b -1               # ядро прошлой загрузки (см. journalctl)

Здесь ищут проблемы с железом, дисками (I/O errors), OOM-killer, сетью.

Устройство/драйвер не работает

dmesg | grep -i <устройство> — ошибки инициализации. lsmod — загружен ли модуль; sudo modprobe <модуль> вручную; modinfo — нужные параметры/firmware.

OOM-killer убил процесс

dmesg -T | grep -i oom или journalctl -k | grep -i oom — ядро убило процесс при нехватке памяти (см. memory-swap, processes).

Модуль не грузится при старте

Добавь в /etc/modules-load.d/*.conf; проверь modinfo и зависимости (depmod -a). Если из initramfs — update-initramfs -u.

modprobe -r: «Module is in use»

Модуль используется (lsmod — колонка «Used by»). Останови потребителя или выгрузи зависимые модули сначала.

Диск сыпет I/O errors

dmesg → «I/O error, dev sdX» — признак умирающего диска; проверь SMART (smartctl -a), делай бэкап (см. filesystems).

uname -r ; lsmod                  # ядро / модули
sudo modprobe MOD ; sudo modprobe -r MOD ; modinfo MOD
dmesg -T | tail ; dmesg --level=err   # сообщения ядра
journalctl -k | grep -i oom       # OOM-killer
# автозагрузка: /etc/modules-load.d/  ·  запрет: /etc/modprobe.d/ blacklist

См. также