Inicio
» LINUX
»
Cómo solucionar el problema de los controladores NVIDIA que no se cargan después de una actualización del kernel en Ubuntu.
Cómo solucionar el problema de los controladores NVIDIA que no se cargan después de una actualización del kernel en Ubuntu.
Una actualización del kernel de Ubuntu puede provocar que un sistema NVIDIA arranque con normalidad, aunque el controlador propietario deje de cargarse. Los síntomas visibles varían: nvidia-smipuede indicar que no puede comunicarse con el controlador, las aplicaciones CUDA pueden dejar de detectar la GPU, el escritorio puede recurrir al renderizado por software o modprobe nvidiapuede fallar. La solución práctica consiste en identificar qué componente se ha dañado en lugar de reinstalar todo a la vez.
Esta referencia se centra en los controladores NVIDIA incluidos en Ubuntu y en las directrices actuales de Canonical. A partir de octubre de 2026, Ubuntu recomienda la ubuntu-driversherramienta o la aplicación Controladores adicionales para la mayoría de los sistemas y recomienda módulos del kernel precompilados y firmados cuando estén disponibles. La documentación de NVIDIA para Ubuntu también es compatible con Ubuntu 22.04, 24.04 y 26.04, pero la nomenclatura de los paquetes difiere en las ramas más recientes, por lo que no copie el número de rama de un ejemplo a menos que esté disponible para su máquina.
Lista de verificación para un diagnóstico rápido
Controlar
Dominio
Lo que te dice
Ejecutando kernel
uname -r
La ABI del kernel exacta que necesita un módulo NVIDIA compatible.
Estado del conductor
nvidia-smi
Si el espacio de usuario puede comunicarse con el módulo del kernel de NVIDIA cargado.
Módulos cargados
lsmod | grep -E 'nvidia|nouveau'
Si NVIDIA o Nouveau son los propietarios actuales de la GPU.
Paquete recomendado
sudo ubuntu-drivers list
Las ramas de controladores que Ubuntu considera apropiadas para el hardware.
Arranque seguro
mokutil --sb-state
Si los módulos del kernel de terceros sin firmar pueden ser rechazados.
Pistas útiles para detectar discrepancias en la API, rechazo de firmas o fallos en las sondas.
Un patrón típico de fallo tras una actualización: el nuevo kernel se está ejecutando, pero el módulo NVIDIA no se carga. Las versiones exactas del kernel y los controladores en su sistema pueden variar.
1. Confirme que el problema comenzó con el kernel actual.
Primero, registra el kernel en ejecución y el estado actual de NVIDIA:
Si nvidia-smifalla y no nvidiaaparecen módulos en lsmod, el fallo se encuentra por debajo de la capa de CUDA o de la aplicación de escritorio. Si nvidia-smiinforma Failed to initialize NVML: Driver/library version mismatch, Canonical documenta esto como una discrepancia entre el espacio de usuario y el módulo del kernel que suele ocurrir después de una actualización del controlador; un reinicio puede ser suficiente si el nuevo módulo ya está instalado.
Si aún puedes seleccionar un kernel antiguo desde GRUB y el controlador funciona correctamente, esto indica claramente que el nuevo kernel carece de un módulo NVIDIA utilizable. Un kernel antiguo es una solución temporal útil, pero no es la solución definitiva, ya que aún necesitas que el kernel actual y la pila de controladores sean compatibles.
2. Pregúntale a Ubuntu qué rama de controladores recomienda.
En un equipo de escritorio o estación de trabajo Ubuntu estándar, utilice la lógica de selección de controladores propia de Ubuntu en lugar de intentar adivinar una rama:
sudo apt update
sudo ubuntu-drivers list
Para la mayoría de los sistemas de escritorio y de juegos, Canonical recomienda el controlador UDA estándar en lugar de un -serverpaquete. En servidores de computación, siga las instrucciones para servidores ubuntu-drivers list --gpgpucuando corresponda. Si su sistema se instaló previamente con .runel instalador independiente de NVIDIA o un repositorio de terceros, mezclar fuentes de paquetes puede dificultar el diagnóstico. Canonical advierte explícitamente que los controladores instalados fuera de sus métodos documentados pueden sobrescribir componentes proporcionados por Ubuntu e interferir con el arranque seguro.
Utilice la función de detección de controladores de Ubuntu para identificar la rama adecuada para la GPU instalada, en lugar de codificar una versión de otra máquina.
3. Compruebe el arranque seguro antes de reconstruir nada.
El arranque seguro es una causa frecuente de que un módulo NVIDIA exista en el disco pero no se cargue. Compruebe su estado:
mokutil --sb-state
sudo modprobe nvidia
Si Secure Boot está habilitado y modprobedevuelve un mensaje como este Key was rejected by service, el kernel está aplicando la confianza en los módulos. Ubuntu ha aplicado la validación de módulos del kernel bajo Secure Boot en las versiones amd64 compatibles durante años. Canonical prefiere usar módulos NVIDIA precompilados y firmados cuando estén disponibles. Si usa DKMS intencionalmente, Ubuntu podría requerir que se cree y registre una clave de propietario de máquina (MOK) al reiniciar.
No desactive el arranque seguro como primer paso para solucionar el problema. Puede ser un breve experimento de diagnóstico en un entorno controlado, pero la mejor solución suele ser instalar un módulo firmado o registrar correctamente el MOK. Canonical documenta el proceso de registro en su documentación de arranque seguro UEFI .
El rechazo de la firma apunta a un problema de confianza en Secure Boot, en lugar de a la falta de una GPU. Resuelva la firma del módulo o la inscripción en MOK en lugar de reinstalar repetidamente las bibliotecas del espacio de usuario.
4. Compruebe si existe el módulo NVIDIA correspondiente para el kernel en ejecución.
Los paquetes NVIDIA precompilados de Ubuntu están vinculados a una ABI del kernel. Reemplazar DRIVER_BRANCHcon la rama que se muestra en ubuntu-drivers list:
Si el paquete está instalado para el kernel actual, continúe con las comprobaciones de arranque seguro, Nouveau y registro que se describen a continuación. Si no está instalado, instale el paquete de módulo correspondiente:
Canonical también admite la instalación del metapackage de variante, por ejemplo linux-modules-nvidia-${DRIVER_BRANCH}-generic, lo que ayuda a que las futuras actualizaciones del kernel incluyan los módulos NVIDIA correspondientes. El nombre exacto del paquete depende de tu versión de Ubuntu, variante del kernel, rama del controlador y si utilizas una variante de servidor, así que verifica el candidato que muestra APT antes de confirmarlo.
Comprobar la política de paquetes ayuda a distinguir entre un módulo NVIDIA específico del kernel que falta y un problema con el controlador del espacio de usuario.
5. Si utiliza DKMS, asegúrese de que los encabezados del kernel actuales estén presentes.
DKMS compila un módulo para el kernel exacto que estás utilizando. Por lo tanto, necesita los encabezados del kernel correspondientes. Canonical recomienda DKMS principalmente cuando no hay módulos precompilados disponibles, como ocurre con algunos kernels personalizados.
sudo apt install linux-headers-$(uname -r)
dkms status
Si la entrada de NVIDIA DKMS no muestra una compilación exitosa para el kernel actual, inspeccione el registro de compilación /var/lib/dkms/antes de intentar eliminar paquetes al azar. Los fallos típicos incluyen encabezados faltantes, combinaciones de compilador/kernel no compatibles o un problema de firma de módulo. Después de corregir el requisito previo, reinstale el paquete DKMS apropiado o use la ruta automatizada de Ubuntu:
sudo ubuntu-drivers install --include-dkms
Utilice ese comando únicamente cuando DKMS sea realmente necesario. La documentación actual de Canonical para escritorio indica que los módulos precompilados son la opción preferida para la mayoría de los usuarios, especialmente con Secure Boot.
Se requieren encabezados de kernel coincidentes cuando DKMS debe compilar un módulo NVIDIA para el kernel actual.
6. Instale el módulo precompilado que falte cuando esté disponible.
Si el paso 4 mostró que el kernel actual carece del módulo NVIDIA precompilado, instálelo explícitamente y deje que APT reconstruya el initramfs:
Luego, verifique que APT se haya completado sin errores de dependencia. Evite forzar la instalación del paquete con dpkg --force-*; esto puede dejar el módulo del kernel, las bibliotecas del espacio de usuario y el metapackage en versiones incompatibles.
Si no está seguro de qué rama utilizar, la reparación general más segura es:
sudo ubuntu-drivers install
Canonical indica que ubuntu-driversutiliza la misma lógica que la aplicación Controladores adicionales y, por defecto, elige controladores firmados precompilados que se sabe que funcionan con Secure Boot.
La instalación del paquete de módulos específico del kernel soluciona el problema común en el que la rama del controlador está presente, pero el nuevo kernel carece de su módulo NVIDIA correspondiente.
7. Reinicie después de realizar cambios en los paquetes.
En este caso, reiniciar el sistema no es un mero trámite. El núcleo en ejecución puede mantener un módulo NVIDIA antiguo en memoria, mientras que APT ya ha actualizado las bibliotecas de espacio de usuario en el disco. Canonical documenta específicamente este comportamiento como la causa de una discrepancia en la versión del controlador/biblioteca NVML tras las actualizaciones.
sudo reboot
Tras reiniciar, no reinstale inmediatamente. Primero verifique el resultado con los comandos de la siguiente sección.
Tras realizar cambios en el controlador o en el módulo del kernel, reinicie el sistema para que el kernel cargue el módulo NVIDIA recién instalado y los componentes del espacio de usuario vuelvan a la misma versión.
Una reparación exitosa presenta tres indicadores útiles: nvidia-smimuestra la GPU, lsmodlos módulos NVIDIA e /proc/driver/nvidia/versioninforma la versión del módulo en ejecución. Para cargas de trabajo CUDA, vuelva a ejecutar la aplicación o el marco de trabajo que falló anteriormente; nvidia-smiesto demuestra la comunicación del controlador, no la compatibilidad de todas las bibliotecas CUDA en su entorno.
Estado final correcto: nvidia-smi puede comunicarse con la GPU y los módulos del kernel de NVIDIA están cargados. Los valores mostrados son un ejemplo, no una versión obligatoria.
Si aún así falla: utilice el síntoma para elegir la siguiente acción.
“Incompatibilidad entre la versión del controlador y la de la biblioteca”
Primero, reinicie el sistema. Luego, compare la versión del módulo del kernel en ejecución con los paquetes instalados. Canonical indica que los componentes del espacio de usuario actualizados pueden presentar discrepancias temporales con un módulo antiguo que aún se encuentra cargado en memoria. Si la discrepancia persiste después del reinicio, verifique si existen fuentes de paquetes mixtas y múltiples ramas de controladores.
“No se encontraron dispositivos” y Nouveau está cargado.
Controlar:
lsmod | grep nouveau
La documentación del servidor Ubuntu indica que Nouveau puede entrar en conflicto con el controlador propietario de NVIDIA en esta situación. Si Nouveau está cargado y se pretende utilizar el controlador propietario, Canonical documenta cómo bloquearlo y reconstruir el initramfs:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot
No bloquees Nouveau simplemente porque esté en el disco; primero confirma que esté cargado y que sea relevante para el fallo.
modprobe nvidiadice que la llave fue rechazada
Regrese a la ruta de arranque seguro. Utilice módulos Ubuntu firmados siempre que sea posible, o complete la inscripción MOK para un módulo DKMS. Reinstalar repetidamente el mismo módulo sin firmar no modificará la decisión de confianza.
El nuevo kernel no tiene un paquete de módulos compatible.
Inicie temporalmente un kernel antiguo que funcione correctamente, mantenga el sistema actualizado y compruebe si Ubuntu proporciona un módulo precompilado compatible con el kernel más reciente. Si va a usar un kernel personalizado, DKMS podría ser una opción adecuada, pero revise su registro de compilación y confirme la firma de Secure Boot. Evite mantener un kernel antiguo de forma permanente a menos que tenga un plan de mantenimiento para las actualizaciones de seguridad.
Instrucciones para recopilar información antes de pedir ayuda.
Estos comandos proporcionan un paquete de diagnóstico compacto sin modificar el sistema:
Incluye la versión de Ubuntu (de lsb_release -ao ) /etc/os-release, el kernel exacto (de uname -r) y si el controlador se instaló originalmente mediante paquetes de Ubuntu, el repositorio de NVIDIA, un PPA o el instalador independiente. Estos detalles suelen ser más importantes que la afirmación genérica de que «el controlador dejó de funcionar después de una actualización».
Prevención práctica
ubuntu-driversPara sistemas de escritorio normales, se recomienda utilizar el flujo de trabajo de Ubuntu o el de controladores adicionales.
Mantén instalado el metapackage del kernel correspondiente para que las futuras actualizaciones del kernel puedan incluir módulos NVIDIA compatibles.
Reinicie el sistema después de actualizar el kernel o los controladores de NVIDIA, en lugar de continuar con una configuración mixta de almacenamiento en memoria y en disco.
Mantén disponible al menos un kernel que funcione correctamente hasta que hayas confirmado que el nuevo arranca con el controlador de la GPU.
Evite mezclar paquetes de Ubuntu, PPA, el instalador independiente de NVIDIA y múltiples repositorios, a menos que gestione intencionadamente las consecuencias.
La rama exacta del controlador, la ABI del kernel y los nombres de los paquetes dependen de la versión. Siempre sustituya los valores que le indique su sistema y APT en lugar de considerar las versiones de ejemplo como universales.