How to configure eGPU + use the NVIDIA driver?

Now that Fedora 36 comes with Wayland by default and supposedly the NVIDIA driver works with it (really?), how do we configure this?

DO NOT say “egpu-switcher” or “gswitch”. They don’t work and are designed for X11.

On F36, when I tried gswitch and logged in with XOrg, nothing worked.

I tried all-ways-egpu and that sort of worked. However, I could feel that the NVIDIA driver wasn’t working. It was kinda laggy.

What I would like the definitive answer to is this:

Which files to do I need to edit?

What do I need to add comment out?

I don’t care if it’s X11 or Wayland, although I’d prefer Wayland since that is the “future” :roll_eyes:.

Of course, I am using Gnome.

Any help would be appreciated by myself and every other idiot who bought an eGPU hoping to use it with his laptop at home, and then grab his laptop to call when the road or duty calls.

Hugs,

Heinrich (aka: TheBigDuck) :duck:

You first need to install the nvidia driver from rpmfusion then allow the kernel modules to build.
Reboot to load the driver.
It should now be available.

We know nothing about your system, what drivers you have installed, or anything else.

Please post the output of inxi -Fzxx in </> preformatted text tags available on the menu bar above. Also the output of dnf list installed *nvidia*

Here are the steps I took.

  1. CLEAN INSTALL.
  2. Enabled Third Party Repos
  3. dnf update.
  4. Did the update via the Software Store (ugh).
  5. inxi -Fzxx
    [heinrich@fedora ~]$ inxi -Fzxx
    System:
  Kernel: 5.17.5-300.fc36.x86_64 arch: x86_64 bits: 64 compiler: gcc
    v: 2.37-24.fc36 Desktop: GNOME v: 42.0 tk: GTK v: 3.24.31 wm: gnome-shell
    dm: GDM Distro: Fedora release 36 (Thirty Six)
Machine:
  Type: Laptop System: LENOVO product: 20MBCTO1WW v: ThinkPad P72
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 20MBCTO1WW serial: <superuser required> UEFI: LENOVO
    v: N2CET63W (1.46 ) date: 03/23/2022
Battery:
  ID-1: BAT0 charge: 81.2 Wh (84.0%) condition: 96.7/99.0 Wh (97.7%)
    volts: 12.7 min: 11.2 model: SMP 01AV497 serial: <filter> status: charging
