O que são módulos do kernel?
Módulos são pedaços de código que podem ser carregados e descarregados do kernel em tempo de execução, sem precisar reiniciar. Drivers de dispositivos, sistemas de arquivos e protocolos de rede são geralmente implementados como módulos.
lsmod: listando módulos carregados
O lsmod lê /proc/modules e formata a saída:
lsmod
Module Size Used by
vfat 20480 1
fat 86016 1 vfat
ext4 1052672 2
mbcache 16384 1 ext4
jbd2 147456 1 ext4
snd_hda_intel 57344 2
snd_hda_codec 172032 1 snd_hda_intel
A coluna Used by mostra dependências. Você não pode remover um módulo que está sendo usado por outro.
lsmod | grep -i nome para filtrar rapidamente. Exemplo: lsmod | grep -i usb.modinfo: detalhes de um módulo
Para ver informações detalhadas como autor, licença, parâmetros e dependências:
modinfo ext4
filename: /lib/modules/6.8.0-45-generic/kernel/fs/ext4/ext4.ko
license: GPL
description: Fourth Extended Filesystem
author: Remy Card, Stephen Tweedie, Andrew Morton...
depends: mbcache,jbd2
parm: max_dir_size_kb:Maximum size of a directory (uint)
Para ver apenas os parâmetros disponíveis:
modinfo -p ext4
modprobe: carregar módulos
O modprobe carrega um módulo e resolve dependências automaticamente:
sudo modprobe vfat
Isso carrega tanto vfat quanto sua dependência fat. Compare com insmod, que exige o caminho completo e não resolve dependências.
Carregar com parâmetros
sudo modprobe snd_hda_intel power_save=1
rmmod: remover módulos
sudo rmmod vfat
Se o módulo estiver em uso, você verá um erro:
rmmod: ERROR: Module ext4 is in use
modprobe -r vfat em vez de rmmod. O modprobe -r também remove dependências que não são mais necessárias./etc/modprobe.d/: configuração persistente
Arquivos .conf nesse diretório controlam o comportamento dos módulos:
Bloquear um módulo (blacklist)
sudo tee /etc/modprobe.d/blacklist-nouveau.conf <<EOF
blacklist nouveau
options nouveau modeset=0
EOF
Definir opções padrão
sudo tee /etc/modprobe.d/snd.conf <<EOF
options snd_hda_intel power_save=1 power_save_controller=Y
EOF
Após alterar arquivos em /etc/modprobe.d/, reconstrua o initramfs:
sudo update-initramfs -u
Módulos carregados no boot
Para garantir que um módulo seja carregado automaticamente no boot, adicione seu nome em /etc/modules-load.d/:
echo "br_netfilter" | sudo tee /etc/modules-load.d/br_netfilter.conf
Verifique quais módulos estão configurados para carregar no boot:
cat /etc/modules-load.d/*.conf
Resumo dos comandos
# Listar módulos carregados
lsmod
# Informações sobre um módulo
modinfo ext4
# Carregar módulo (com dependências)
sudo modprobe vfat
# Remover módulo (com dependências)
sudo modprobe -r vfat
# Blacklist permanente
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nouveau.conf
# Carregar no boot
echo "br_netfilter" | sudo tee /etc/modules-load.d/br_netfilter.conf