--- title: "Cómo instalar drivers NVIDIA en Ubuntu 24.04 para servidor" description: "Instala los drivers NVIDIA para servidor en Ubuntu 24.04 con ubuntu-drivers, activa el modo de persistencia y comprueba con nvidia-smi que la GPU funciona." category: "Infraestructura de IA y ML" language: es source: https://cubepath.com/es/docs/infraestructura-de-ia-y-ml/instalacion-de-drivers-nvidia-gpu-en-linux updated: 2026-09-25 --- # Cómo instalar drivers NVIDIA en Ubuntu 24.04 para servidor El driver de NVIDIA es la pieza que permite al sistema operativo usar la GPU, y es el requisito previo de CUDA, PyTorch, TensorFlow o cualquier servidor de inferencia. En este tutorial instalarás en Ubuntu 24.04 la rama de drivers para servidor (la que Ubuntu recomienda para cómputo) con la herramienta `ubuntu-drivers`, activarás el modo de persistencia y comprobarás con `nvidia-smi` que la GPU funciona. ## Requisitos previos - Un servidor con Ubuntu 24.04 LTS y al menos una GPU NVIDIA visible para el sistema: un servidor dedicado o una máquina virtual con la GPU asignada por passthrough. - Un usuario no root con privilegios `sudo`. - Acceso a la consola del servidor (KVM, IPMI o la consola web de tu proveedor) por si el arranque falla o necesitas confirmar una clave de Secure Boot. - Sistema actualizado. Instala las actualizaciones pendientes y reinicia si se ha actualizado el kernel: ```bash sudo apt update && sudo apt full-upgrade -y sudo reboot ``` ## Paso 1: Comprobar que el sistema ve la GPU Antes de instalar nada, confirma que la GPU aparece en el bus PCI: ```bash lspci -nn | grep -i nvidia ``` ```output 01:00.0 3D controller [0302]: NVIDIA Corporation AD102GL [L40S] [10de:26b9] (rev a1) ``` Si el comando no devuelve nada, el problema está en el hardware o en la asignación de la GPU a la máquina virtual, no en el driver. Resuélvelo antes de continuar. Comprueba también si hay algún driver cargado. En una instalación limpia verás el driver libre `nouveau` o nada: ```bash lsmod | grep -E 'nvidia|nouveau' ``` ## Paso 2: Elegir la versión del driver Ubuntu publica dos ramas de drivers NVIDIA: las de escritorio y las `-server`, que siguen el ciclo de soporte largo de NVIDIA para centros de datos. Para cargas de cómputo (IA, CUDA, renderizado sin pantalla) usa la rama de servidor. Instala la herramienta de detección y lista los drivers disponibles para uso GPGPU: ```bash sudo apt install ubuntu-drivers-common sudo ubuntu-drivers list --gpgpu ``` ```output nvidia-driver-570-server, (kernel modules provided by linux-modules-nvidia-570-server-generic) nvidia-driver-570-server-open, (kernel modules provided by linux-modules-nvidia-570-server-open-generic) nvidia-driver-580-server, (kernel modules provided by linux-modules-nvidia-580-server-generic) nvidia-driver-580-server-open, (kernel modules provided by linux-modules-nvidia-580-server-open-generic) ``` Las versiones concretas dependen de la fecha y de tu GPU. Para elegir: - **Versión**: la más alta de la lista suele ser la correcta. Si vas a usar una versión concreta de CUDA, comprueba que el driver la soporta: cada versión de CUDA exige un driver mínimo. - **`-open` o no**: las variantes `-open` usan los módulos de kernel de código abierto de NVIDIA, que son los recomendados para GPU de arquitectura Turing o posterior (serie T4, RTX 20xx y más recientes, A100, H100, L40S). Para GPU más antiguas, como Pascal o Volta, usa la variante sin `-open`. Fíjate en que los módulos del kernel vienen en paquetes `linux-modules-nvidia-*` precompilados y firmados por Canonical. Esto evita compilar con DKMS en cada actualización del kernel y funciona con Secure Boot sin pasos extra. ## Paso 3: Instalar el driver La forma más sencilla es dejar que `ubuntu-drivers` instale el driver recomendado para tu GPU junto con sus módulos precompilados: ```bash sudo ubuntu-drivers install --gpgpu ``` Para fijar una versión concreta de la rama de servidor, indícala con el formato `nvidia:-server`: ```bash sudo ubuntu-drivers install --gpgpu nvidia:580-server ``` Si quieres una variante `-open` concreta, instala con `apt` los dos paquetes que aparecen en su línea de la lista del paso anterior: el driver y el paquete de módulos indicado en "kernel modules provided by": ```bash sudo apt install nvidia-driver-580-server-open linux-modules-nvidia-580-server-open-generic ``` En modo GPGPU no se instalan las utilidades de usuario, entre ellas `nvidia-smi`. Instálalas con la misma versión del driver: ```bash sudo apt install nvidia-utils-580-server ``` Comprueba que los paquetes se han instalado: ```bash dpkg -l | grep -E 'nvidia-(driver|utils|compute)' | awk '{print $2, $3}' ``` ```output nvidia-compute-utils-580-server 580.82.07-0ubuntu0.24.04.1 nvidia-driver-580-server-open 580.82.07-0ubuntu0.24.04.1 nvidia-utils-580-server 580.82.07-0ubuntu0.24.04.1 ``` Reinicia para que se descargue `nouveau` y se cargue el módulo de NVIDIA: ```bash sudo reboot ``` > Nota: si el servidor tiene Secure Boot activado y en algún momento instalas módulos compilados con DKMS (por ejemplo, desde el repositorio de NVIDIA), el sistema te pedirá una contraseña de MOK y, en el siguiente arranque, deberás confirmar la clave desde la consola. Con los módulos precompilados de Ubuntu este paso no es necesario. ## Paso 4: Verificar la instalación Tras el reinicio, comprueba que el módulo está cargado y que `nouveau` ya no aparece: ```bash lsmod | grep -E '^nvidia|nouveau' ``` ```output nvidia_uvm 2076672 0 nvidia_drm 135168 0 nvidia_modeset 1720320 1 nvidia_drm nvidia 11759616 2 nvidia_uvm,nvidia_modeset ``` Ejecuta `nvidia-smi`, la herramienta principal de diagnóstico: ```bash nvidia-smi ``` ```output +-----------------------------------------------------------------------------------------+ | NVIDIA-SMI 580.82.07 Driver Version: 580.82.07 CUDA Version: 13.0 | |-----------------------------------------+------------------------+----------------------+ | GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. | |=========================================+========================+======================| | 0 NVIDIA L40S Off | 00000000:01:00.0 Off | 0 | | N/A 31C P8 23W / 350W | 0MiB / 46068MiB | 0% Default | +-----------------------------------------+------------------------+----------------------+ ``` Dos datos importan aquí: - **Driver Version**: la versión instalada. - **CUDA Version**: la versión **máxima** de CUDA que admite este driver. No indica que CUDA esté instalado; el toolkit se instala aparte. Para obtener datos concretos en un formato fácil de procesar, usa `--query-gpu`: ```bash nvidia-smi --query-gpu=name,driver_version,memory.total,temperature.gpu --format=csv ``` ```output name, driver_version, memory.total [MiB], temperature.gpu NVIDIA L40S, 580.82.07, 46068 MiB, 31 ``` ## Paso 5: Activar el modo de persistencia Sin persistencia, el driver descarga el estado de la GPU cuando ningún proceso la usa y lo vuelve a inicializar al siguiente uso. En un servidor eso añade latencia al arrancar cada trabajo. El paquete `nvidia-compute-utils` incluye el servicio `nvidia-persistenced`, que mantiene la GPU inicializada. Actívalo y comprueba su estado: ```bash sudo systemctl enable --now nvidia-persistenced systemctl status nvidia-persistenced --no-pager ``` ```output ● nvidia-persistenced.service - NVIDIA Persistence Daemon Loaded: loaded (/usr/lib/systemd/system/nvidia-persistenced.service; enabled; preset: enabled) Active: active (running) since Thu 2026-09-25 10:52:14 UTC; 3s ago ``` En la salida de `nvidia-smi`, la columna **Persistence-M** debe mostrar ahora `On`: ```bash nvidia-smi --query-gpu=persistence_mode --format=csv,noheader ``` ```output Enabled ``` ## Paso 6: Evitar cambios de versión inesperados Las actualizaciones de seguridad de Ubuntu pueden traer una nueva versión menor del driver dentro de la misma rama (por ejemplo, de 580.82 a 580.95). Tras esa actualización, `nvidia-smi` puede fallar con `Driver/library version mismatch` hasta que reinicies, porque el módulo cargado en memoria sigue siendo el antiguo. En servidores de producción conviene decidir cuándo ocurre ese cambio. Puedes congelar los paquetes y actualizarlos a mano en una ventana de mantenimiento: ```bash sudo apt-mark hold $(dpkg -l | awk '/^ii/ && /nvidia/ {print $2}') apt-mark showhold ``` Para actualizar más adelante, libera los paquetes con `sudo apt-mark unhold` seguido de los mismos nombres, instala las actualizaciones y reinicia. ## Solución de problemas **`NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver`.** El módulo no está cargado. Revisa los mensajes del kernel con `sudo dmesg | grep -iE 'nvidia|nvrm'`. Las causas más comunes son no haber reiniciado tras la instalación, haber actualizado el kernel sin que exista el paquete `linux-modules-nvidia-*` correspondiente, o que Secure Boot rechace un módulo sin firmar (compruébalo con `mokutil --sb-state`). **`Failed to initialize NVML: Driver/library version mismatch`.** Las utilidades de usuario se actualizaron pero el módulo en memoria es el antiguo. Reinicia el servidor. **`nvidia-smi: command not found`.** Falta el paquete `nvidia-utils--server`. Instálalo con la misma versión y rama que el driver. **El módulo `-open` no carga y `dmesg` indica que la GPU no está soportada.** Tu GPU es anterior a Turing. Desinstala el driver con `sudo apt purge '*nvidia*'`, reinicia e instala la variante sin `-open`. **Hay dos ramas de driver mezcladas.** Si has probado varias instalaciones (por ejemplo, el repositorio de NVIDIA y el de Ubuntu), `apt` puede acabar con paquetes incompatibles. Elimina todo con `sudo apt purge '*nvidia*' && sudo apt autoremove`, reinicia y vuelve al paso 3 con una sola fuente. ## Conclusión El servidor tiene ahora el driver NVIDIA de la rama para servidores con módulos precompilados, el modo de persistencia activado y `nvidia-smi` funcionando. El siguiente paso habitual es instalar el CUDA Toolkit si vas a compilar código para la GPU, o ir directamente a PyTorch, que incluye sus propias bibliotecas CUDA y solo necesita el driver. También puedes instalar el NVIDIA Container Toolkit para usar la GPU desde contenedores Docker.