Como instalar o módulo de terceiros para que seja carregado na inicialização?

15

Eu tenho um módulo de terceiros para usar um frame-grabber. Eu baixei o código-fonte do kernel, segui as instruções do fornecedor para compilá-lo e coloquei o módulo resultante, arvdrv.ko, em uma pasta.

O fornecedor forneceu um script que carrega o módulo no kernel e funciona quando eu o executo; o módulo é carregado, mas apenas até a próxima inicialização. O script não usa modprobe. Eu posso acessar o frame grabber quando o módulo estiver instalado.

Parece-me que o modprobe mantém uma lista de muitos módulos. Pode-se editar / etc / modules para adicionar um nome de módulo e ele será carregado na inicialização, mas o módulo arvdrv não está na lista do modprobe.

Minha pergunta é como deixar o modprobe saber do módulo? Precisa ser copiado para um novo local e, se sim, onde?

    
por Nate Lockwood 24.05.2013 / 23:21

1 resposta

21

Como sudo:

  1. Edite o arquivo /etc/modules e adicione o nome do módulo (sem a extensão .ko) em sua própria linha. Na inicialização, o kernel tentará carregar todos os módulos nomeados neste arquivo.

  2. Copie o módulo para uma pasta adequada em /lib/modules/'uname -r'/kernel/drivers . No meu caso, isso foi /lib/modules/'uname -r'/kernel/drivers/pci . Isso colocará o módulo no banco de dados do modprobe. Não sei se isso pode ser um link.

  3. Execute depmod . Isto encontrará todas as dependências do seu módulo.

  4. Neste ponto, reiniciei e execute lsmod | grep module-name para confirmar que o módulo foi carregado na inicialização.

Veja as man pages de modprobe , lsmod e depmod para mais informações.

    
por Nate Lockwood 12.06.2013 / 18:12