Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Documentação do SUSE Linux Enterprise Desktop / Guia de Administração / Sistema / Gerenciando módulos do kernel
Aplica-se a SUSE Linux Enterprise Desktop 15 SP6

28 Gerenciando módulos do kernel

Embora o Linux seja um kernel monolítico, ele pode ser ampliado usando módulos do kernel. Esses são objetos especiais que podem ser inseridos no kernel e removidos sob demanda. Em termos práticos, os módulos do kernel tornam possível adicionar e remover drivers e interfaces que não estão incluídos no próprio kernel. O Linux dispõe de vários comandos para gerenciar módulos do kernel.

28.1 Listando módulos carregados com lsmod e modinfo

Use o comando lsmod para ver os módulos do kernel que estão carregados no momento. A saída do comando pode ter a seguinte aparência:

> lsmod
Module                  Size  Used by
snd_usb_audio         188416  2
snd_usbmidi_lib        36864  1 snd_usb_audio
hid_plantronics        16384  0
snd_rawmidi            36864  1 snd_usbmidi_lib
snd_seq_device         16384  1 snd_rawmidi
fuse                  106496  3
nfsv3                  45056  1
nfs_acl                16384  1 nfsv3

A saída é dividida em três colunas. A coluna Module (Módulo) lista os nomes dos módulos carregados, enquanto a coluna Size (Tamanho) exibe o tamanho de cada módulo. A coluna Used by mostra o número de módulos de referência e os respectivos nomes. Essa lista pode estar incompleta.

Para ver informações detalhadas sobre um módulo do kernel específico, use o comando modinfo MODULE_NAME, em que MODULE_NAME é o nome do módulo do kernel desejado. O binário modinfo reside no diretório /sbin, que não está na variável de ambiente PATH do usuário. Isso significa que você deve especificar o caminho completo para o binário ao executar o comando modinfo como um usuário comum:

> /sbin/modinfo kvm
filename:       /lib/modules/6.4.0-150600.9-default/kernel/arch/x86/kvm/kvm.ko.zst
license:        GPL
author:         Qumranet
suserelease:    SLE15-SP6
srcversion:     9DACE73AC65F98D556DAD60
depends:        irqbypass
supported:      yes
retpoline:      Y
intree:         Y
name:           kvm
vermagic:       6.4.0-150600.9-default SMP mod_unload modversions

28.2 Adicionando e removendo módulos do kernel

É possível usar insmod e rmmod para adicionar e remover módulos do kernel, mas, em vez disso, a recomendação é usar a ferramenta modprobe. O modprobe oferece diversas vantagens importantes, incluindo a resolução automática de dependências e a criação de lista negra.

Quando usado sem parâmetros, o comando modprobe instala um módulo do kernel especificado. O modprobe deve ser executado com privilégios de root:

> sudo modprobe acpi

Para remover um módulo do kernel, use o parâmetro -r:

> sudo modprobe -r acpi

28.2.1 Carregando módulos do kernel automaticamente na inicialização

Em vez de carregar os módulos do kernel manualmente, você pode carregá-los automaticamente durante o processo de boot usando o serviço systemd-modules-load.service. Para habilitar um módulo do kernel, adicione um arquivo .conf ao diretório /etc/modules-load.d/. Convém dar ao arquivo de configuração o mesmo nome do módulo. Por exemplo:

/etc/modules-load.d/rt2800usb.conf

O arquivo de configuração deve conter o nome do módulo do kernel desejado (por exemplo, rt2800usb).

A técnica descrita permite que você carregue os módulos do kernel sem parâmetros. Se você precisa carregar um módulo do kernel com opções específicas, em vez disso, adicione um arquivo de configuração ao diretório /etc/modprobe.d/. O arquivo deve ter a extensão .conf. O nome do arquivo deve cumprir a seguinte convenção de nomeação: priority-modulename.conf. Por exemplo: 50-thinkfan.conf. O arquivo de configuração deve conter o nome do módulo do kernel e os parâmetros desejados. Você pode usar o comando de exemplo a seguir para criar um arquivo de configuração com o nome do módulo do kernel e seus parâmetros:

> echo "options thinkpad_acpi fan_control=1" | sudo tee /etc/modprobe.d/thinkfan.conf
Nota
Nota: Carregando módulos do kernel

A maioria dos módulos do kernel é carregada pelo sistema automaticamente quando um dispositivo é detectado ou o espaço do usuário requer funcionalidades específicas. Portanto, a adição manual de módulos a /etc/modules-load.d/ raramente é necessária.

28.2.2 Adicionando módulos do kernel à lista negra com modprobe

A adição de um módulo do kernel à lista negra o impede de ser carregado durante o processo de boot. Isso pode ser útil quando você deseja desabilitar um módulo que você suspeita ser a causa de problemas no sistema. Você ainda pode carregar manualmente os módulos do kernel que constam na lista negra usando as ferramentas insmod ou modprobe.

Para adicionar um módulo à lista negra, crie um arquivo /etc/modprobe.d/60-blacklist-MODULE_NAME.conf com o seguinte conteúdo:

blacklist MODULE_NAME

Execute o comando dracut como root para gerar uma nova imagem do initrd e, em seguida, reinicialize a máquina (substitua NAME pelo nome do initrd atual e KERNELVERSION pelo kernel em execução no momento):

> su
echo "blacklist nouveau" >> /etc/modprobe.d/60-blacklist-nouveau.conf
/usr/bin/dracut --logfile /var/log/YaST2/mkinitrd.log --force /boot/$initrd-NAME $KERNELVERSION
reboot

Para desabilitar um módulo do kernel apenas temporariamente, inclua-o na lista negra diretamente durante a inicialização. Para fazer isso, pressione a tecla E quando aparecer a tela de boot. Essa ação direciona você para um editor mínimo que permite modificar os parâmetros de boot. Localize a linha que tem a seguinte aparência:

linux /boot/vmlinuz...splash= silent quiet showopts

Adicione o comando modprobe.blacklist=MODULE_NAME ao fim da linha. Por exemplo:

linux /boot/vmlinuz...splash= silent quiet showopts modprobe.blacklist=nouveau

Pressione F10 ou CtrlX para inicializar com a configuração especificada.

Para colocar um módulo do kernel na lista negra permanentemente por meio do GRUB, abra o arquivo /etc/default/grub para edição e adicione a opção modprobe.blacklist=MODULE_NAME ao comando GRUB_CMDLINE_LINUX. Em seguida, execute o comando sudo grub2-mkconfig -o /boot/grub2/grub.cfg para habilitar as mudanças.