Tutorial do Debian ModProbe

Tutorial do Debian ModProbe
Os módulos são um pedaço de código que estende a funcionalidade do kernel Linux. Um módulo no Linux também é conhecido como módulo Linux Kernel. A melhor coisa dos módulos do Linux é que eles podem ser adicionados ou removidos em tempo real. Isso significa que você pode adicionar ou remover módulos no Linux sem a necessidade de reiniciar seu computador.

Existem módulos para o seu hardware gráfico (GPU), diferentes sistemas de arquivos (como ext4, zfs, btrfs), hardwares de rede, exibição, teclado e dispositivos de entrada diferentes e muitos outros mais.

Neste artigo, vou mostrar como usar modProbe para gerenciar módulos de kernel na distribuição Debian GNU/Linux. Vou usar o Debian 9 Stretch para a demonstração. Mas deve funcionar em qualquer versão do Debian GNU/Linux. Então vamos começar.

O diretório de módulos padrão:

Todos os módulos do Debian são armazenados é o /lib/módulos/$ (uname -r) diretório.

Os módulos do kernel são armazenados em um núcleo de sub -diretório/. Os módulos do kernel são armazenados em uma ordem hierárquica modular, como você pode ver na captura de tela abaixo.

$ ls/lib/módulos/$ (uname -r)/kernel

Listando todos os módulos de kernel disponíveis:

Você pode listar todos os módulos do kernel em uma estrutura de árvore bem formatada com o seguinte comando:

$ árvore/lib/módulos/$ (uname -r)/kernel

OBSERVAÇÃO: O comando da árvore não está instalado por padrão. Você terá que instalá -lo manualmente com árvore de instalação sudo apt

Como você pode ver, os diretórios e os módulos do kernel estão listados como uma árvore.

É uma lista muito longa. Você também pode passar para um pager, como menos o seguinte para facilitar a navegação pela lista:

$ árvore/lib/módulos/$ (uname -r)/kernel | menos

Agora você pode pressionar o e Chaves de seta para navegar pela lista.

Você pode procurar módulos no menos pager. Apenas pressione / e digite sua palavra -chave de pesquisa.

Agora pressione e seu resultado de pesquisa deve ser exibido como você pode ver na seção marcada da captura de tela abaixo.

Você também pode pressionar n e p para ir para o próximo resultado ou resultado anterior, respectivamente.

Para sair do pager, pressione q.

Listando todos os módulos de kernel carregados:

Você pode listar todos os módulos do kernel que são usados ​​pelo seu sistema operacional Debian com o seguinte comando:

$ lsmod

É uma longa lista. No Módulo coluna (1), você pode ver o nome do módulo do kernel, no Tamanho Coluna (2), você pode ver o tamanho do módulo do kernel em bytes.

O Usado por A coluna (3) é interessante. Esta coluna começa com um número e, opcionalmente, uma lista separada por vírgula de nomes de módulos.

O número determina quantos módulos dependem deste módulo. Se for 0, significa que nenhum outro módulo depende deste módulo. Por exemplo, o pppdev O módulo não é usado por nenhum outro módulo. Então você pode remover ou adicionar com segurança pppdev Módulo do kernel a qualquer momento.

Se é algo diferente de 0, muitos outros módulos dependem deste módulo. Por exemplo, outros 2 módulos dependem de SND_PCM módulo como você pode ver na seção marcada da captura de tela abaixo. Então você não pode remover SND_PCM Módulo, a menos que você remova os módulos que dependem deste módulo. Nesse caso, o SND_AC97_CODEC e SND_ENS1371 Os módulos devem ser removidos para remover SND_PCM módulo.

Obtendo informações sobre o módulo específico do kernel:

Agora que você sabe como listar todos os módulos de kernel disponíveis e os módulos de kernel carregados. Nesta seção, vou mostrar como obter informações sobre qualquer módulo de kernel.

No Debian, você pode usar o Modinfo comando para obter informações sobre qualquer módulo.

Por exemplo, para obter informações sobre o SND_PCM Módulo que vimos anteriormente, execute o seguinte comando:

$ sudo modinfo snd_pcm

Como você pode ver, o caminho do arquivo do módulo, licença, uma breve descrição sobre o módulo SND_PCM, os módulos SND_PCM depende e algumas outras informações estão listadas.

Estes são pedaços essenciais de informações que você precisa conhecer para trabalhar com módulos em Deban. Por exemplo, se você deseja ativar SND_PCM módulo, então você também deve ativar snd e SND-Timer módulos antes de fazer isso. Como SND_PCM depende de snd e SND-Timer. Caso contrário, não funcionará.

Carregando o novo módulo de kernel usando o ModProbe:

Você pode carregar novos módulos de kernel usando o modProbe comando. Por exemplo, digamos, você deseja ativar o BTRFS Módulo de kernel do sistema de arquivos.

Primeiro verifique quais módulos o BTRFS Os módulos de kernel depende de Modinfo do seguinte modo:

$ sudo modinfo btrfs

Como você pode ver, o BTRFS O módulo de kernel depende de RAID6_PG e xor Módulos do kernel.

Vamos verificar se eles estão ativados da seguinte forma:

$ lsmod | Grep Raid6
$ lsmod | grep xor

Como você pode ver, nenhum dos módulos é carregado.

Agora execute os seguintes comandos para carregar RAID6_PQ e xor Módulos de kernel:

$ sudo modprobe raid6_pq
$ sudo modprobe xor

Agora, vamos verificar se os módulos do kernel de dependência são carregados novamente:

$ lsmod | Grep Raid6
$ lsmod | grep xor

Como você pode ver, os módulos do kernel são carregados.

Agora você pode carregar o BTRFS Módulo de kernel com o seguinte comando:

$ sudo modprobe btrfs

Agora vamos verificar se o BTRFS O módulo do kernel é carregado com o seguinte comando:

$ lsmod | Grep btrfs

Como você pode ver, o BTRFS O módulo do kernel é carregado e depende do RAID6_PQ e a xor Módulos do kernel.

A maior parte do tempo modProbe O comando resolverá dependências para você automaticamente. Mas eu mostrei como fazer isso manualmente, porque às vezes você pode precisar fazer dessa maneira. É melhor saber como resolver um problema, pois você pode ter que lidar com isso algum dia.

Removendo módulos com ModProbe:

Você também pode remover módulos com modProbe comando. Se nenhum outro módulo depender do módulo que você deseja remover, o processo é direto.

Por exemplo, para remover o BTRFS Módulo que carreguei anteriormente, execute o seguinte comando:

$ sudo modprobe -r btrfs

O módulo deve ser removido.

Se outros módulos dependem do módulo que você deseja remover, você precisará remover esses módulos antes de remover o módulo desejado.

Isso é basicamente tudo o que você precisa saber sobre o gerenciamento de módulos do kernel no Debian. Obrigado por ler este artigo.