CPU:
  Info: 6-core model: Intel Core i7-8850H bits: 64 type: MT MCP
    arch: Coffee Lake rev: A cache: L1: 384 KiB L2: 1.5 MiB L3: 9 MiB
  Speed (MHz): avg: 1462 high: 3795 min/max: 800/4300 cores: 1: 800 2: 1193
    3: 2181 4: 1588 5: 931 6: 800 7: 800 8: 800 9: 800 10: 800 11: 3795
    12: 3057 bogomips: 62399
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
  Device-1: NVIDIA GP107GLM [Quadro P2000 Mobile] vendor: Lenovo
    driver: nouveau v: kernel pcie: speed: 2.5 GT/s lanes: 16 ports:
    active: eDP-1 empty: DP-1, DP-2, DP-3, HDMI-A-1 bus-ID: 01:00.0
    chip-ID: 10de:1cba
  Device-2: Chicony Integrated IR Camera type: USB driver: uvcvideo
    bus-ID: 1-12:4 chip-ID: 04f2:b605
  Device-3: Chicony Integrated Camera (1280x720@30) type: USB
    driver: uvcvideo bus-ID: 1-8:2 chip-ID: 04f2:b604
  Display: wayland server: X.org v: 1.20.14 with: Xwayland v: 22.1.1
    compositor: gnome-shell driver: gpu: nouveau display-ID: 0
  Monitor-1: eDP-1 model: AU Optronics 0x109b res: 3840x2160 dpi: 255
    diag: 438mm (17.2")
  OpenGL: renderer: NV137 v: 4.3 Mesa 22.0.2 direct render: Yes
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Lenovo driver: snd_hda_intel
    v: kernel bus-ID: 00:1f.3 chip-ID: 8086:a348
  Device-2: NVIDIA GP107GL High Definition Audio driver: snd_hda_intel
    v: kernel pcie: speed: 2.5 GT/s lanes: 16 bus-ID: 01:00.1
    chip-ID: 10de:0fb9
  Sound Server-1: ALSA v: k5.17.5-300.fc36.x86_64 running: yes
  Sound Server-2: PipeWire v: 0.3.51 running: yes
Network:
  Device-1: Intel Cannon Lake PCH CNVi WiFi driver: iwlwifi v: kernel
    bus-ID: 00:14.3 chip-ID: 8086:a370
  IF: wlp0s20f3 state: up mac: <filter>
  Device-2: Intel Ethernet I219-LM vendor: Lenovo driver: e1000e v: kernel
    port: N/A bus-ID: 00:1f.6 chip-ID: 8086:15bb
  IF: enp0s31f6 state: down mac: <filter>
Bluetooth:
  Device-1: Intel Bluetooth 9460/9560 Jefferson Peak (JfP) type: USB
    driver: btusb v: 0.8 bus-ID: 1-14:5 chip-ID: 8087:0aaa
  Report: rfkill ID: hci0 rfk-id: 1 state: up address: see --recommends
Drives:
  Local Storage: total: 2.96 TiB used: 3.73 GiB (0.1%)
  ID-1: /dev/nvme0n1 vendor: Samsung model: SSD 970 EVO 1TB
    size: 931.51 GiB speed: 31.6 Gb/s lanes: 4 serial: <filter> temp: 44.9 C
  ID-2: /dev/nvme1n1 vendor: Intel model: SSDPEKKF256G8L size: 238.47 GiB
    speed: 31.6 Gb/s lanes: 4 serial: <filter> temp: 31.9 C
  ID-3: /dev/sda vendor: Samsung model: SSD 860 EVO 2TB size: 1.82 TiB
    speed: 6.0 Gb/s serial: <filter> temp: 33 C
Partition:
  ID-1: / size: 929.91 GiB used: 3.57 GiB (0.4%) fs: btrfs dev: /dev/dm-0
    mapped: luks-5cd655fe-dd68-42c8-800d-8691c884ab43
  ID-2: /boot size: 973.4 MiB used: 152.3 MiB (15.6%) fs: ext4
    dev: /dev/nvme0n1p2
  ID-3: /boot/efi size: 598.8 MiB used: 13.9 MiB (2.3%) fs: vfat
    dev: /dev/nvme0n1p1
  ID-4: /home size: 929.91 GiB used: 3.57 GiB (0.4%) fs: btrfs
    dev: /dev/dm-0 mapped: luks-5cd655fe-dd68-42c8-800d-8691c884ab43
Swap:
  ID-1: swap-1 type: zram size: 8 GiB used: 0 KiB (0.0%) priority: 100
    dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 54.0 C pch: 52.0 C mobo: N/A gpu: nouveau
    temp: 48.0 C
  Fan Speeds (RPM): N/A
Info:
  Processes: 452 Uptime: 3m Memory: 31.16 GiB used: 1.93 GiB (6.2%)
  Init: systemd v: 250 runlevel: 5 target: graphical.target Compilers:
  gcc: 12.0.1 Packages: N/A note: see --pkg Shell: Bash v: 5.1.16
  running-in: gnome-terminal inxi: 3.3.14

NOTE: EGPU is not connected YET

[heinrich@fedora ~]$ dnf list installed *nvidia*
Error: No matching Packages to list
sudo dnf update -y # and reboot if you are not on the latest kernel
sudo dnf install akmod-nvidia # rhel/centos users can use kmod-nvidia instead
sudo dnf install xorg-x11-drv-nvidia-cuda #optional for cuda/nvdec/nvenc support
  1. Waited for it build.
  2. Reboot.

After reboot

  1. I noticed that About>Graphics switched from NV17 to Quadro 2000.
[heinrich@fedora ~]$ dnf list installed *nvidia*
Installed Packages
akmod-nvidia.x86_64                       3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
kmod-nvidia-5.17.5-300.fc36.x86_64.x86_64 3:510.68.02-1.fc36 @@commandline      
nvidia-persistenced.x86_64                3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
nvidia-settings.x86_64                    3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia.x86_64                3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda.x86_64           3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-cuda-libs.x86_64      3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-kmodsrc.x86_64        3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-libs.x86_64           3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver
xorg-x11-drv-nvidia-power.x86_64          3:510.68.02-1.fc36 @rpmfusion-nonfree-nvidia-driver

Note: all these items are in RED. I am not sure why.

[heinrich@fedora ~]$ lspci | grep -i --color 'vga\|3d\|2d'
01:00.0 VGA compatible controller: NVIDIA Corporation GP107GLM [Quadro P2000 Mobile] (rev a1)
  1. Connect eGPU.
[heinrich@fedora ~]$ lspci | grep -i --color 'vga\|3d\|2d'
01:00.0 VGA compatible controller: NVIDIA Corporation GP107GLM [Quadro P2000 Mobile] (rev a1)
3d:00.0 VGA compatible controller: NVIDIA Corporation TU102 [GeForce RTX 2080 Ti] (rev a1)
3d:00.1 Audio device: NVIDIA Corporation TU102 High Definition Audio Controller (rev a1)
3d:00.2 USB controller: NVIDIA Corporation TU102 USB 3.1 Host Controller (rev a1)
3d:00.3 Serial bus controller: NVIDIA Corporation TU102 USB Type-C UCSI Controller (rev a1)

Current State: With the eGPU connected, it is on. But nothing in Settings>Displays shows a second display and the Secondary Display is not showing a signal.

Please advise.

Experiment #1:

  1. Log in VIA Gnome XORG.
  2. Install egpu-switcher.
  3. Log out
  4. ERROR. Can’t log back in via GNOME XORG.
  5. Log back in via Gnome (Wayland).
  6. Uninstalled egpu-switcher.
  7. Able to re-log back in using XORG.

Experiment #2:

  1. Log In VIA Gnome XORG
  2. Install gswitch
  3. Log out
  4. ERROR. Can’t log back in via GNOME XORG.
  5. Log back in via Gnome (Wayland).
  6. Uninstalled gswitch.
  7. UNAble to re-log back in using XORG.

I have been having almost exactly the same issues. I just got an nvidia 160 with a Sonnet 750 enclosure. Running a Thinkpad T480 i5-8250u and have tried EndeavourOS (best so far but I screwed the kernel up), then PopOS (wouldn’t even install half the time), Fedora (almost exactly the situation you are describing), Ubuntu(finally got everything working nearly flawlessly, but there is lag that is unbearable), and now I am on my other ssd (Windows 11) where everything, infuriatingly, works without a hitch.

I mean, fuck Nvidia for not respecting an entire community, but in the meantime. Have you found a solution?

That was the Fedora deal, literally everything worked perfectly, and the little Fedora logo would even pop in and out of the 4K display on login and logout, but the would not have a signal. Even in display manager, it recognized it and I could send windows over there. Literally just no output.

There is no solution YET! But I testing various things and so far nothing.

I do not want to “COWBOY” any files But when I get the solution, it will be posted here for all to see!

So, I have had success on my machine!

I’m still not going to wipe Windows yet, however much I may want to, until I learn the ins and outs of different configs and everything. But it is definitely working on Fedora.

I removed the Lenovo thunderbolt dock from the equation, and now have the egpu connected directly to my Thinkpad through TB3. I have my 4K monitor connected through displayport and another monitor connected through HDMI. Both straight o the egpu Nvidia card.

I will recount as best as I can.

  • In my bios, thunderbolt security is set to “none”

  • From a fresh install, I installed akmod-nvidia, and gave time for the module to load before reboot. (systemctl reboot, just in case).

-Reboot and select “Gnome on Xorg” at login.

  • I also installed egpu-switcher from gGithub

  • I may have run sudo modprobe nvidia, not sure about that.

But then I just ran egpu-switcher setup, and went through the prompts. I believe I did not specify an internal gpu (intel) at all, I just made sure to specify the egpu in the prompt.

I then simply logged out, and went back into Xorg and everything was running flawlessly

I hope this can eventually help somebody. I am going to start playing around with offloading and CUDA and things like that. There seems to be a slight screen tearing issue when draggin windows across the 4K monitor quickly, but that seems fixable.

Cheers!

Hi all, I’ve gotten an NVIDIA eGPU to work on Fedora 36/37’s KDE spin on Wayland instead of X11. I wrote up instructions on the eGPU.io forum. If your laptop doesn’t have a dGPU you can skip the section (step 7) with disabling the dGPU/configuring vfio drivers.

I don’t use GNOME, so you’ll have to do something different in the section where I set a KDE environment variable to /dev/dri/card1 (step 11). It looks like GNOME sets the primary GPU via a udev rule instead, see here.

I hope this helps anyone else looking to setup an NVIDIA eGPU on Wayland.