Linux / Comando lsmod: listar e interpretar módulos carregados
lsmod lista os módulos atualmente carregados no kernel do Linux e mostra seu tamanho e suas referências de uso. Use-o para verificar se um driver ou recurso aparece como módulo carregado; a ausência na lista não prova que o kernel não ofereça aquela função.
O kernel é o núcleo do sistema operacional. Um módulo pode acrescentar um driver ou outra funcionalidade ao kernel em execução. Há também recursos compilados diretamente no kernel, que não precisam aparecer como módulos carregados. A listagem de lsmod não é um catálogo de todos os drivers instalados.
Sintaxe e preparação
lsmod [opções]
Os colchetes indicam opções na descrição da sintaxe e não devem ser digitados. Abra um terminal no Linux que deseja consultar e confira command -v lsmod, lsmod --version, lsmod --help e man lsmod. O comando costuma ser fornecido por kmod; versões e outras implementações podem ter diferenças.
As consultas deste artigo não carregam nem removem módulos e normalmente não exigem sudo. É necessário que as informações de módulos do kernel estejam acessíveis ao processo. Uma mensagem de comando não encontrado ou um erro de leitura não equivale a uma lista vazia válida.
Consultar os módulos carregados
lsmod
Confira primeiro se a consulta termina sem erro. O cabeçalho organiza os nomes dos módulos, o tamanho e as referências. A listagem representa o estado consultado, que pode mudar enquanto o sistema utiliza seus recursos; ela não demonstra que um dispositivo esteja configurado e funcionando corretamente.
O manual de lsmod do projeto kmod descreve o comando como uma apresentação organizada das informações de /proc/modules. Esse arquivo contém a lista de módulos carregados, conforme o manual de /proc/modules.
Procurar um módulo específico
lsmod | grep '^overlay '
O caractere | envia a saída de lsmod para grep. O padrão entre aspas procura overlay no começo da linha, seguido de um espaço, evitando confundir esse nome com um prefixo de outro módulo. Uma linha encontrada indica que overlay aparece na listagem consultada.
Se não aparecer uma linha, execute primeiro lsmod sem o filtro e confira as mensagens de erro. Grep retorna 1 quando não encontra correspondência, mas isso não comprova que a consulta anterior funcionou. No Bash, os estados de cada componente estão em PIPESTATUS imediatamente após o pipeline; outro comando altera esses valores. Mesmo com a consulta válida, a ausência pode significar que o recurso é embutido, ainda não foi carregado ou tem outro nome.
Consultar informações com modinfo
modinfo overlay
Modinfo consulta metadados, como descrição, arquivo, licença, dependências e parâmetros, quando disponíveis. Ele não carrega o módulo. Leia o nome do campo antes de interpretar o valor: depends informa dependências declaradas nos metadados, enquanto a lista Used by de lsmod mostra módulos que referenciam o módulo listado.
Consultar informações de um módulo e comprovar que ele está carregado são tarefas distintas. O manual de modinfo do projeto kmod explica a procura por nome no diretório de módulos do kernel e a consulta por arquivo; a opção -k permite selecionar outro kernel. Portanto, um resultado de modinfo não substitui a consulta do estado em execução com lsmod.
Se modinfo não encontrar overlay, confira a versão do kernel em execução com uname, a presença dos arquivos correspondentes e a documentação da distribuição. Para outros campos e formas de consulta, veja o guia de modinfo em inglês. Não tente carregar um módulo apenas para corrigir uma consulta de metadados.
Interpretar Module, Size e Used by
Para examinar apenas o começo da listagem, use:
lsmod | head
Head mostra, por padrão, até dez linhas, incluindo o cabeçalho. O corte pode esconder o módulo procurado; para pesquisar por nome, use o filtro anterior sobre a listagem completa. A estrutura abaixo é ilustrativa, com nomes e números que podem variar, e não foi obtida neste ambiente:
Module Size Used by
nf_conntrack 123456 1
- Module: nf_conntrack é o nome do módulo nesta linha.
- Size: 123456 representa o tamanho informado para o módulo; não é uma porcentagem de CPU nem uma medição de desempenho.
- Used by: 1 é a contagem de referências apresentada, não o número de vezes que o driver foi executado. Quando disponíveis, nomes à direita indicam módulos que usam o módulo da linha.
Este trecho não mostra nomes após a contagem 1. Não invente um módulo dependente nem interprete essa contagem como quantidade de usuários ou processos. O código de lsmod no projeto kmod distingue a contagem de referências da lista de módulos que mantêm referências; os dois campos não são uma lista completa de dependências de arquivos.
Uma contagem zero também não garante que remover o módulo seja uma operação adequada ou sem impacto. A listagem é uma ferramenta de observação; decida mudanças com base na função do módulo e no estado real do sistema.
Opções principais
| Opção | Uso na implementação kmod |
|---|---|
-s, --syslog |
Envia erros ao syslog em vez da saída de erro padrão. |
-v, --verbose |
Exibe mais mensagens sobre a execução; não acrescenta um inventário de drivers disponíveis. |
-V, --version |
Mostra a versão do programa e termina. |
-h, --help |
Mostra a ajuda e termina. |
Confira a ajuda local antes de usar essas opções em outra implementação. Se estiver investigando um erro, lembre que -s muda o destino das mensagens; a ausência de texto no terminal não prova que a consulta tenha funcionado.
Quando um driver não aparece
- Verifique o resultado de lsmod sem grep nem head e confirme que não houve erro.
- Confirme o nome do módulo na documentação do driver ou nos metadados. O nome comercial de um dispositivo não precisa ser igual ao nome do módulo.
- Distinga um módulo disponível em disco de um módulo já carregado. Verifique se os arquivos consultados correspondem ao kernel em execução.
- Considere a possibilidade de o recurso ter sido compilado diretamente no kernel. A documentação de Kbuild sobre modules.builtin descreve o arquivo que relaciona esses componentes embutidos; sua disponibilidade depende dos arquivos fornecidos para aquele kernel.
Não conclua somente dessa lista que o hardware está com defeito ou que um recurso está indisponível. Carregar e remover módulos envolve outros comandos e pode alterar o funcionamento do sistema. Nenhuma mudança é necessária para seguir as consultas apresentadas aqui.
Erros de ambiente e de pipeline
Se lsmod não estiver disponível, confira o pacote da distribuição e a ajuda do ambiente. Se houver erro ao acessar as informações do kernel, trate a causa desse erro antes de interpretar a saída. Um ambiente sem os utilitários ou sem acesso aos dados necessários não produz um diagnóstico válido de módulos.
No Bash 5.3.9 do Git para Windows disponível para esta verificação, lsmod e modinfo não foram encontrados: as consultas diretas retornaram 127. O pipeline com grep retornou 1 e o pipeline com head retornou 0, embora lsmod tivesse falhado; os estados dos componentes foram, respectivamente, 127/1 e 127/0. Esses resultados mostram por que é necessário conferir também a origem do pipeline. Não houve execução nativa do Linux nem observação de módulos reais; a saída de exemplo permanece ilustrativa.
Pergunta frequente
Se um driver não aparece em lsmod, ele não pode ser usado?
Não necessariamente. O recurso pode estar embutido no kernel, usar outro nome de módulo ou ainda não estar carregado. Confirme que a consulta funcionou, verifique o nome e os arquivos do kernel em execução e separe disponibilidade, carregamento e funcionamento do dispositivo.




