Table of Contents
🧩 lsmod: кратко и по делу#
lsmod — утилита для отображения списка загруженных модулей ядра Linux.
Модули ядра — это драйверы и расширения, которые могут быть динамически загружены или выгружены без перезагрузки системы.
📝 Топ‑20 команд и приёмов для работы с модулями ядра#
Основные команды#
lsmod— список всех загруженных модулей.lsmod | grep <module>— проверить, загружен ли модуль.modprobe <module>— загрузить модуль ядра.modprobe -r <module>— выгрузить модуль.modprobe --show-depends <module>— показать зависимости модуля.modinfo <module>— полная информация о модуле.insmod <file.ko>— загрузить модуль напрямую из файла.rmmod <module>— удалить модуль ядра.dmesg | grep <module>— проверить логи загрузки/ошибок.ls /lib/modules/$(uname -r)/kernel/— директория с модулями ядра.
Фильтрация и диагностика#
lsmod | sort— отсортировать список модулей.lsmod | column -t— красиво выровнять таблицу.lsmod | grep usb— проверить USB-драйверы.lsmod | grep nvidia— проверить драйвер NVIDIA.lsmod | awk '{print $1, $2}'— вывести модули и их размер.lsmod | grep ath9k— проверить Wi-Fi драйвер Atheros.lsmod | grep snd— проверить аудиодрайверы.find /lib/modules/$(uname -r) -name "*.ko"— найти все модули ядра.modinfo vboxdrv— узнать версию драйвера VirtualBox.modinfo nvidia | grep -i version— узнать версию драйвера NVIDIA.
🚀 Айсберг команд lsmod — от базового к гуру#
🟢 Уровень 1 — База (разогрев)#
lsmod
- Список всех загруженных модулей
lsmod | grep usb
- Проверить USB-драйверы
lsmod | grep nvidia
- Проверить NVIDIA-драйвер
lsmod | wc -l
- Количество загруженных модулей
lsmod | head
- Посмотреть первые строки списка
🟡 Уровень 2 — Работа с драйверами#
modprobe vboxdrv
- Загрузить модуль VirtualBox
modprobe -r vboxdrv
- Выгрузить модуль VirtualBox
modprobe --show-depends vboxdrv
- Посмотреть зависимости модуля
modinfo vboxdrv
- Информация о модуле VirtualBox
modinfo nvidia | grep filename
- Узнать, где лежит драйвер NVIDIA
🟠 Уровень 3 — Управление модулями вручную#
sudo insmod ./mymodule.ko
- Загрузить модуль напрямую из файла
sudo rmmod mymodule
- Удалить модуль ядра
sudo modprobe mymodule param=1
- Загрузить модуль с параметрами
sudo dmesg | tail -n 20
- Проверить результат загрузки
find /lib/modules/$(uname -r) -name "*.ko" | grep mymodule
- Найти бинарник модуля
🔵 Уровень 4 — Глубокая диагностика и интеграция#
lsmod | grep snd
- Проверить аудиодрайверы
lsmod | grep ath
- Проверить Wi-Fi-драйверы
lsusb
- Посмотреть устройства на USB и сверить модули
lspci -k
- Проверить, какой драйвер закреплён за PCI-устройством
dmesg | grep -i "failed\|error"
- Поиск ошибок загрузки модулей
🟣 Уровень 5 — Оптимизация и безопасность#
lsmod | awk '{print $1, $3}' | sort -k2 -n
- Посмотреть модули, которыми пользуется больше всего процессов
lsmod | awk '$3==0 {print $1}'
- Список неиспользуемых модулей
modprobe -r $(lsmod | awk '$3==0 {print $1}')
- Выгрузить все неиспользуемые модули
lsmod | grep bluetooth
- Проверить BT-модуль
sudo modprobe -r btusb
- Выгрузить драйвер Bluetooth
🔴 Уровень 6 — Гуру‑режим#
lsmod | grep vfio
- Проверить модули для PCI-пасстру через KVM/QEMU
lsmod | grep kvm
- Проверить модули виртуализации
lsmod | grep dm_mod
- Проверить драйвер LVM
lsmod | grep btrfs
- Проверить поддержку Btrfs
sudo modprobe vfio-pci
- Подключить VFIO для passthrough
🟤 Уровень 7 — Автоматизация и отладка#
for m in $(lsmod | awk '{print $1}' | tail -n +2); do echo "=== $m ==="; modinfo $m | grep description; done
- Вывести описание всех модулей
lsmod | awk '{print $1}' | while read m; do modinfo $m | grep -i filename; done
- Показать пути всех модулей
lsmod | awk '{print $1}' | xargs -n1 modinfo | grep -i author
- Найти авторов всех модулей
lsmod | grep -v Module | awk '{print $1}' | xargs -n1 modinfo | grep depends
- Показать зависимости всех модулей
find /sys/module/ -maxdepth 1 -type d
- Список всех активных модулей ядра
🧩 Бонус — практические сценарии#
Проверить драйвер Wi-Fi:
lspci -k | grep -A3 Network
Найти, какой модуль использует устройство:
lsusb -v | grep -i driver
Посмотреть ошибки загрузки модулей:
dmesg | grep -i "module"
Загрузить модуль вручную и проверить:
sudo modprobe btusb
lsmod | grep btusb
Удалить неиспользуемые модули:
sudo modprobe -r $(lsmod | awk '$3==0 {print $1}')