Módulos do Kernel no Linux

Módulos do Kernel no Linux

Módulos são arquivos-objeto, parte do kernel, que são vinculados a ele em tempo de execução.

Um módulo no linux é um código, geralmente drivers de dispositivos que podem ser carregados e descarregados sem a necessidade de reiniciar o sistema.

Os módulos podem ser inseridos e removidos em um kernel em execução a qualquer tempo, exceto quando em uso.

Os drivers de dispositivos podem ser inseridos na forma de módulos do Kernel.

Os arquivos de drivers geralmente terminam com a extensão .ko (ou .o) e são armazenados em subdiretórios dentro de /lib/modules

Ferramentas para Gerenciamento de Módulos

Listamos abaixo algumas ferramentas usadas para gerenciamento de módulos no Linux:

Ferramenta Função
depmod Trabalha com dependências dos módulos
insmod Carrega módulos em um kernel em execução
lsmod Lista informações sobre módulos carregados
modinfo Lista informações sobre um módulo
modprobe Carrega, descarrega e gera relatórios em módulos, e trata de suas dependências
rmmod Descarrega módulos de um kernel em execução

Vamos estudar cada ferramenta separadamente agora.

Comando lsmod

Mostra o status dos módulos carregados atualmente no Kernel do Linux. Muito útil para ajudar a identificar problemas no sistema.

As informações retornadas pelo comando lsmod são encontradas no arquivo /proc/modules.

Sintaxe:

# lsmod

Exemplo:

# lsmod

Comando lsmod no Linux

Veja no exemplo acima que a listagem nos traz quatro colunas, contendo respectivamente o nome do módulo, seu tamanho, contador de uso e módulos que usam o módulo especificado. Note os módulos USB listados.

Comando lsdev

Exibe informações sobre o hardware do sistema, como as portas de I/O e endereços IRQ.

O comando lsdev não vem instalado por padrão em muitas distribuições do Linux. Para usá-lo, instale antes o pacote procinfo.

Esse comando listará os nomes dos dispositivos, DMA, IRQ e portas de entrada e saída usadas por eles.

Exemplo:

# lsdev

Comando lsdev no Linux

Comando lspci

Exibir informações sobre os dispositivos PCI do sistema.

Sintaxe:

lspci [opções]

Algumas opções:

-v Modo verboso, mostrando informações detalhadas sobre todos os dispositivos.

-t Mostra um diagrama em formato de árvore, contendo todos os barramentos, bridges, dispositivos e conexões entre eles.

Exemplo:

# lspci

Comando lspci no Linux

Comando insmod

Programa que permite inserir (“instalar”) um módulo no Kernel do Linux.

É preferível usar o programa modprobe para esse fim, pois verifica e carrega dependências automaticamente, coisa que o insmod não faz.

Sintaxe:

insmod [módulo] [opções]

Opções comuns:

-f Forçar o carregamento do módulo mesmo que sua versão não seja compatível com a do Kernel do sistema.

-p Testa para ver se o módulo pode ser carregado corretamente.

-v Ativa o modo verboso (com mais detalhes).

-V Mostra a versão do insmod

Exemplo:

Vamos inserir o módulo fat no sistema. Para isso vamos descobrir primeiro qual a versão do kernel usada com o comando uname -r:

# uname -r

Comando uname no Linux

A versão retornada foi a 3.2.0-4-486. No seu sistema pode ser outra.

Dentro do diretório /lib/modules há um diretório com o nome de sua versão do kernel. Vamos usar esse diretório para inserir um módulo no kernel. Emita o comando a seguir que contém o caminho completo para o módulo desejado:

# insmod /lib/modules/3.2.0-4-486/kernel/fs/fat/fat.ko

Substitua a versão do kernel pela usada no seu sistema. Se o módulo for inserido com sucesso, não aparecerá nenhuma mensagem na tela, apenas o prompt de comandos.

Para verificar se funcionou, emita novamente o comando lsmod (use  | less para ver a saída paginada, uma tela por vez):

# lsmod | less

Verificar módulos no Linux com lsmod

Veja o módulo fat carregado logo na primeira linha da saída do comando.

Comando rmmod

Programa que permite remover um módulo do Kernel do Linux.

Sintaxe:

rmmod [opções] [módulo]

Opções comuns:

-f, –force Forçar a remoção do módulo, incluindo módulos em uso e módulos que não deveriam ser removidos dos sistema. Cuidado com essa opção!!!

-V, –version Mostra a versão do comando rmmod

-s Enviar erros para o syslog, em vez da saída de erro padrão stdout (veremos mais para frente o que significam).

Exemplo:

– Remover o módulo nfs do sistema (não apresentará nada no terminal):

# rmmod nfs

Verifique na sequência que o módulo nfs não está presente na listagem geral:

# lsmod

Comando modinfo

Traz informações sobre um módulo específico. As informações podem incluir o caminho do módulo no sistema, licença, dependências, autor, descrição, etc.

Sintaxe:

modinfo {opções] [nome_módulo]

Exemplo:

Exibir informações sobre o módulo fat:

# modinfo fat

Comando modinfo no Linux

Mostrar apenas a licença usada pelo módulo:

# modinfo -l fat

Linux modinfo

Mostrar apenas o nome do arquivo com o caminho completo:

# modinfo -n fat

módulos do kernel no linux modinfo

Comando modprobe

Permite inserir módulos no sistema com funcionalidades adicionais, e também remover módulos (com a opção -r). Leva em consideração as dependências (outros módulos e bibliotecas requeridas pelo módulo inserido).

Sintaxe:

modprobe [opções] [módulos]

Opções comuns:

-r Remover um ou mais módulos
–show-depends Lista as dependências de um módulo, incluindo o módulo em si.
-v Mostra informações sobre o que o programa está fazendo.

Exemplos:

Inserir o módulo msdos (insira antes o módulo fat; verifique depois com lsmod | less):

# modprobe msdos

Remover os módulos msdos e fat ao mesmo tempo:

# modprobe -r msdos fat

Mostrar as dependências do módulo cdrom:

# modprobe --show-depends cdrom

Vimos neste artigo alguns comandos relacionados a módulos do Linux. Este assunto é parte do tópico 101 da certificação Linux LPIC-1. Em breve abordaremos mais assuntos relativos à certificação.

 

Sobre Fábio dos Reis (1339 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*