Qual é a diferença entre insmod e modprobe?

Qual é a diferença entre insmod e modprobe?

Existem diferenças entre insmod e modprobe?

Responder1

modprobelê os módulos /lib/modules/$(uname -r)/modules.dep.bin(ou sem o .binsufixo se o outro arquivo não estiver disponível). Do mesmo arquivo, as dependências são carregadas.

modprobeaceita o nome de um .koarquivo /lib/modules/$(uname -r)(por exemplo, nvidia-currentpara o arquivo dkms/nvidia-current.ko) e aliases ( modules.alias.bin). Builtins ( modules.alias.bin) também são reconhecidos, mas como esses módulos são carregados por padrão, não faz sentido testar esse tipo de módulo.

insmodpor outro lado, aceita caminhos para arquivos. O módulo não precisa residir em /lib/modules/$(uname -r), mas as dependências não são carregadas automaticamente. Este é o programa inferior usado modprobepara carregar módulos.

Outros programas relacionados aos módulos são rmmode modinfo.

rmmodremove um nome de kernel baseado no nome do arquivo /proc/modules. Este nome não precisa necessariamente ser igual ao passado modprobe(para o nvidia-currentarquivo, nvidiapor exemplo).

modinfoaceita um nome de arquivo ou o nome do arquivo sem .kosufixo em /lib/modules/$(uname -r).

Responder2

Por man insmod:

A maioria dos usuários preferirá usar o modprobe, que é mais inteligente e pode lidar com dependências de módulos.

Responder3

modprobeé um comando inteligente, que procura dependências ao carregar um módulo. Suponha que, se eu carregasse um módulo que possui símbolos definidos em algum outro módulo (o caminho deste módulo é fornecido dentro do módulo principal). Então, modprobecarrega o módulo principal e o módulo dependente.

Mas se insmodfor usado, não carregará a dependência e, portanto, causará erros de compilação como Unresolved symbols. Neste caso, temos que procurar manualmente os módulos dependentes e carregá-los para resolver os erros.

Responder4

O comando modprobe oferece mais recursos do que os utilitários mais básicos insmod e rmmod. modprobe adiciona ou remove de forma inteligente um módulo do kernel Linux. Observe que, por conveniência, não há diferença entre _ e - nos nomes dos módulos (a conversão automática de sublinhado é executada). modprobe procura no diretório do módulo /lib/modules/ uname -rtodos os módulos e outros arquivos, exceto os arquivos de configuração opcionais no diretório /etc/modprobe.d (algumas distribuições usam o arquivo /etc/modprobe.conf).

saber mais

informação relacionada