Os módulos DKMS nunca instalados corretamente no upgrade do kernel

5

Eu tenho vários módulos DKMS instalados no meu sistema, alguns deles meu , e alguns deles pertencentes a grandes pacotes mantidos, como o VirtualBox 5. da Oracle.

O que eu descobri é que em cada atualização do kernel, todos os módulos DKMS são quebrados e não são instalados no novo kernel. Eu pensei que era má configuração em meu nome em meus próprios módulos, mas agora que estou vendo o VirtualBox quebrado também, estou suspeitando que é outra coisa.

Como posso depurar por que o DKMS não está instalando módulos em novas versões de kernel?

Estou no kernel 3.19, Ubuntu 14.04.

Após uma atualização do kernel dkms status não produz nada, o que significa que nenhum dos meus módulos DKMS estão sendo instalados corretamente.

    
por Naftuli Kay 04.12.2015 / 03:21

1 resposta

1

Você perdeu a informação que a distro está usando atualmente. E para que vale a pena, o VirtualBox 5.x também não se registrou corretamente com o dkms para mim, o que significa que, após uma atualização do kernel, esses módulos não seriam reconstruídos pelo dkms.

Para as instruções fornecidas sobre a instalação do DKMS essas etapas apenas tomam cuidado para que o módulo de origem seja instalado em /usr/src/<modulename>-<moduleversion>/ e que o módulo seja construído para o kernel atualmente em execução (ou aquele que é especificado). Se não houver nenhum serviço dkms rodando na inicialização, nenhuma nova versão será compilada se um novo kernel for inicializado pela primeira vez.

Deve ser fácil verificar, todos os módulos que aparecem quando rodar dkms status como root devem ser recriados automaticamente quando você inicializar um novo kernel pela primeira vez e se você tiver os cabeçalhos do kernel para esse kernel instalado. Além disso, o dkms.conf do módulo em questão precisa ter AUTOINSTALL=Y especificado, e o serviço dkms (geralmente /etc/rc.d/init.d/dkms para distribuições mais antigas) reconstruirá esses módulos registrados na próxima inicialização.

Você pode verificar se cada uma dessas condições foi atendida, especialmente que um serviço é executado durante a inicialização, que verificará o status do dkms e criará novos módulos, se necessário? Ele deve ser chamado de dkms ou dkms_autoinstaller ou similar.

Para comparação, é isso que o dkms status output procura aqui com vários módulos binários e fonte instalados para várias versões do kernel:

[doktor5000@Mageia5]─[16:40:27]─[~] sudo dkms status | sort
broadcom-wl, 6.30.223.271-1.mga5.nonfree, 4.1.12-desktop-1.mga5, x86_64: installed 
broadcom-wl, 6.30.223.271-1.mga5.nonfree, 4.1.13-desktop-2.mga5, x86_64: installed 
broadcom-wl, 6.30.223.271-1.mga5.nonfree, 4.1.8-desktop-1.mga5, x86_64: installed 
nvidia-current, 346.96-1.mga5.nonfree, 4.1.12-desktop-1.mga5, x86_64: installed 
nvidia-current, 346.96-1.mga5.nonfree, 4.1.12-desktop-1.mga5, x86_64: installed-binary from 4.1.12-desktop-1.mga5
nvidia-current, 346.96-1.mga5.nonfree, 4.1.13-desktop-2.mga5, x86_64: installed-binary from 4.1.13-desktop-2.mga5
nvidia-current, 346.96-1.mga5.nonfree, 4.1.8-desktop-1.mga5, x86_64: installed 
nvidia-current, 346.96-1.mga5.nonfree, 4.1.8-desktop-1.mga5, x86_64: installed-binary from 4.1.8-desktop-1.mga5
rtl8192cu-fixes, 1.10, 4.1.12-desktop-1.mga5, x86_64: installed 
rtl8192cu-fixes, 1.10, 4.1.13-desktop-2.mga5, x86_64: installed 
rtl8192cu-fixes, 1.10, 4.1.8-desktop-1.mga5, x86_64: installed 
sysdig, 0.2.0-1.mga5, 4.1.13-desktop-2.mga5, x86_64: installed 
virtualbox, 5.0.10-1.mga5, 4.1.12-desktop-1.mga5, x86_64: installed 
virtualbox, 5.0.10-1.mga5, 4.1.13-desktop-2.mga5, x86_64: installed-binary from 4.1.13-desktop-2.mga5
virtualbox, 5.0.8-1.mga5, 4.1.12-desktop-1.mga5, x86_64: installed-binary from 4.1.12-desktop-1.mga5
virtualbox, 5.0.8-1.mga5, 4.1.8-desktop-1.mga5, x86_64: installed-binary from 4.1.8-desktop-1.mga5
    
por 18.12.2015 / 16:43