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

42

Durante uma recente apt-get dist-upgradedas 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 ideia?

Andrew Tomazos
fonte
Sei que essa é uma resposta ruim, mas sempre tenho esse erro e as coisas funcionam bem. Eu acho que dkmsapenas usa as configurações padrão.
9132 MiJyn

Respostas:

28

Eu venho fazendo isso nas atualizações do kernel há um tempo, com o resultado de que nem todos os meus dkmsdrivers são atualizados nas atualizações do kernel.

Primeiramente, pude solucionar o problema reconfigurando todos os pacotes que dkmsos forçavam a serem recompilados para o kernel atual - por exemplo, foram meus drivers de vídeo da AMD que falharam (pacote == fglrx):

sudo dpkg-reconfigure fglrx

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

Finalmente encontrei esse bug, que inclui algumas etapas que você pode usar para diagnosticar: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

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. Verifique particularmente 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 da fglrxinstalação que havia usado para diagnosticar alguns problemas um ano atrás e simplesmente a renomeei. A exclusão desse velho problema fez com que o problema desaparecesse.

Se houver lixo eletrônico, 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.

Greg
fonte
Obrigado por isso, o problema que tive foi com o nvidia-340driver ...
ionreflex
1
Eu tive o mesmo problema comanbox
Aaron Cofield
29

Isso geralmente é causado por módulos nos /var/lib/dkmsquais não há um dkms.confarquivo dentro de seus subdiretórios de origem - dkmsespera esse arquivo, então reportará um erro se estiver faltando e poderá perder a compilação de alguns módulos válidos.

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

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

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

David Fraser
fonte
3
Perfeito. As outras respostas podem se aplicar a instâncias específicas, mas isso rapidamente demonstrou onde estava o problema (e realmente não era um problema, pois certo software estava copiando instalações antigas para um diretório /var/lib/dkms/*.old).
Auspex
Caso a nvidia seja o ofensor, por exemplo, /var/lib/dkms/nvidia/396.24/sourcea saída, verifique se já existem versões mais novas /var/lib/dkms/nvidiae remova a ofensiva.
Flatron
Obrigado! No meu caso, o infrator era um open-vm-toolspacote e, após a remoção, tive que me lembrar de executar apt auto-remove, pois uma dependência estava causando esse problema.
Visão elíptica
14

Eu tive esse problema com o VirtualBox do ppa da Oracle, em vez do que vem com o 12.04 LTS:

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

Copiei o conteúdo de / var / lib / dkms para outro diretório como backup e 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

Em seguida, reconfigurei o pacote de caixa virtual como este:

sudo dpkg-reconfigure virtualbox-4.2

e conseguiu fazer isso:

   * Trying to register the VirtualBox kernel modules using DKMS
Ian Ohr
fonte
1
Acabei de sudo dpkg-reconfigure virtualbox-4.2fazer o trabalho. Obrigado
Sergey
11

Eu também sofria desse problema há muito tempo. Preciso reinstalar o driver NVIDIA todas as vezes após a atualização e a reinicialização do kernel. Recentemente, comecei a investigar esse problema. Na verdade, meu problema é que existem 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. Após remover as versões mais antigas, os dois comandos a seguir

    dkms status
    dkms autoinstall

trabalhou.

antiguidade
fonte
Ele trabalha para mim, mas eu tinha que fazer apt-get install --reinstall dkmse dkms autoinstalldepois do uso de seu método ... e, em seguida, instalar os drivers da nvidia ...
Milor123
só que desta solução ajudou - Certifique-se de correr com sudo
Aryeh Beitz
0

Isso aconteceu comigo uma vez em uma estação de trabalho Red Hat 7.5 com um driver Nvidia. Eu sei que não é o Ubuntu, mas isso pode ajudar alguém ...

Remova os arquivos Nvidia do dkms e reinstale o dkms:

rm -rf /var/lib/dkms/nvidia
yum reinstall dkms

Em seguida, reinstale o driver da Nvidia

./NVIDIA-installer.bin --dkms
reboot

AVISO, isso funcionou para mim, mas pode não ser a maneira correta de fazer as coisas.

Jake
fonte
E funcionou para você no RedHat, não no Ubuntu !!!
Soren A