Skip to content

Instantly share code, notes, and snippets.

@TylerCode
Last active March 26, 2024 21:04
Show Gist options
  • Save TylerCode/7d3e8825d7b98720b28498e886bdb9dd to your computer and use it in GitHub Desktop.
Save TylerCode/7d3e8825d7b98720b28498e886bdb9dd to your computer and use it in GitHub Desktop.
Getting an eGPU working on Wayland

Another day, another eGPU documentation

First another little disclaimer; this guide partially works for me but it might not work for you. eGPU's seem to be an unwanted stepchild in terms of support. I wish anyone luck!

Also for some expectation setting, hotswap isn't a thing. I don't think that Linux will ever have hotswap eGPU support so if you want to plug or unplug the GPU, power down first. Being fair, this doesn't really work great on Windows either.

I also still have issues with the Ethernet port on the core X, and still have issues with all but 1 USB port (top left). Happy for advice on any fixes.

My Setup

For some additional context, I'm running:

  • An Acer Laptop (ConceptD CC315-72G)
    • GTX 1650 Ti
    • Integrated Intel Graphics
  • Razer Core X Chroma
    • ARC A770 (Previously an RTX 2080)

They are connected together using a high quality TB4 cable. There are two screens connected directly to the Arc A770. I have secure boot disabled.

I switched from the 2080 to the A770 because of Nvidia's neglectfully terrible drivers. Wayland is the future and it wasn't worth troubleshooting X11 further with crappy Nvidia drivers. Intel isn't the ideal candidate, but I don't have AMD cards laying around.

The idea is being able to use drivers built right into the kernel and from what I've seen, this will work pretty well on 6.2+ kernel versions.

Install

  • Plug up the system as you will use it docked, so connect the eGPU
  • Install the OS of choice, I've gotten this working in Tumbleweed, Fedora, and KDE Neon.
  • After the install, when you get to the login screen, there should be a way to select the session, you want Wayland (NOT X11).
  • Once logged in, at this point you should be able to see monitors connected to the eGPU light up, they will be slow! Like 1FPS slow!
  • Run updates for your OS to make sure you've got the latest
  • Install all-ways-egpu from ewagner12
cd ~; curl -qLs  https://github.com/ewagner12/all-ways-egpu/releases/latest/download/all-ways-egpu.zip  -o all-ways-egpu.zip; unzip all-ways-egpu.zip; cd all-ways-egpu-main; chmod +x install.sh; sudo ./install.sh install; cd ../; rm -rf all-ways-egpu.zip all-ways-egpu-main
  • Run the setup
all-ways-egpu setup
  • This will guide you through, select which GPU (and Audio device) are connected to the eGPU
  • It will then ask you which is the internal GPU, I set it to the internal Intel GPU
  • Lastly, it will give you 3 options for the method, you say n to the first, y to the second, and n to the last one.
  • Method 2 is recommended and the one I've had the most success with, only try the others if it's broken.
  • Reboot
  • After you boot back up, the displays should be driven correctly, I would disable the laptop screen because it will waste bandwidth being on and hurt gaming performance
  • That's it! No stupid drivers, no dumb issues, no searching the web for hundreds of hours.

Results

This has fixed a lot of issues I had with the previous setup. I can dock/undock without issues (when powered off for the transition). I have good performance in games. The setup is future ready, running on Wayland. Snappier desktop.

Another interesting thing is that because most Linux games get translated into Vulkan, the bad performance of Intel on older DX games just... isn't a problem on Linux.

This setup ALSO fixes the issue I had with my X11 guide (Zorin centric) where sometimes certain games/applications would just... decide to use the 1650 instead of the RTX 2080. Games that did this were unplayable since there was a huge delay between rendering it then sending it to the 2080 to be rendered.

Additional context that may or may not be helpful

This wonderful choice also remedied an issue on my Windows work laptop with using the eGPU. I had a T series gpu there which was incompatible with the RTX 2080 driver wise. Installed the Intel drivers and I was off to the races.

