====== eGpu ======
En anglais "**GPU enclosures**". Nécessite un port Thunderbolt 3, 4 ou à venir 5.
Mes expériences eGpu avec mon Mint 21.3 (Ubuntu 22.04) kernel 6.8.
* https://egpu.io/best-egpu-buyers-guide/
* [[https://www.ebay.com/sch/i.html?_from=R40&_trksid=p2380057.m570.l1313&_nkw=th3p4&_sacat=0&siteid=0&customid&toolid=20012|eBay th3p4]]
* [[https://www.ebay.com/itm/285522532081?_trksid=p2332490.c101196.m2219|Thunderbolt 3/4 PD 40Gbps DC/ATX TH3P4 GPU Dock Graphics Card Extension Bracket]] $207
* https://www.sonnetstore.com/collections/gpu-solutions
* [[https://dancharblog.wordpress.com/2023/03/27/diy-thunderbolt-egpu-with-exp-gdc-th3p4-and-3d-printed-chassis/#thunderbolt-pcie-adapter|DIY Thunderbolt eGPU with EXP GDC TH3P4 and 3D-printed chassis]]
* [[https://fr.aliexpress.com/item/1005002802776587.html|WKGL17]] Wikingoo
* acheté
* ✅ RTX 3060 ok
* ✗ RTX 5060 à peu près ok ([[/informatique/ai_coding/gpu_bench|ça plante selon les modèles]])
* [[http://www.cyidpcie.cn/page/HL7.html|TB3-HL7]]
* acheté
* attention, une fois trouver la bonne position ne plus rien bouger.
* ✅ RTX 3060 ok
* ❌ RTX 5060 failed
* [[https://fr.aliexpress.com/item/1005008424134383.html|ADT UT4G-BK7]] TB3/TB4 vers PCIe x16 PCIe 4.0 x4 GPU Dock
Au final on ne fait tourner que de petits models avec de petit context ...
===== Nvidia =====
NVidia [[https://docs.nvidia.com/datacenter/tesla/pdf/Driver_Installation_Guide.pdf|Driver Installation Guide]]
* nvidiafb: framebuffer support
* nvidia_modeset: Kernel Mode Setting (KMS) support
* nvidia_uvm: Unified Virtual Memory (UVM) support
* nvidia_drm: Direct Rendering Management (DRM) support
Après plantage du driver ou CUDA, essayer de le décharger avec:
# Ça fonctionne car driver nvidia non attaché à X11
# grâce à `blacklist nvidia-drm` et `options nvidia-drm modeset=0 fbdev=0` dans `/etc/modprobe.d/...`
sudo modprobe -r nvidia_drm nvidia_uvm nvidia_modeset nvidia
# Le driver est bien chargé au prochain usage, et CUDA fonctionne
kernel: NVRM: loading NVIDIA UNIX Open Kernel Module for x86_64 580.105.08
La RTX 3060 fonctionne bien avec la version 580 ''nvidia-headless-580-open, nvidia-dkms-580-open''
==== nvidia-headless-575-open ====
$ sudo apt install nvidia-headless-575-open
Les NOUVEAUX paquets suivants seront installés :
libnvidia-cfg1-575 libnvidia-compute-575 libnvidia-decode-575 libnvidia-gpucomp-575 nvidia-compute-utils-575 nvidia-dkms-575-open nvidia-firmware-575 nvidia-headless-575-open nvidia-headless-no-dkms-575-open nvidia-kernel-common-575 nvidia-kernel-source-575-open nvidia-persistenced
ggml_cuda_init: failed to initialize CUDA: CUDA driver version is insufficient for CUDA runtime version
==== Gigabyte Windforce OC 12G Geforce RTX 3600 ====
NVIDIA GA104 [GeForce RTX 3060]
$ nvidia-smi
Sat Nov 22 10:11:42 2025
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 565.57.01 Driver Version: 565.57.01 CUDA Version: 12.7 |
|-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 3060 Off | 00000000:05:00.0 Off | N/A |
| 0% 33C P8 10W / 170W | 7MiB / 12288MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
==== PNY OC 16GB Geforce RTX 5060 Ti ====
J'ai du mal avec cette carte:
* avec le bridge PCI Cyid TB3-HL7 (JHL7540) : Échec complet
* avec le bridge PCI Wikingoo WKGL17-C50 : Carte reconnue et llama-bench fonctionne
* par contre l'ensemble n'est pas stable, ça plante sans prévenir, souvent éteindre de force le laptop ...
=== nvidia-kkms-565 ===
Avec driver nvidia 565 les cartes ne sont pas reconnues.
=== nvidia-headless-580-open ===
éléments installés:
$ dpkg --get-selections | grep -i nvidia
libnvidia-cfg1-580:amd64 install
libnvidia-common-580 install
libnvidia-compute-580:amd64 install
libnvidia-decode-580:amd64 install
libnvidia-gpucomp-580:amd64 install
libnvidia-ml-dev:amd64 install
nvidia-cuda-dev:amd64 install
nvidia-dkms-580-open install
nvidia-driver-assistant install
nvidia-firmware-580 install
nvidia-headless-580-open install
nvidia-headless-no-dkms-580-open install
nvidia-kernel-common-580 install
nvidia-kernel-source-580-open install
nvidia-modprobe install
nvidia-persistenced install
nvidia-utils-580 install
Log on plug {{/informatique/ai_coding/pny_oc_16gb_5060_ti_log_251125.txt |PNY OC 16GB 5060 TI log 251125}}
Peut être une piste :
kernel: NVRM: Xid (PCI:0000:05:00): 79, GPU has fallen off the bus.
kernel: NVRM: GPU 0000:05:00.0: GPU has fallen off the bus.
...
kernel: [drm:nv_drm_dev_load [nvidia_drm]] *ERROR* [nvidia-drm] [GPU ID 0x00000500] Failed to allocate NvKmsKapiDevice
Sur les Internet on peut trouver:
* kernel command line : ''pcie_aspm=off''
* du coup le bridge PCI est identifié mais rien d'autre
* kernel command line : ''nvidia.NVreg_EnableGpuFirmware=0''
On dirait que X11 voit la carte :
$ inxi -G
Graphics:
Device-1: Intel Raptor Lake-P [Iris Xe Graphics] driver: i915 v: kernel
Device-2: NVIDIA driver: nvidia v: 580.105.08
Device-3: Chicony USB2.0 Camera driver: uvcvideo type: USB
Display: x11 server: X.Org v: 21.1.11 with: Xwayland v: 23.2.6 driver: X:
loaded: modesetting unloaded: fbdev,vesa dri: iris gpu: i915
resolution: 1920x1080~60Hz
API: EGL v: 1.5 drivers: iris,kms_swrast,swrast
platforms: gbm,x11,surfaceless,device
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa
v: 25.0.7-0ubuntu0.24.04.2 renderer: Mesa Intel Iris Xe Graphics (RPL-P)
J'ai blacklisté le module nvidia-drm pour éviter autant que possible que X11 entre dans la partie :
cat /etc/modprobe.d/nvidia-blacklist-drm.conf
blacklist nvidia-drm
et
$ cat /etc/modprobe.d/nvidia-graphics-drivers-kms.conf
# Nvidia modesetting support. Set to 0 or comment to disable kernel modesetting
# and framebuffer console support. This must be disabled in case of Mosaic or SLI.
#options nvidia-drm modeset=1
# pour de l'inférence uniquement, pas pour l'affichage.
options nvidia-drm modeset=0 fbdev=0
=== Avec le bridge Wikingoo WKGL17-C50 ===
Avec certains modèles ya "[[/informatique/ai_coding/gpu_bench|CUDA Error]]" et dans les logs ya :
kernel: NVRM: GPU at PCI:0000:05:00: GPU-ab296f23-e6a6-a23b-b6c1-33f9b813df84
kernel: NVRM: GPU Board Serial Number: 0
kernel: NVRM: Xid (PCI:0000:05:00): 79, pid=3191, name=llama-bench, GPU has fallen off the bus.
kernel: NVRM: GPU 0000:05:00.0: GPU has fallen off the bus.
kernel: NVRM: GPU 0000:05:00.0: GPU serial number is 0.
kernel: NVRM: kgspRcAndNotifyAllChannels_IMPL: RC all channels for critical error 79.
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
kernel: NVRM: _threadNodeCheckTimeout: API_GPU_ATTACHED_SANITY_CHECK failed!
...
===== Cyid TB3-HL7 =====
Utilise le JHL7540 qui gère le lien Thunderbolt → PCIe
Le bridge PCI est là mais pas la NVidia :
$ lspci -t -v -k
...
+-07.0-[03-2c]----00.0-[04-2c]--+-01.0-[05]--
| +-02.0-[06]----00.0 Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
| \-04.0-[07-2c]--
...
la Gigabyte Windforce OC 12GB NVidia GeForce **RTX 3060 est vue** :
+-07.0-[03-2c]----00.0-[04-2c]--+-01.0-[05]--+-00.0 NVIDIA Corporation GA104 [GeForce RTX 3060]
| | \-00.1 NVIDIA Corporation GA104 High Definition Audio Controller
| +-02.0-[06]----00.0 Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
| \-04.0-[07-2c]--
Il faut trouver la bonne "position" physique. C'est très fragile. 😩
La PNY Geforce **RTX 5060 Ti** est bien présente aussi sur le PCI bridge mais pas identifiée
+-07.0-[03-2c]----00.0-[04-2c]--+-01.0-[05]--+-00.0 NVIDIA Corporation Device 2d04
| | \-00.1 NVIDIA Corporation Device 22eb
| +-02.0-[06]----00.0 Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge DD 2018]
| \-04.0-[07-2c]--
Ce qui fait que ''nvidia-smi'' ne la voit pas, les autres outils non plus. 😩
sudo ubuntu-drivers devices
== /sys/devices/pci0000:00/0000:00:07.0/0000:03:00.0/0000:04:01.0/0000:05:00.0 ==
modalias : pci:v000010DEd00002D04sv0000196Esd00001440bc03sc00i00
vendor : NVIDIA Corporation
manual_install: True
driver : nvidia-driver-575-open - third-party non-free
driver : nvidia-driver-570 - third-party non-free
driver : nvidia-driver-575 - third-party non-free
driver : nvidia-driver-580 - third-party non-free recommended
driver : nvidia-driver-580-server-open - distro non-free
driver : nvidia-driver-580-open - third-party non-free
driver : nvidia-driver-580-server - distro non-free
driver : nvidia-driver-570-open - third-party non-free
driver : nvidia-driver-570-server-open - distro non-free
driver : nvidia-driver-570-server - distro non-free
driver : xserver-xorg-video-nouveau - distro free builtin
===== Wikingoo WKGL17-C50 =====
Thunderbolt 4 PCI Bridge.
kernel: thunderbolt 0-1: new device found, vendor=0x215 device=0x41
kernel: thunderbolt 0-1: TB4 HOME TB4 eGFX
boltd[1107]: [c9030000-0080-TB4 eGFX ] parent is e49f8780-a06c...
boltd[1107]: [c9030000-0080-TB4 eGFX ] connected: connected (/sys/devices/pci0000:00/0000:00:0d.2/domain0/0-0/0-1)
boltd[1107]: [c9030000-0080-TB4 eGFX ] auto-auth: authmode: enabled, policy: iommu, iommu: yes -> ok