`Error! No se pudo encontrar el archivo dkms.conf`

42

Durante un reciente apt-get dist-upgradede 12.10 recibí el siguiente error:

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.

¿Algunas ideas?

Andrew Tomazos
fuente
Sé que esta es una mala respuesta, pero siempre tengo ese error, y las cosas funcionan bien. Supongo que dkmssolo usa la configuración predeterminada.
MiJyn

Respuestas:

28

He estado obteniendo eso en las actualizaciones del kernel por un tiempo, con el resultado de que no todos mis dkmscontroladores se actualizan en las actualizaciones del kernel.

En primer lugar, pude solucionar el problema reconfigurando los paquetes que solían dkmsobligarlos a volver a compilarse para el kernel actual; por ejemplo, fueron mis controladores de video AMD los que fallaron (paquete == fglrx):

sudo dpkg-reconfigure fglrx

Al menos eso configuraría los controladores para la versión actual.

Finalmente encontré este error, que incluye algunos pasos que puede usar para diagnosticar: https://bugs.launchpad.net/ubuntu/+source/dkms/+bug/830915

dkms status
ls -R /var/lib/dkms

Básicamente, lo que están haciendo es buscar cualquier cosa que sea sorprendente o inesperada, por ejemplo, paquetes que haya desinstalado, o software que haya instalado manualmente en una versión anterior de ubuntu y que no funcione con la versión más nueva. En particular, verifique el sello de fecha en los directorios que podría mostrar que los paquetes particularmente antiguos podrían ser de paquetes instalados manualmente.

ls -l /var/lib/dkms

En mi caso, tenía una versión anterior de la fglrxinstalación que había utilizado para diagnosticar algunos problemas hace un año y simplemente la había cambiado de nombre. Eliminar esta vieja ruleta hizo que el problema desapareciera.

Si hay basura, elimínelo (o muévalo fuera de ese directorio); si hay un paquete instalado manualmente allí, considere actualizarlo o desinstalarlo y usar la versión mantenida.

Greg
fuente
Gracias por esto, el problema que tuve fue con el nvidia-340controlador ...
ionreflex
1
Yo tenía el mismo problema conanbox
Aaron Cofield
29

Esto generalmente es causado por módulos /var/lib/dkmsque no tienen un dkms.confarchivo dentro de sus subdirectorios de origen: dkmsespera este archivo, por lo que informará un error si falta, y luego puede perder la compilación de algunos módulos válidos.

Para encontrar el módulo ofensivo, ejecute este breve script (gracias a Lekensteyn ):

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

Eso generará cualquier directorio de módulo dkms; luego puede decidir si desea desinstalar el paquete que los creó, o si se han instalado o renombrado manualmente, para moverlos a otro lugar o eliminarlos.

David Fraser
fuente
3
Perfecto. Las otras respuestas pueden aplicarse a instancias específicas, pero esto demostró rápidamente dónde estaba el problema (y realmente no fue un problema, ya que cierto software estaba copiando instalaciones antiguas en un directorio /var/lib/dkms/*.old).
Auspex
En caso de que nvidia sea el infractor, por ejemplo, /var/lib/dkms/nvidia/396.24/sourcela salida, verifique que ya haya versiones más nuevas /var/lib/dkms/nvidiay elimine la infractora.
Flatron
¡Gracias! En mi caso, el infractor eran open-vm-toolspaquetes, y después de la purga tuve que recordar ejecutar apt auto-remove, ya que una dependencia estaba causando este problema.
Vista elíptica
14

He tenido este problema con VirtualBox del ppa de Oracle, en lugar del que viene con 12.04 LTS:

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

Copié el contenido de / var / lib / dkms en otro directorio como copia de seguridad, luego eliminé el directorio vboxhost en / var / lib / dkms;

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

Luego reconfiguré el paquete virtualbox de esta manera:

sudo dpkg-reconfigure virtualbox-4.2

y logró hacer esto:

   * Trying to register the VirtualBox kernel modules using DKMS
Ian Ohr
fuente
1
Acabo de sudo dpkg-reconfigure virtualbox-4.2hacer el trabajo. Gracias
Sergey
11

También sufrí este problema durante mucho tiempo. Necesito reinstalar el controlador NVIDIA cada vez después de la actualización del kernel y reiniciar. Recientemente, comencé a investigar este problema. En realidad, mi problema es que hay varias carpetas de módulos con el mismo prefijo nvidia-debajo /usr/src/y varias carpetas con diferentes números de versión debajo /var/lib/dkms/nvidia. Después de eliminar las versiones anteriores, los dos comandos siguientes

    dkms status
    dkms autoinstall

trabajó.

antigüedad
fuente
Funcionó para mí, pero tuve que hacer apt-get install --reinstall dkmsy dkms autoinstalldespués de usar su método ... y luego instalar los controladores de nvidia ...
Milor123
solo esta solución ayudó - asegúrate de correr con sudo
Aryeh Beitz
0

Esto me sucedió una vez en una estación de trabajo Red Hat 7.5 con un controlador Nvidia. Sé que no es Ubuntu, pero esto puede ayudar a alguien ...

Elimine los archivos de Nvidia de dkms y luego reinstale dkms:

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

Luego reinstale el controlador Nvidia

./NVIDIA-installer.bin --dkms
reboot

ADVERTENCIA, esto funcionó para mí, pero puede que no sea la forma correcta de hacer las cosas.

Jake
fuente
¡Y funcionó para ti en RedHat, no en Ubuntu!
Soren A