I recently purchased my first eGPU to try with my Framework 13 laptop. After some trial and error this now works reliably for me. This is the hardware I used with my setup:

eGPU: Dock with GPU with PSU all connected and powered on
eGPU: Dock with GPU with PSU all connected and powered on
  • EXP GDC TH3P4G2/TH3P4G3 Thunderbolt GPU Dock
    • I’m using the USB-C Thunderbolt 4 cable that comes with the eGPU
  • GeForce GTX 1060 6GB GPU
    • HDMI cable to connect to my monitor
  • Standard PC PSU. Must be compatible with:
    • 24-Pin ATX power connector for the GPU dock
    • 8-Pin ATX CPU power connector for the GPU dock
    • Appropriate PCI/GPU/accessory power cable for the GPU
  • Framework 13 AMD Laptop
Hardware Model
Framework Laptop 13 _AMD Ryzen 7040Series_
Processor
AMD Ryzen™ 5 7640U w/ Radeon™ 760M Graphics × 12
$ lspci | grep -i nvidia
64:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
64:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1)

I used a fresh install of Fedora Linux 42 for this process. I installed Fedora 42 (Fedora-Workstation-Live-42-1.1.x86_64) onto an external M2 drive via USB-C so that I could leave my internal drive intact while tinkering with the setup. I did nothing unique or special during the installation except that I enabled third-party repositories, which allowed me to later download NVIDIA drivers from the fusion nonfree repos without any additional work.

Operating System
Fedora Linux 42 (Workstation Edition)
$ uname -a
Linux fedora-egpu 6.16.10-200.fc42.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Oct  2 19:23:55 UTC 2025 x86_64 GNU/Linux

The system is using the more modern Wayland, rather than the classic X11, as the display server.

$ echo $XDG_SESSION_TYPE
wayland

An HDMI cable is connected from my GPU to my monitor. The thunderbolt cable that shipped with the GPU dock is connected to the Framework laptop using the combo power + thunderbolt port (🔋⚡) on the dock. This port is how video is sent from the laptop to the GPU and it also charges the laptop.

Rear of eGPU dock demonstrating port use
Rear of eGPU dock demonstrating port use

At this point, I see a solid green light on the GPU dock when it is powered on. Before booting the laptop the fans on the dock will continually spin, then stop, in a sort of erratic and stuttering way. I assume this is because the GPU is powered at this point, but not in a state where the fans can be controlled reliably. After I eventually boot into the OS the fans run properly and smoothly as needed.

At this point, with no additional effort, my eGPU works (kinda)! I have video output through both my external monitor from the NVIDIA GPU and also the internal Framework laptop display. However, this video output is misleading. The process is not complete. By looking at the output from glxinfo it’s clear that the system is using the internal AMD GPU on the laptop and not the external eGPU with the NVIDIA card.

$ glxinfo | egrep 'OpenGL vendor|OpenGL renderer'
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon 760M Graphics (radeonsi, phoenix, LLVM 20.1.8, DRM 3.64, 6.16.10-200.fc42.x86_64)

Additionally, if I start Kdenlive (I use this for occasional amateur video editing), I see that the options to enable NVIDIA hardware acceleration are not usable. Although I can check the box for NVIDIA hardware acceleration, it is not respected and unchecks itself if I check my hardware requirements or close and re-open the config wizard in Kdenlive.

AMD libraries, not NVIDIA, detected by Kdenlive
AMD libraries, not NVIDIA, detected by Kdenlive

Although the eGPU “works” in the sense that it provides any video output it is not being used by the laptop as the primary GPU. It seems like the eGPU is only being used as a dumb video-passthrough of some sort at this point.

An existing project called all-ways-egpu can handle switching from the internal to external eGPU like I need.

Configures eGPU as primary under Linux Wayland desktops.

After installing all-ways-egpu it must be configured. It’s possible to use their configuration wizard, but I found it was simpler to manually retrieve the PCI BUS IDs for my NVIDIA GPU using lspci. See my relevant (edited) output here.

$ lspci -D -k | grep -i nvidia
0000:64:00.0 VGA compatible controller: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] (rev a1)
0000:64:00.1 Audio device: NVIDIA Corporation GP106 High Definition Audio Controller (rev a1)

I then created a configuration file for all-ways-egpu at /usr/share/all-ways-egpu/egpu-bus-ids with the following content.

0000:64:00.0 nvidia

After that I could use all-ways-egpu to designate the eGPU as the primary compositor device for Wayland.

$ sudo all-ways-egpu set-compositor-primary egpu
Compositor variables set. Restart Display Manager for changes to take effect.

The display manager must be restarted for changes to take effect. To restart the display manager there are a couple mechanisms that could be used. Beware, restarting the display manager will immediately log out the current user.

The all-ways-egpu menu can be used to restart the display manager by choosing option 0.

