Introdução
Neste laboratório, você aprenderá como verificar o status dos módulos do kernel no Linux. Você explorará três métodos essenciais: listar os módulos atualmente carregados usando lsmod, verificar se um módulo pode ser carregado e suas dependências sem realmente carregá-lo usando modprobe --dry-run, e visualizar informações detalhadas sobre um módulo específico com modinfo. Essas técnicas são cruciais para entender quais componentes do kernel estão ativos e gerenciar as dependências dos módulos em seu sistema.
Listar módulos carregados com lsmod
Nesta etapa, você aprenderá como listar os módulos do kernel atualmente carregados usando o comando lsmod.
O kernel Linux é o núcleo do sistema operacional. Ele gerencia os recursos do sistema e fornece uma ponte entre o hardware e o software. Os módulos do kernel são pedaços de código que podem ser carregados e descarregados no kernel sob demanda. Eles estendem a funcionalidade do kernel sem exigir uma reinicialização do sistema. Isso é particularmente útil para adicionar suporte a novos hardwares ou sistemas de arquivos.
Para ver quais módulos estão atualmente carregados no kernel, abra seu terminal e digite o seguinte comando:
lsmod
Pressione Enter.
Você verá uma lista de módulos, seus tamanhos e quantos outros módulos os estão usando. A saída será semelhante a esta (a lista exata variará dependendo do sistema e dos drivers carregados):
Module Size Used by
fuse 143360 3
snd_seq_midi 20480 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 40960 1 snd_seq_midi
snd_seq 77824 3 snd_seq_midi,snd_seq_midi_event,snd_rawmidi
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
... (many more lines)
Vamos detalhar as colunas:
Module: O nome do módulo do kernel.Size: O tamanho do módulo em bytes.Used by: O número de outros módulos que estão atualmente usando este módulo. Se este número for 0, o módulo não está sendo usado por nenhum outro módulo no momento.
Este comando é essencial para entender quais drivers e componentes do kernel estão ativos em seu sistema.
Agora, tente executar o comando lsmod em seu terminal.
Clique em Continuar para prosseguir para a próxima etapa.
Verificar o status do módulo com modprobe --dry-run
Nesta etapa, você aprenderá como usar o comando modprobe com a opção --dry-run para verificar se um módulo pode ser carregado e de quais outros módulos ele depende, sem realmente carregá-lo.
O comando modprobe é usado para adicionar ou remover módulos do kernel Linux. Ele é mais sofisticado do que os comandos mais antigos insmod e rmmod porque entende as dependências dos módulos. Quando você tenta carregar um módulo com modprobe, ele carregará automaticamente quaisquer outros módulos que o módulo solicitado exigir.
A opção --dry-run é muito útil para testes. Ela diz ao modprobe para passar pelo processo de resolução de dependências e verificar se o módulo pode ser carregado, mas não carregará o módulo no kernel. Isso permite que você veja se há algum problema ou dependência ausente antes de fazer alterações no sistema em execução.
Vamos tentar verificar o status de um módulo comum, por exemplo, o módulo fuse, que é frequentemente usado para sistemas de arquivos em espaço do usuário (user-space filesystems).
Digite o seguinte comando em seu terminal:
modprobe --dry-run fuse
Pressione Enter.
Se o módulo fuse e suas dependências estiverem disponíveis, você poderá ver uma saída semelhante a esta:
modprobe: INFO: could not insert 'fuse': File exists
Esta saída indica que o módulo fuse provavelmente já está carregado (como visto na etapa anterior com lsmod), e modprobe está relatando que não pode inseri-lo novamente porque ele já existe. A opção --dry-run ainda realiza a verificação de dependência mesmo que o módulo já esteja carregado.
Se o módulo não estivesse carregado e pudesse ser carregado, a saída poderia estar vazia ou indicar os módulos que seriam carregados. Se houvesse problemas, modprobe os relataria aqui.
Usar --dry-run é uma maneira segura de testar o carregamento do módulo sem afetar o estado do seu sistema.
Agora, tente executar o comando modprobe --dry-run fuse você mesmo.
Clique em Continuar para prosseguir.
Visualizar detalhes do módulo com modinfo
Nesta etapa, você aprenderá como obter informações detalhadas sobre um módulo específico do kernel usando o comando modinfo.
Enquanto lsmod mostra quais módulos estão carregados, modinfo fornece muito mais detalhes sobre um arquivo de módulo, esteja ele carregado ou não. Essas informações incluem o autor do módulo, descrição, licença, parâmetros e dependências.
Vamos usar modinfo para inspecionar o módulo fuse novamente.
Digite o seguinte comando em seu terminal:
modinfo fuse
Pressione Enter.
Você verá uma saída abrangente sobre o módulo fuse, semelhante a esta:
filename: /lib/modules/5.15.0-113-generic/kernel/fs/fuse/fuse.ko
license: GPL
description: Filesystem in Userspace
author: Miklos Szeredi <miklos@szeredi.hu>
alias: devname:fuse
alias: char-major-10-229
alias: fs-fuse
depends:
retpoline: Y
intree: Y
name: fuse
vermagic: 5.15.0-113-generic SMP mod_unload modversions
sig_id: PKCS#7
signer: Ubuntu Kernel Module Signing Authority
sig_key: ...
sig_hashalgo: sha512
signature: ...
parm: max_user_bgreq:Maximum number of pending background requests (uint)
parm: max_user_cong_req:Maximum number of pending congested background requests (uint)
parm: max_user_inline_write:Maximum size of inline write data (uint)
Vamos analisar alguns dos campos-chave:
filename: O caminho para o arquivo do módulo no sistema de arquivos.license: A licença sob a qual o módulo é distribuído (por exemplo, GPL).description: Uma breve descrição do que o módulo faz.author: O(s) autor(es) do módulo.depends: Uma lista de outros módulos dos quais este módulo depende.parm: Informações sobre os parâmetros que podem ser passados para o módulo quando ele é carregado para modificar seu comportamento.
modinfo é uma ferramenta inestimável para solucionar problemas relacionados a módulos ou simplesmente aprender mais sobre os componentes do seu kernel Linux.
Agora, tente executar o comando modinfo fuse você mesmo para ver os detalhes do módulo fuse.
Clique em Continuar para finalizar este laboratório.
Resumo
Neste laboratório, você aprendeu como verificar o status dos módulos do kernel no Linux. Você começou usando o comando lsmod para listar todos os módulos do kernel atualmente carregados, compreendendo as colunas de saída que mostram o nome do módulo, tamanho e contagem de uso.
Em seguida, você explorou o comando modprobe com a opção --dry-run para simular o carregamento de um módulo e identificar suas dependências sem realmente carregá-lo. Finalmente, você aprendeu como usar o comando modinfo para visualizar informações detalhadas sobre um módulo específico do kernel, incluindo sua descrição, autor, licença e parâmetros. Esses comandos são ferramentas fundamentais para gerenciar e solucionar problemas de módulos do kernel em um sistema Linux.



