Skip to main content

Tudo sobre o comando Linux / Unix: modprobe

Drivers de dispositivos no Linux 02 - comandos insmod, modprobe, depmod, modinfo (Junho 2026)

Drivers de dispositivos no Linux 02 - comandos insmod, modprobe, depmod, modinfo (Junho 2026)
Anonim

Nome

modprobe - manipulação de alto nível de módulos carregáveis

Sinopse

modprobe -adnqv -C config módulo símbolo = valor …modprobe -adnqv -C config -t tipo padronizarmodprobe -l -C config -t tipo padronizarmodprobe -c -C config modprobe -r -dnv -C config módulo …modprobe -Vh

Opções

-uma, --todos

Cargatodos módulos de correspondência em vez de parar após o primeiro carregamento bem-sucedido.

-c, --showconfig

Mostrar a configuração atualmente usada.

-C, --config config

Use o arquivo config em vez de (o opcional) /etc/modules.conf para especificar a configuração. A variável de ambienteMODULECONF também pode ser usado para selecionar (e sobrescrever) um arquivo de configuração diferente do padrão /etc/modules.conf (ou /etc/conf.modules (descontinuada)).

Quando variável de ambienteUNAME_MACHINE está definido, modutils usará seu valor em vez do campo da máquina a partir do syscall uname (). Isso é principalmente útil quando você está compilando módulos de 64 bits em espaço de usuário de 32 bits ou vice-versa,UNAME_MACHINE para o tipo dos módulos. Os modutils atuais não suportam o modo de construção cruzada completa para módulos, limitando-se a escolher entre as versões de 32 e 64 bits da arquitetura do host.

-d, --depurar

Mostra informações sobre a representação interna da pilha de módulos.

-h, --Socorro

Exibe um resumo das opções e sai imediatamente.

-k, --auto-limpeza

Defina 'autoclean' nos módulos carregados. Usado pelo kernel quando ele chamamodprobe para satisfazer um recurso ausente (fornecido como um módulo). o-q opção está implícita por-k. Estas opções serão automaticamente enviadas parainsmod.

-eu, --Lista

Listar módulos correspondentes.

-n, --exposição

Não execute a ação, apenas mostre o que seria feito.

-q, --quieto

Não reclame sobreinsmod não instalar um módulo. Continue normalmente, mas silenciosamente, com outras possibilidades para o modprobe testar. Esta opção será automaticamente enviada parainsmod.

-r, --remover

Remova o módulo (pilhas) ou faça o autoclean, dependendo se há algum módulo mencionado na linha de comando.

-s, --syslog

Relatório via syslog em vez de stderr. Esta opção será automaticamente enviada parainsmod.

-t moduletype ; --tipo moduletype

Considere apenas módulos deste tipo. O modprobe só vai olhar para os módulos cujo caminho do diretório inclui exatamente " / moduletype / '. moduletype pode incluir mais de um nome de diretório, por exemplo "-t drivers / net "listaria módulos em xxx / drivers / net / e seus subdiretórios.

-v, --verbose

Imprima todos os comandos à medida que eles são executados.

-V, --version

Exibe a versão domodprobe.

Nota:

Os nomes dos módulos não devem conter caminhos (não '/'), nem podem conter o '.o' à direita. Por exemplo, slip é um nome de módulo válido paramodprobe, /lib/modules/2.2.19/net/slip and slip.o são inválidos. Isso se aplica à linha de comando e às entradas na configuração.

Descrição do Comando

omodprobe edepmod Os utilitários são destinados a tornar um kernel modular Linux mais gerenciável para todos os usuários, administradores e mantenedores de distribuição.

Modprobe usa um arquivo de dependência do tipo "Makefile", criado pordepmod, para carregar automaticamente os módulos relevantes do conjunto de módulos disponíveis nas árvores de diretórios predefinidos.

Modprobe é usado para carregar um único módulo, uma pilha de módulos dependentes ou todos os módulos marcados com uma tag especificada.

Modprobe carregará automaticamente todos os módulos base necessários em uma pilha de módulos, conforme descrito pelo arquivo de dependência modules.dep . Se o carregamento de um desses módulos falhar, toda a pilha atual de módulos carregados na sessão atual será descarregada automaticamente.

Modprobe tem duas maneiras de carregar módulos. Uma maneira (o modo de sondagem) tentará carregar um módulo fora de uma lista (definida por padronizar ). Modprobe pára de carregar assim que um módulo é carregado com sucesso. Isso pode ser usado para carregar automaticamente um driver Ethernet fora de uma lista. O outro jeitomodprobe pode ser usado é carregartodos módulos de uma lista. VejoEXEMPLOS, abaixo.

Com a opção-r, o modprobe descarregará automaticamente uma pilha de módulos, semelhante ao modo "rmmod -r"faz. Note que usando apenas"modprobe -r"limpará os módulos autoloaded não utilizados e também executará os comandos de pré e pós-remoção no arquivo de configuração /etc/modules.conf .

