Skip to content

Instantly share code, notes, and snippets.

@TylerCode
Last active January 10, 2024 00:14
Show Gist options
  • Save TylerCode/26753277600abd308974f3923dab4d67 to your computer and use it in GitHub Desktop.
Save TylerCode/26753277600abd308974f3923dab4d67 to your computer and use it in GitHub Desktop.
Getting an eGPU Working on Zorin OS 17

eGPU on Zorin OS 17

First a little disclaimer; this guide partially works for me but it might not work for you. eGPU's seem to be one of the most fragile setups imagineable from a software standpoint. 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.

I also still have issues with the Ethernet port on the core X, still have issues with all but 1 USB port (top left), still have issues running the laptop WITHOUT the core x connected. 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
    • RTX 2080

They are connected together using a high quality TB4 cable. There are two screens connected directly to the RTX 2080. I have secure boot enabled.

Install

  • Plug in your eGPU as your desired setup and then boot to install Zorin OS (with Nvidia graphics) as you normally would.
  • After the install, reboot as instructed and login.
  • Note: Once booted up, if I go to the NVIDIA X manager, I can't see the RTX 2080 in the settings. If you DO see your GPU, you might be able to skip to installing the eGPU-switcher
  • Open up a terminal and update the system:
sudo apt update && sudo apt upgrade -y
  • Next, you need to prep for NEW drivers to be installed
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
  • Since we already have display drivers, we need to get rid of those first and clean up the system. (I know we specifically installed them with the OS but for some reason NOT installing them causes this to not work, I don't know why.)
sudo apt purge nvidia-*
sudo apt autoremove
sudo apt autoclean
sudo apt update
sudo apt install -f
  • Install the new drivers
sudo ubuntu-drivers autoinstall
  • In this case, I got 545.29.06, where it helps, I also have kernel 6.2.0-39-generic (this seems, mostly optional)
  • After the install, reboot
  • After the reboot, open up the Nvidia X settings, if you can see the eGPU's graphics cards, then you are on the right path, you still won't see anything on the connected displays though. If you don't see your GPU in the Nvidia X Settings, try another driver version, use boltctl and lspci to make sure the device is showing up as you may have an unrelated issue.
  • Next we want to select the GPU profile in PRIME and create a config
sudo prime-select nvidia
sudo nvidia-xconfig
  • Next we go to the eGPU switcher github and download the latest AMD64 release from the "releases". https://github.com/hertg/egpu-switcher
  • After we have it downloaded, open a terminal in your download folder and install the tool
sudo cp egpu-switcher-amd64 /opt/egpu-switcher
sudo chmod 755 /opt/egpu-switcher
sudo ln -s /opt/egpu-switcher /usr/bin/egpu-switcher
  • Next, we'll enable it
sudo egpu-switcher enable
  • It will ask you which GPU you want to use, on the off chance that you are shown vendor and product IDs instead of the name of the GPU, you can look those up no problem and figure it out. Specify the GPU (in my case it was 3) and it will finish the setup.
  • Reboot
  • If everything was done right, your eGPU connected displays should spring to life and be powered by your eGPU

That's it. When I undock I have to reset the eGPU switcher (it seems to forget to do the "switch" part). I also have issues with the wrong GPU being used very often for applications. I basically test if the game uses the right GPU and uninstall it if it doesn't work because I've tried all the command line options I could find and still nothing. Ideally I could disable the 1650 Ti

Additional context that may or may not be helpful

When I install Zorin OS with the nvidia drivers, it detects everything with lspci and boltctl but there is seemingly no way to activate the GPU. Nvidia X Settings would also not show the 2080 in the list. I also tried every single driver in the settings (rebooting between) and got the same results.

If I didn't install the drivers at all, the integrated GPU would take the load but pipe the output through the 2080, also unideal.

If I STARTED with an install of no drivers, then tried to add them, I would get other strange errors.

Finally, my NeoFetch with more of my system information once it was all working:

        `osssssssssssssssssssso`           tyler@Z 
       .osssssssssssssssssssssso.          -------- 
      .+oooooooooooooooooooooooo+.         OS: Zorin OS 17 x86_64 
                                           Host: ConceptD CC315-72G V1.10 
                                           Kernel: 6.2.0-39-generic 
  `::::::::::::::::::::::.         .:`     Uptime: 1 hour, 16 mins 
 `+ssssssssssssssssss+:.`     `.:+ssso`    Packages: 2194 (dpkg), 84 (flatpak), 4 (snap) 
.ossssssssssssssso/.       `-+ossssssso.   Shell: bash 5.1.16 
ssssssssssssso/-`      `-/osssssssssssss   Resolution: 3840x2160, 1440x2560 
.ossssssso/-`      .-/ossssssssssssssso.   DE: GNOME 43.9 
 `+sss+:.      `.:+ssssssssssssssssss+`    WM: Mutter 
  `:.         .::::::::::::::::::::::`     WM Theme: ZorinOrange-Light 
                                           Theme: ZorinOrange-Light [GTK2/3] 
                                           Icons: ZorinOrange-Light [GTK2/3] 
      .+oooooooooooooooooooooooo+.         Terminal: gnome-terminal 
       -osssssssssssssssssssssso-          CPU: Intel i7-10750H (12) @ 5.000GHz 
        `osssssssssssssssssssso`           GPU: NVIDIA GeForce RTX 2080 Rev. A 
                                           GPU: Intel CometLake-H GT2 [UHD Graphics] 
                                           GPU: NVIDIA GeForce GTX 1650 Ti Mobile 
                                           Memory: 4952MiB / 15786MiB 
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment