Module desativado após atualização do kernel

0

Eu instalei um módulo, acpi_call , com make && sudo make install . O problema é o módulo não é mais instalado quando eu atualizar o kernel, eu tenho que fazer make install novamente. Por que isso não acontece com os outros módulos e como posso evitar isso?

    
por Marco Sulla 24.09.2016 / 01:14

2 respostas

1

Obrigado a todos, eu resolvi.

Usando o exemplo vinculado pelo CelticWarrior , eu criei este dkms.conf file:

MAKE[0]="make"
CLEAN="make clean"
BUILT_MODULE_NAME[0]=acpi_call
# BUILT_MODULE_LOCATION[0]=./
DEST_MODULE_LOCATION[0]="/extra"
PACKAGE_NAME=acpi_call
PACKAGE_VERSION=1.0
REMAKE_INITRD=yes

DEST_MODULE_LOCATION é obrigatório, conforme documentado em man dkms , apesar do exemplo.

Depois copiei o código-fonte em /usr/src/acpi_call-1.0 e instalei-o com:

sudo dkms install -m acpi_call -v 1.0

Veja também a documentação do kernel.org sobre módulos externos - documenta a maneira correta de crie um makefile para construir e instalar um módulo externo, e ele diz que o local correto para o módulo externo está sob o subdiretório extra .

    
por Marco Sulla 24.09.2016 / 14:33
1

acpi_call não é um programa regular, mas um módulo do kernel. Os módulos do kernel devem ser compilados para uma versão específica do kernel, senão eles são considerados incompatíveis e não serão carregados.

DKMS (Sistema de Gerenciamento Dinâmico de Kernel) irá gerenciar seus módulos de kernel personalizados e recompilá-los dentro da versão atual do kernel em execução e fazê-lo automaticamente sempre que você fizer o download de uma nova versão. Ele também atualizará initrd , que faz parte do processo de bootstrap loader (nick-named boot). Um initrd exclusivo está no diretório /boot de cada versão de kernel exclusiva que você instalou.

Como o CelticWarrior apontou, você pode ler as instruções detalhadas de instalação do Ubuntu em: help.ubuntu.com/ comunidade / DKMS .

A própria página do projeto está em: linux.dell.com/dkms/ e contém alguns links adicionais que você encontrará útil.

Eu usei DKMS para manter EnhanceIO (um HDD para o programa de cache SSD usado anteriormente para servidores do Facebook) atualizado. DKMS compilado automaticamente para várias versões do kernel e funciona muito bem. Preste atenção nas mensagens de erro porque os parâmetros podem mudar entre as versões do kernel e novos patches de código-fonte podem ser necessários em github .

Para os leitores interessados, o pensamento de compilar os módulos do Kernel parece assustador no começo, mas, uma vez que você entrar, você se sentirá confortável.

    
por WinEunuuchs2Unix 24.09.2016 / 02:04