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

24

Eu tenho um módulo de terceiros para usar um captador de quadros. Fiz o download da fonte do kernel, segui as instruções do fornecedor para compilá-la e tenho 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 está carregado, mas apenas até a próxima inicialização. O script não usa modprobe. Eu posso acessar o captador de quadros quando o módulo está instalado.

Parece-me que o modprobe mantém uma lista de muitos módulos. Pode-se editar o / 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 informar o modprobe sobre o módulo? Ele precisa ser copiado para um novo local e, em caso afirmativo, para onde?

Nate Lockwood
fonte
Finalmente, descobri que o problema que tive depois de encontrar a maneira "correta" foi que o fornecedor esqueceu de incluir um script de inicialização adicional para que o driver fosse carregado na inicialização, mas falhou.
Nate Lockwood
Aqui está uma visão geral do processo de instalação do módulo out-of-árvore sem a inicialização automática instalar parte: stackoverflow.com/questions/22783793/...
Ciro Santilli新疆改造中心法轮功六四事件

Respostas:

32

Usando sudo:

  1. Edite o /etc/modulesarquivo e adicione o nome do módulo (sem a .koextensão) 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. Corra depmod. Isso encontrará todas as dependências do seu módulo.

  4. Nesse ponto, reinicializei e, em seguida, corro lsmod | grep module-namepara confirmar que o módulo foi carregado na inicialização.

Consulte as páginas de manual para modprobe , lsmod e depmod para obter mais informações.

Nate Lockwood
fonte
3
Eu segui suas instruções, mas nada funcionou até o fornecedor fornecer algum código depurado !!! Sua resposta é completa, simples e acredito que teria funcionado se não houvesse erros de fornecedor. Sim, eu aceito.
Nate Lockwood