$ sudo all-ways-egpu
-------------------------
 All-Ways-eGPU Main Menu
-------------------------
1. Guided Setup
2. Manual Setup
3. Disable a GPU (Method 1)
4. Set boot-vga Flag (Method 2)
5. Set Compositor Specific Variables (Method 3)
6. Help
7. Version
8. Uninstall all-ways-eGPU
9. Status
0. Restart Display Manager
q. Exit

Enter Choice [0-9]:
0

Alternatively, on my system, I can run sudo systemctl restart display-manager.service, which is what I see the all-ways-egpu does on my particular system when I examine their scripts.

After restarting the display manager I can see we’re getting a bit closer now! Again, the eGPU still “works” and is displaying video. I can also see that Mesa, not NVIDIA, libraries are used when I check against glxinfo.

$ glxinfo | egrep 'OpenGL vendor|OpenGL renderer'
OpenGL vendor string: Mesa
OpenGL renderer string: NV136

It seems OpenGL is using the eGPU as the primary GPU now, but it is not using the NVIDIA libraries and driver. lspci shows similar information. I’m using the nouveau driver here and not the official NVIDIA drivers.

$ sudo lspci -knn | grep -EA3 'VGA|3D|Display'
pcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
64:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1)
	Subsystem: eVga.com. Corp. Device [3842:6163]
	Kernel driver in use: nouveau
	Kernel modules: nouveau
--
c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev cb)
	Subsystem: Framework Computer Inc. Device [f111:0006]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

Also, as with my earlier debugging, Kdenlive reflects a similar situation. Kdenlive now detects a change in the video card, but I’m still unable to use NVIDIA hardware acceleration in Settings -> Run Config Wizard....

Mesa libraries, not NVIDIA, detected by Kdenlive
Mesa libraries, not NVIDIA, detected by Kdenlive

Anecdotally, I also see that the video output for my Framework is choppy and slow, which suggests the video driver may not be ideal for this device. I then installed the proprietary Current GeForce/Quadro/Tesla drivers based on the RPM Fusion documentation.

This driver is suitable for any GPU found in 2014 and later.

I followed the documentation instructions to install the proprietary NVIDIA drivers.

$ sudo dnf update -y
$ sudo dnf install akmod-nvidia
$ sudo dnf install xorg-x11-drv-nvidia-cuda

After rebooting I can then see the official NVIDIA libraries are used by glxinfo.

$ glxinfo | egrep 'OpenGL vendor|OpenGL renderer'
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce GTX 1060 6GB/PCIe/SSE2

lspci also agrees that the nvidia driver is being used rather than nouveau for my eGPU.

$ sudo lspci -knn | grep -EA3 'VGA|3D|Display'
[sudo] password for will:
pcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
64:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP106 [GeForce GTX 1060 6GB] [10de:1c03] (rev a1)
	Subsystem: eVga.com. Corp. Device [3842:6163]
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
--
c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev cb)
	Subsystem: Framework Computer Inc. Device [f111:0006]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

Finally, Kdenlive agrees as well that NVIDIA hardware acceleration can be utilized.

NVIDIA hardware acceleration detected by Kdenlive
NVIDIA hardware acceleration detected by Kdenlive

This seems like true success to me. The eGPU is working and sending video to my external monitor using the eGPU as the primary GPU.

If I reboot with the eGPU unplugged my laptop reverts back to the internal AMD GPU like I’d want.

$ glxinfo | egrep 'OpenGL vendor|OpenGL renderer'
OpenGL vendor string: AMD
OpenGL renderer string: AMD Radeon 760M Graphics (radeonsi, phoenix, LLVM 20.1.8, DRM 3.64, 6.16.10-200.fc42.x86_64)
$ sudo lspci -knn | grep -EA3 'VGA|3D|Display'
[sudo] password for will:
pcilib: Error reading /sys/bus/pci/devices/0000:00:08.3/label: Operation not permitted
c1:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Phoenix1 [1002:15bf] (rev cb)
	Subsystem: Framework Computer Inc. Device [f111:0006]
	Kernel driver in use: amdgpu
	Kernel modules: amdgpu

If I repeat again and I boot back up with the eGPU on and connected the laptop goes back to using it as the primary GPU with NVIDIA drivers by default.

eGPU working with NVIDIA drivers
eGPU working with NVIDIA drivers

Troubleshooting

  • In the past I saw a blue flashing light on the eGPU Dock. I needed all power cables connected. The 24-Pin ATX PSU cable, the 8-Pin CPU cable, and the power cable from the PSU straight to the GPU.
  • On my non-new/non-pristine Framework installation I couldn’t get things working initially. I saw no video output through the eGPU. My machine was using outdated NVIDIA drivers. I had to uninstall and re-install the NVIDIA drivers to get the latest and then things worked.

Notes