Neofetch of current system:

             `..---+/---..`                tyler@concept 
         `---.``   ``   `.---.`            ------------- 
      .--.`        ``        `-:-.         OS: KDE neon 5.27 x86_64 
    `:/:     `.----//----.`     :/-        Host: ConceptD CC315-72G V1.10 
   .:.    `---`          `--.`    .:`      Kernel: 6.2.0-39-generic 
  .:`   `--`                .:-    `:.     Uptime: 27 mins 
 `/    `:.      `.-::-.`      -:`   `/`    Packages: 1770 (dpkg), 28 (flatpak), 6 (snap) 
 /.    /.     `:++++++++:`     .:    .:    Shell: bash 5.1.16 
`/    .:     `+++++++++++/      /`   `+`   Resolution: 1920x1080 
/+`   --     .++++++++++++`     :.   .+:   DE: Plasma 5.27.10 
`/    .:     `+++++++++++/      /`   `+`   WM: kwin 
 /`    /.     `:++++++++:`     .:    .:    Theme: [Plasma], Breeze [GTK2/3] 
 ./    `:.      `.:::-.`      -:`   `/`    Icons: [Plasma], breeze-dark [GTK2/3] 
  .:`   `--`                .:-    `:.     Terminal: konsole 
   .:.    `---`          `--.`    .:`      CPU: Intel i7-10750H (12) @ 5.000GHz 
    `:/:     `.----//----.`     :/-        GPU: Intel CometLake-H GT2 [UHD Graphics] 
      .-:.`        ``        `-:-.         GPU: NVIDIA GeForce GTX 1650 Ti Mobile 
         `---.``   ``   `.---.`            GPU: Intel Device 56a0 
             `..---+/---..`                Memory: 2725MiB / 15785MiB 

                                                                   
                                                                   
             .',;::::;,'.                tyler@fedora 
         .';:cccccccccccc:;,.            ------------ 
      .;cccccccccccccccccccccc;.         OS: Fedora Linux 39 (Workstation Edition) x86_64 
    .:cccccccccccccccccccccccccc:.       Host: ConceptD CC315-72G V1.10 
  .;ccccccccccccc;.:dddl:.;ccccccc;.     Kernel: 6.7.9-200.fc39.x86_64 
 .:ccccccccccccc;OWMKOOXMWd;ccccccc:.    Uptime: 5 mins 
.:ccccccccccccc;KMMc;cc;xMMc:ccccccc:.   Packages: 2308 (rpm), 67 (flatpak) 
,cccccccccccccc;MMM.;cc;;WW::cccccccc,   Shell: bash 5.2.26 
:cccccccccccccc;MMM.;cccccccccccccccc:   Resolution: 2560x1440 
:ccccccc;oxOOOo;MMM0OOk.;cccccccccccc:   DE: GNOME 45.5 
cccccc:0MMKxdd:;MMMkddc.;cccccccccccc;   WM: Mutter 
ccccc:XM0';cccc;MMM.;cccccccccccccccc'   WM Theme: Adwaita 
ccccc;MMo;ccccc;MMW.;ccccccccccccccc;    Theme: Adwaita [GTK2/3] 
ccccc;0MNc.ccc.xMMd:ccccccccccccccc;     Icons: Adwaita [GTK2/3] 
cccccc;dNMWXXXWM0::cccccccccccccc:,      Terminal: gnome-terminal 
cccccccc;.:odl:.;cccccccccccccc:,.       CPU: Intel i7-10750H (12) @ 5.000GHz 
:cccccccccccccccccccccccccccc:'.         GPU: Intel CometLake-H GT2 [UHD Graphics] 
.:cccccccccccccccccccccc:;,..            GPU: NVIDIA GeForce GTX 1650 Ti Mobile 
  '::cccccccccccccc::;,.                 Memory: 4174MiB / 15788MiB 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment