Cómo usar la eGPU Khadas Mind Graphics 2 (NVIDIA RTX 5060 Ti USB4) en Ubuntu 26.04

La semana pasada, al probar el dock Khadas Mind Graphics 2, basado en la NVIDIA GeForce RTX 5060 Ti de 16 GB, con un mini PC con Ubuntu 26.04, el sistema detectó y activó automáticamente la eGPU conectada por USB4. Sin embargo, nos topamos con dos problemas: un rendimiento muy pobre y que el mini PC no arrancaba al retirar el dock.

Parte de la solución ya quedó documentada en el largo análisis del GEEKOM IT13 Max con Ubuntu 26.04, pero nos pareció útil reunirlo todo en un artículo más breve para quienes tengan la Khadas Mind Graphics 2 u otra eGPU NVIDIA Blackwell conectada por USB4/Thunderbolt.


eGPU Khadas Mind Graphics 2 con NVIDIA GeForce RTX 5060 Ti

Cómo solucionar los problemas de rendimiento de la Khadas Mind Graphics 2 en Ubuntu

La Khadas Mind Graphics 2 y la tarjeta gráfica NVIDIA se detectaron automáticamente al conectar el dock a un mini PC con Ubuntu 26.04:

aey@IT13-Max-CNX:~$ sudo inxi -G  
Graphics:
  Device-1: Intel Meteor Lake-P [Intel Arc Graphics] driver: i915 v: kernel
  Device-2: NVIDIA GB206 [GeForce RTX 5060 Ti] driver: nouveau v: kernel
  Display: unspecified server: Xwayland v: 24.1.10 driver: gpu: i915 tty: 211x50
    resolution: 1920x1080
  API: EGL v: 1.5 drivers: iris,swrast,zink platforms: gbm,surfaceless,device
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: mesa v: 26.0.3-1ubuntu1 note: console (EGL sourced)
    renderer: zink Vulkan 1.4(NVIDIA GeForce RTX 5060 Ti (NVK GB206) (MESA_NVK)), Mesa Intel Arc
    Graphics (MTL), llvmpipe (LLVM 21.1.8 256 bits)
  API: Vulkan v: 1.4.341 drivers: intel,nvk,llvmpipe surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo x11: xdriinfo, xdpyinfo, xprop, xrandr

Pude ejecutar Unigine Heaven Benchmark 4.0 con la GPU NVIDIA (que el sistema mostraba como desconocida), pero el rendimiento era muy pobre, incluso inferior al de la GPU integrada de Intel.


Unigine Heaven Benchmark 4.0 con el driver Nouveau
Unigine Heaven Benchmark 4.0 con el driver Nouveau

---- Render ----
GLRender::GLRender(): Unknown NVidia GPU
OpenGL vendor:   Mesa
OpenGL renderer: zink Vulkan 1.4(NVIDIA GeForce RTX 5060 Ti (NVK GB206) (MESA_NVK))
OpenGL version:  4.6 (Core Profile) Mesa 26.0.3-1ubuntu1
OpenGL flags:    Core Profile
...
Benchmark running
Benchmark results:
Time:	260.663
Frames:	6128
FPS:	23.5093
Min FPS:	20.2566
Max FPS:	25.079
Score:	592.199

El motivo es que el driver de código abierto Nouveau no está optimizado para la GPU NVIDIA Blackwell, así que ese rendimiento tan bajo era de esperar. La solución pasa por instalar los drivers propietarios de NVIDIA, que podemos localizar con el siguiente comando:

aey@IT13-Max-CNX:~$ sudo ubuntu-drivers list
nvidia-driver-595-open, (kernel modules provided by linux-modules-nvidia-595-open-generic-hwe-26.04)
nvidia-driver-580-open, (kernel modules provided by linux-modules-nvidia-580-open-generic-hwe-26.04)
nvidia-driver-610-open, (kernel modules provided by linux-modules-nvidia-610-open-generic-hwe-26.04)
nvidia-driver-595, (kernel modules provided by linux-modules-nvidia-595-generic-hwe-26.04)
nvidia-driver-580, (kernel modules provided by linux-modules-nvidia-580-generic-hwe-26.04)
nvidia-driver-610, (kernel modules provided by linux-modules-nvidia-610-generic-hwe-26.04)
nvidia-driver-595-server-open, (kernel modules provided by linux-modules-nvidia-595-server-open-generic-hwe-26.04)
nvidia-driver-580-server-open, (kernel modules provided by linux-modules-nvidia-580-server-open-generic-hwe-26.04)
nvidia-driver-595-server, (kernel modules provided by linux-modules-nvidia-595-server-generic-hwe-26.04)
nvidia-driver-580-server, (kernel modules provided by linux-modules-nvidia-580-server-generic-hwe-26.04)

Basta con elegir la versión «open» más reciente. Eso sí, «open» se refiere únicamente al módulo del kernel: el resto de la pila es propietaria y de código cerrado. Instalamos el driver más reciente y reiniciamos el sistema:

aey@IT13-Max-CNX:~$ sudo ubuntu-drivers install nvidia:610-open
aey@IT13-Max-CNX:~$ sudo reboot

inxi confirma que el driver ahora es «nvidia» en lugar de «nouveau»:

aey@IT13-Max-CNX:~/Downloads/Unigine_Heaven-4.0$ inxi -G
Graphics:
  Device-1: Intel Meteor Lake-P [Intel Arc Graphics] driver: i915 v: kernel
  Device-2: NVIDIA GB206 [GeForce RTX 5060 Ti] driver: nvidia v: 610.43.02
  Display: server: X.org v: 1.21.1.22 with: Xwayland v: 24.1.10 driver: gpu: i915 tty: 211x50
    resolution: 1920x1080
  API: EGL v: 1.5 drivers: iris,nvidia,swrast platforms: gbm,surfaceless,device
  API: OpenGL v: 4.6.0 compat-v: 4.5 vendor: mesa v: 26.0.3-1ubuntu1 note: console (EGL sourced)
    renderer: NVIDIA GeForce RTX 5060 Ti/PCIe/SSE2, Mesa Intel Arc Graphics (MTL), llvmpipe (LLVM
    21.1.8 256 bits)
  API: Vulkan v: 1.4.341 drivers: intel,nvidia,llvmpipe surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo gpu: nvidia-settings,nvidia-smi
    x11: xdriinfo, xdpyinfo, xprop, xrandr

Es hora de comprobar la mejora de rendimiento con Unigine Heaven Benchmark 4.0:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./heaven


Unigine Heaven Benchmark 4.0 en el GEEKOM IT13 Max con la NVIDIA GeForce RTX 5060 Ti eGPU
Unigine Heaven Benchmark 4.0 en el GEEKOM IT13 Max con la NVIDIA GeForce RTX 5060 Ti eGPU

La puntuación y la tasa de fotogramas media mejoraron unas 5,75 veces. ¡Funcionó!

El sistema no arranca sin la eGPU NVIDIA conectada

Puede que no siempre quieras llevar una GPU externa encima o conectarla al mini PC, así que el equipo anfitrión también debería funcionar sin la Khadas Mind Graphics 2. Sin embargo, tras solucionar el problema anterior y retirar la eGPU para continuar con otras pruebas de nuestro análisis, comprobamos que el mini PC ya no arrancaba: solo aparecía una pantalla negra, incluso después de esperar varios minutos. Pulsé Ctrl+F1 para acceder a la terminal y, efectivamente, el driver de NVIDIA buscaba la tarjeta gráfica en un bucle infinito.

Así que, en ese momento, volvimos a conectar la Mind Graphics 2 al mini PC y añadimos los módulos de NVIDIA a la lista negra.

Para ello creamos un nuevo archivo /etc/modprobe.d/nvidia-egpu.conf con permisos de root/sudo:

# Do not auto-load NVIDIA modules so the system boots fine without the eGPU
blacklist nvidia
blacklist nvidia_modeset
blacklist nvidia_drm
blacklist nvidia_uvm
options nvidia NVreg_DynamicPowerManagement=0x00

Tras guardar el archivo, actualizamos el initramfs y reiniciamos el sistema correctamente.

sudo update-initramfs -u
sudo reboot

Con esto, el sistema funciona tanto con la Mind Graphics 2 como sin ella. Eso sí, para usar la eGPU de NVIDIA hay que cargar los drivers manualmente:

sudo modprobe nvidia
sudo modprobe nvidia_modeset
sudo modprobe nvidia_drm
sudo modprobe nvidia_uvm

No es muy práctico. Por suerte, hay una solución: cargar los drivers cuando se detecte la GPU mediante una regla de udev. Si tienes la Khadas Mind Graphics 2, puedes usar directamente el valor de nuestra regla, que verás más abajo; si tienes otra GPU de NVIDIA, conviene comprobar los identificadores de fabricante y de dispositivo.

aey@IT13-Max-CNX:~$ lspci -nn | grep -i nvidia
04:00.0 VGA compatible controller [0300]: NVIDIA Corporation GB206 [GeForce RTX 5060 Ti] [10de:2d04] (rev a1)
04:00.1 Audio device [0403]: NVIDIA Corporation GB206 High Definition Audio Controller [10de:22eb] (rev a1)

Ahora creamos el archivo /etc/udev/rules.d/99-egpu-nvidia.rules con el siguiente contenido:

ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x2d04", ATTR{class}=="0x030000", RUN+="/bin/sh -c 'modprobe nvidia; modprobe nvidia_modeset; modprobe nvidia_drm; modprobe nvidia_uvm'

Ya solo queda recargar las reglas de udev, o simplemente reiniciar para comprobar que todo funciona como esperamos.

Varias pruebas confirmaron que el sistema funciona a la perfección. Nuestro mini PC usa la eGPU con los drivers propietarios de NVIDIA siempre que la Khadas Mind Graphics 2 está conectada, para obtener el máximo rendimiento, y sigue arrancando sin el dock de eGPU.

Traducido del artículo en inglés «Using the Khadas Mind Graphics 2 (NVIDIA RTX 5060 Ti USB4 eGPU) on Ubuntu 26.04» de Jean-Luc Aufranc (CNXSoft).