Использование Khadas Mind Graphics 2 (внешней видеокарты NVIDIA RTX 5060 Ti с интерфейсом USB4) в Ubuntu 26.04

Когда на прошлой неделе использовался док Khadas Mind Graphics 2 на базе NVIDIA GeForce RTX 5060 Ti 16GB Khadas Mind Graphics 2 док с мини-ПК под управлением Ubuntu 26.04, eGPU, подключённый через USB4, был автоматически обнаружен и включён, но возникли две проблемы: очень низкая производительность и сбой загрузки мини-ПК при отсоединении дока.

Решение частично задокументировано в рамках длинного обзора GEEKOM IT13 Max Ubuntu 26.04 , но может быть полезно задокументировать всё в более короткой статье для тех, у кого есть Khadas Mind Graphics 2 или другой NVIDIA Blackwell eGPU, подключённый через USB4/Thunderbolt.

Khadas Mind Graphics 2 NVIDIA GeForce RTX 5060 Ti 16GB eGPU Ubuntu 26.04

Исправление проблем с производительностью Khadas Mind Graphics 2 в Ubuntu

Khadas Mind Graphics 2 и видеокарта NVIDIA были автоматически обнаружены при подключении дока к мини-ПК с 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

Удалось запустить Unigine Heaven Benchmark 4.0 на (неизвестном) NVIDIA GPU, но производительность была низкой, даже ниже, чем у встроенного Intel GPU.

NVIDIA GeForce RTX 5060 Ti Unigine Heaven Benchmark Nouveau Driver Linux
Unigine Heaven Benchmark 4.0 с драйвером 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

Оказывается, открытый драйвер Nouveau не оптимизирован для NVIDIA Blackwell GPU, поэтому низкая производительность была ожидаема. Это можно исправить, установив проприетарные драйверы NVIDIA. Их можно найти с помощью команды:

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)

Можно просто выбрать «открытую» версию с наибольшим номером версии. «Открытая» здесь относится только к модулю ядра, остальная часть стека является проприетарной и закрытой. Установите последний драйвер и перезагрузите систему:

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

inxi подтверждает, что драйвер теперь «nvidia» вместо «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

Время проверить улучшенную производительность с помощью Unigine Heaven Benchmark 4.0:

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia ./heaven

Unigine Heaven Benchmark 4.0 GEEKOM IT13 Max NVIDIA GeForce RTX 5060 Ti

Unigine Heaven Benchmark 4.0 на GEEKOM IT13 Max с NVIDIA GeForce RTX 5060 Ti eGPUРезультат и средняя частота кадров улучшились примерно в 5,75 раза. Это сработало!

Ошибка загрузки при отключённом NVIDIA eGPU

Поскольку не всегда требуется носить внешний GPU с ноутбуком или подключать его к мини-ПК, хост-компьютер также должен работать, когда Khadas Mind Graphics 2 к нему не подключён. Однако после исправления вышеуказанной проблемы и удаления eGPU для продолжения других тестов в обзоре было замечено, что мини-ПК больше не загружается. На экране ничего не отображалось, кроме чёрного экрана, даже после ожидания в течение нескольких минут. При нажатии Ctrl+F1 для доступа к терминалу оказалось, что драйвер NVIDIA бесконечно искал видеокарту в цикле.

На этом этапе Mind Graphics 2 снова подключили к мини-ПК, а модули NVIDIA были внесены в чёрный список.

Для этого был создан новый файл /etc/modprobe.d/nvidia-egpu.conf от имени 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

После сохранения файла initramfs был обновлён, и система успешно перезагружена.

sudo update-initramfs -u
sudo reboot

Теперь это работает как с Mind Graphics 2, так и без него. Однако, чтобы использовать NVIDIA eGPU, необходимо загружать драйверы вручную:

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

Это неудобно. К счастью, есть решение: загрузка драйверов при обнаружении GPU с помощью правила udev. Для Khadas Mind Graphics 2 можно просто использовать значение из файла правил, приведённого ниже, но для другого NVIDIA GPU может потребоваться проверить/подтвердить идентификаторы производителя и устройства.

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)

Теперь необходимо создать файл /etc/udev/rules.d/99-egpu-nvidia.rules со следующим содержимым:

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'"

Теперь можно перезагрузить правила udev или просто перезагрузить систему, чтобы убедиться, что всё работает как ожидается.

Несколько тестов подтвердили полностью работоспособную систему. Мини-ПК использует eGPU с проприетарными драйверами NVIDIA при подключённом Khadas Mind Graphics 2 для максимальной производительности, при этом он по-прежнему загружается без док-станции eGPU.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments