'Erro! Não foi possível localizar o arquivo dkms.conf

33

Durante uma recente apt-get dist-upgrade de 12,10 recebi o seguinte erro:

Setting up linux-headers-3.5.0-19-generic (3.5.0-19.30) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 3.5.0-19-generic /boot/vmlinuz-3.5.0-19-generic
Error! Could not locate dkms.conf file.
File:  does not exist.

Alguma idéia?

    
por Andrew Tomazos 09.12.2012 / 21:22

4 respostas

26

Eu tenho conseguido isso em atualizações de kernel por um tempo, com o resultado que nem todos os meus dkms drivers são atualizados em atualizações de kernel.

Primeiramente eu pude contornar o problema reconfigurando quaisquer pacotes que usaram dkms para forçá-los a serem recompilados para o kernel atual - por exemplo, meus drivers de vídeo AMD falharam (package == fglrx ):

sudo dpkg-reconfigure fglrx

Isso pelo menos teria os drivers configurados para a versão atual.

Finalmente eu encontrei este bug, que inclui algumas etapas que você pode usar para diagnosticar: link

dkms status
ls -R /var/lib/dkms
Basicamente, o que eles estão fazendo é procurar algo surpreendente ou inesperado - por exemplo, pacotes que você desinstalou - ou software que você instalou manualmente em uma versão anterior do Ubuntu e pode não funcionar com a versão mais recente. Particularmente, verifique o carimbo de data nos diretórios que podem mostrar que pacotes particularmente antigos podem ser de pacotes instalados manualmente.

ls -l /var/lib/dkms

No meu caso, eu tinha uma versão antiga do fglrx install que eu usei para diagnosticar alguns problemas há um ano e simplesmente o renomei. A exclusão dessa velha sujeira fez com que o problema desaparecesse.

Se houver lixo, exclua-o (ou mova-o para fora desse diretório) - se houver um pacote instalado manualmente, considere atualizá-lo ou desinstalá-lo e usar a versão mantida.

    
por Greg 23.12.2012 / 01:11
18

Isso geralmente é causado por módulos em /var/lib/dkms que não têm um arquivo dkms.conf em seus subdiretórios de origem - dkms espera esse arquivo, portanto, informará um erro se estiver faltando e, em seguida, poderá perder compilando alguns módulos válidos.

Para encontrar o módulo problemático, execute este script curto (graças a Lekensteyn ):

for i in /var/lib/dkms/*/[^k]*/source; do [ -e "$i" ] || echo "$i";done

Isso gerará quaisquer diretórios do módulo dkms; você pode decidir se deseja desinstalar o pacote que os criou ou se eles foram manualmente instalados ou renomeados, para movê-los para outro local ou removê-los.

    
por David Fraser 16.06.2015 / 01:43
13

Eu tive esse problema com o VirtualBox do ppa da Oracle, ao invés do pacote com o 12.04 LTS:

Error! Could not locate dkms.conf file.
File:  does not exist.

Eu copiei o conteúdo de / var / lib / dkms para outro diretório como backup, depois removi o diretório vboxhost em / var / lib / dkms;

mkdir ~/backup_dkms
cp -r /var/lib/dkms/* ~/backup_dkms 
rm -rf /var/lib/dkms/vboxhost

Eu reconfigurei o pacote virtualbox assim:

sudo dpkg-reconfigure virtualbox-4.2

e conseguiu fazer isso:

   * Trying to register the VirtualBox kernel modules using DKMS
    
por Ian Ohr 03.12.2013 / 13:29
7

Eu também sofria desse problema há muito tempo. Eu preciso reinstalar o driver NVIDIA cada vez após a atualização e reinicialização do kernel. Recentemente, comecei a investigar esse problema. Na verdade, meu problema é que há várias pastas de módulo com o mesmo prefixo nvidia- em /usr/src/ e várias pastas com números de versão diferentes em /var/lib/dkms/nvidia . Depois de remover as versões mais antigas, os dois comandos a seguir

    dkms status
    dkms autoinstall

funcionou.

    
por antiquity 03.10.2015 / 05:38

Tags