Модуль ядра (Kernel Module, ko-файл) — это исполняемый файл, который расширяет функциональность ядра, например, добавляя поддержку файловых систем, сетевых интерфейсов или драйверов оборудования.
Модули ядра загружаются автоматически при необходимости, но также могут управляться вручную.
Загрузка модулей ядра
Если Linux не загрузил нужный модуль автоматически, его можно загрузить вручную с помощью modprobe:
modprobe <имя_модуля>
Например, для загрузки модуля vfat (драйвер FAT32):
modprobe vfat
Если modprobe не находит модуль, можно попробовать загрузить его напрямую:
insmod /lib/modules/$(uname -r)/kernel/drivers/net/<module>.ko
Но insmod не управляет зависимостями, поэтому предпочтительнее modprobe.
Удаление модулей ядра
Иногда нужно выгрузить модуль, например, при отладке или обновлении.
Удаление модуля выполняется командой:
modprobe -r <имя_модуля>
Если модуль используется, его можно принудительно выгрузить:
rmmod <имя_модуля>
Чтобы найти процессы, использующие модуль:
lsmod | grep <имя_модуля>
lsof | grep <имя_модуля>
Добавление модуля в автозагрузку
Чтобы загружать модуль при старте системы, добавьте его в файл /etc/modules:
echo "<имя_модуля>" | sudo tee -a /etc/modules
Отключение автозагрузки модуля
Если модуль загружается автоматически, но его нужно отключить, можно занести его в чёрный список (blacklist):
echo "blacklist <имя_модуля>" | sudo tee -a /etc/modprobe.d/blacklist.conf
Затем обновляем конфигурацию и перезагружаем систему:
sudo update-initramfs -u
reboot
Зачем управлять модулями ядра?
• Отладка и тестирование (например, при замене драйвера)
• Оптимизация системы (исключение ненужных драйверов)
• Безопасность (запрет загрузки уязвимых или нежелательных модулей)
Если нужно полностью удалить модуль из системы, его можно найти и удалить:
find /lib/modules/$(uname -r) -name "<модуль>.ko" -delete