A combinação das opções-eu e-t lista todos os módulos disponíveis de um determinado tipo.

Opção-c imprimirá a configuração atualmente usada (padrão + arquivo de configuração).

Configuração

O comportamento demodprobe (edepmod) pode ser modificado pelo arquivo de configuração (opcional) /etc/modules.conf . Para obter uma descrição mais detalhada do que este arquivo pode conter, bem como a configuração padrão usada pordepmod emodprobe, Vejomodules.conf(5).

Note que os comandos de pré e pós-remoçãonão ser executado se um módulo for "autodrenado" pelo kerneld! Procure o suporte para o armazenamento persistente de módulos. Se você quiser usar os recursos de pré e pós-instalação, você terá que desligar o autoclean para o kerneld e colocar algo como a seguinte linha no seucrontab (isso também é usado para sistemas kmod) para fazer o autolimpeza a cada 2 minutos: * / 2 * * * * test -f / proc / modules && / sbin / modprobe -r

Estratégia

A ideia é quemodprobe irá procurar primeiro no diretório contendo módulos compilados para a versão atual do kernel. Se o módulo não for encontrado lá,modprobe irá procurar no diretório comum à versão do kernel (por exemplo, 2.0, 2.2). Se o módulo ainda for encontrado,modprobe irá procurar no diretório que contém os módulos de uma versão padrão, e assim por diante.

Quando você instala um novo linux, os módulos devem ser movidos para um diretório relacionado ao release (e versão) do kernel que você está instalando. Então você deve fazer um symlink deste diretório para o diretório "default".

Cada vez que você compila um novo kernel, o comando "make modules_install"criará um novo diretório, mas não alterará o link" padrão ".

Quando você obtém um módulo não relacionado à distribuição do kernel, você deve colocá-lo em um dos diretórios independentes da versão em / lib / modules .

Esta é a estratégia padrão, que pode ser substituída em /etc/modules.conf .

Exemplos

modprobe -t net

Carregue um dos módulos que estão armazenados no diretório marcado "net". Cada módulo é tentado até que um seja bem sucedido.

modprobe -a -t boot

Todos os módulos armazenados em diretórios marcados como "boot" serão carregados.

deslizamento modprobe

Isso tentará carregar o módulo slhc.o se ele não foi carregado anteriormente, uma vez que o módulo slip requer a funcionalidade no módulo slhc. Esta dependência será descrita no arquivo modules.dep que foi criado automaticamente pordepmod.

modprobe -r slip

Isso descarregará o módulo de deslizamento. Ele também descarregará o módulo slhc automaticamente, a menos que seja usado por outro módulo (por exemplo, ppp).

Veja também:

depmod (8),lsmod(8), Kerneld(8), ksyms(8), rmmod(8).

Modo de segurança

Se o uid eficaz não é igual ao uid real, entãomodprobe trata sua entrada com extrema suspeita. O último parâmetro é sempre tratado como um nome de módulo, mesmo que comece com '-'. Só pode haver um nome de módulo e as opções do formulário "variável = valor" são proibidas. O nome do módulo é sempre tratado como uma string, nenhuma expansão meta é executada no modo de segurança. No entanto, a expansão meta ainda é aplicada aos dados lidos no arquivo de configuração.

euid pode não ser igual a uid quando o modprobe é invocado a partir do kernel, isto é verdade para os kernels> = 2.4.0-test11. Em um mundo ideal,modprobe poderia confiar no kernel para passar apenas parâmetros válidos para o modprobe. No entanto, pelo menos uma exploração raiz local ocorreu porque o código do kernel de alto nível transmitiu parâmetros não verificados diretos do usuário para o modprobe. Então, o modprobe não confia mais na entrada do kernel.

modprobe define automaticamente o modo de segurança quando o ambiente consiste apenas dessas cadeias

HOME = / TERM = caminho do linux = / sbin: / usr / sbin: / bin: / usr / bin

Isto detecta a execução do modprobe a partir do kernel nos kernels 2.2 através do 2.4.0-test11, mesmo se uid == euid, o que ele faz nos kernels anteriores.

Comandos de registro

Se diretório / var / log / ksymoops existe emodprobe é executado com uma opção que poderia carregar ou excluir um módulo, em seguida, modprobe registrará seu comando e retornará o status em / var / log / ksymoops / `data +% Y% m% d.log` . Não há comutador para desabilitar esse log automático, se você não quiser que ele ocorra, não crie / var / log / ksymoops . Se esse diretório existir, ele deve ser de propriedade root e estar no modo 644 ou 600 e você deve executar o scriptinsmod_ksymoops_clean todo dia mais ou menos.

Utilitários Requeridos

depmod(8), insmod(8).

Importante: Use o homem comando ( % homem ) para ver como um comando é usado em seu computador particular.