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.
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:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
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.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
---- 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:
|
1 2 3 4 5 6 7 8 9 10 11 |
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:
|
1 2 |
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»:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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:
|
1 |
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./heaven |
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:
|
1 2 3 4 5 6 |
# 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.
|
1 2 |
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:
|
1 2 3 4 |
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.
|
1 2 3 |
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:
|
1 |
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).
Publicaciones traducidas automáticamente
