eGPU on Linux Ubuntu 19.04 - Easy-to-use setup script
 

eGPU on Linux Ubuntu 19.04 - Easy-to-use setup script  

 of  2
  RSS

(@jjj850314)
New Member
Joined: 1 year ago
 

@hertg
Did i need to install any driver to get my eGPU work?
I try to used the script but the benchmark still as low as my igpu score 😥 

my laptop:Lenovo T480
Tul 240FU+PowerColor RX570 8GB

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

@jjj850314 Which distro are you running? The AMD drivers should already be included.

 

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
(@jjj850314)
New Member
Joined: 1 year ago
 

@itsage

I use Ubuntu 19.04
Benchmark:Unigine_Heaven-4.0
it have the same problem on Evga GTX1060

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
RimsOnAToaster
(@rimsonatoaster)
Eminent Member
Joined: 3 years ago
 

Loving this script!!! It's absolutely brilliant on 19.04 with my Dell XPS 9570. It would be rad if it worked as well on an LTS version of Ubuntu. I''m curious to hear what sort of struggles might be had with that.
Thank you so much!

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


itsage liked
ReplyQuote
hertg
(@hertg)
Active Member
Joined: 9 months ago
 

@rimsonatoaster

Hey, thanks for the post. I did actually build it on my ppa for Disco (19.04) as well as Bionic (18.04 LTS).

It should actually work on any linux distro, as long as it supports XServer, Systemd and Bash scripts. You just have to build it yourself with "make" 🙂

Notebook: Lenovo ThinkPad X1 Extreme (GTX 1050 Max-Q Ti)
EGPU: Mantiz MZ-02 VENUS (GTX 1080)
OS: Ubuntu 19.04


itsage liked
ReplyQuote
nu_ninja
(@nu_ninja)
Reputable Member
Joined: 2 years ago
 

It's worth mentioning I think that some things, particularly eGPU hotplug support, have gotten better with kernel version 5.0+ and GNOME 3.32+, which are both in Ubuntu 19.04. So I think it's worth being on 19.04 for Ubuntu eGPU users.

Edit: Oh yeah, and I can confirm that I was able to build the script in Manjaro so that's nice 🙂

This post was modified 4 months ago

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460/560 (AKiTiO Node/Thunder2)
+ macOS 10.15+Win10 + Linux Mint 19.1


itsage liked
ReplyQuote
dannawilson
(@dannawilson)
New Member
Joined: 3 months ago
 

I registered an account simply to say thanks for creating this script, it made this process so simple.

For others reference, this script worked seamlessly for me on a Dell XPS 15 9560 running Ubuntu 18.04.03 LTS with an Akitio Node and an Nvidia GT740 (only card I had spare to test with). It detected the iGPU on the i7, the GTX1050 dGPU in the laptop, and the 740 in the Node first time.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
(@andrew_shuman)
New Member
Joined: 3 months ago
 

For my Ubuntu 19.04, when I finish typing my password and press enter, the whole system seems to go to sleep. If I switch sessions and finally get in, the resolution is off and everything is very laggy. The only way around this is to press enter and my mouse button rapidly until I am able to see the desktop. I am running a Dell Precision 5520, RTX2070 egpu, Ubuntu 19.04 with proprietary drivers. Anyone else have this issue?

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
nu_ninja
(@nu_ninja)
Reputable Member
Joined: 2 years ago
 

@andrew_shuman

A couple of questions:

1. In /etc/gdm3/custom.conf is WaylandEnable=false commented out or not? Uncommenting this line or installing a purely X based login manager like lightdm would be the first thing I would try.

2. What's your display configuration? Do you have an external display connected to the eGPU or are you using the laptop's internal display?

Edit: Actually, before all that, re-run egpu-switcher setup and post the names and ids of what outputs you are selecting

This post was modified 3 months ago

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460/560 (AKiTiO Node/Thunder2)
+ macOS 10.15+Win10 + Linux Mint 19.1


ReplyQuote
itsage
(@itsage)
Illustrious Member Admin
Joined: 3 years ago
 

@hertg Your script still works great in Ubuntu and Pop!_OS 19.10! There’s also some enhancement in this version at the login screen. I hot-plugged a Thunderbolt 3 NVMe M.2 adapter and saw this notification.

This post was modified 3 months ago

external graphics card builds
best laptops for external GPU
eGPU enclosure buyer's guide


ReplyQuote
pandasauce
(@pandasauce)
New Member
Joined: 3 months ago
 

Having some really weird issues with this when using external displays connected to the eGPU.

Using NVIDIA PRIME, I can get the internal screen to render on the eGPU by setting up eGPU's Bus ID under /usr/share/X11/xorg.conf.d/10-nvidia.conf. However, my laptop remains completely unaware of external screens connected to eGPU.

Using this eGPU switcher, if I remove all nvidia and intel related files from /usr/share/X11/xorg.conf.d, I can get output on the external screen connected to eGPU. However, in this case, nothing is actually rendered by eGPU according to nvidia-smi. I also get massive mouse lag, 2 seconds or so. It moves smoothly, but with a 2 sec delay and everything freezes up while it's moving. A little more investigation shows that this option actually results in software rendering (llvmpipe), so it's not working.

My preference would of course be to use external screens and render everything on the eGPU. This is 18.04 LTS with nvidia-435 drivers. Does anybody have any ideas as to why this may be happening?

This turned out to be caused by https://bugs.launchpad.net/ubuntu/+source/gdm3/+bug/1716857 , even though TB16 dock monitors and DP/HDMI ports on the laptop are not affected by it. Looks like it's lightdm life for me going forward.

This post was modified 3 months ago

Multiple generations of Dell XPS 15 on Ubuntu 18.04 LTS and RTX 2070S. Stable drivers branch.


ReplyQuote
nu_ninja
(@nu_ninja)
Reputable Member
Joined: 2 years ago
 

To those with lagging issues: this can happen when X is running in a non-bandwidth effiecient way. For example if X is running on the igpu but then using the egpu for rendering before outputting to an egpu connected display this causes unnecessary thunderbolt bandwidth use and is the problem these scripts are written to address.

If using an nvidia card and the proprietary drivers, I would start by purging all old drivers and configuration and trying to use just the latest drivers (as installed from, say, the ubuntu software update tool) with this script or the gswitch script. This seems to yield good results in many cases.

Sidenote, if using the open source drivers you want to use the external setting of these scripts only when using an external display. When using the internal display with the egpu you should switch to the internal mode and use the DRI_PRIME=1 environment variable.

Edit: Here's a list of the exact packages I was using when testing:

nvidia-compute-utils-430* nvidia-dkms-430* nvidia-driver-430* nvidia-kernel-common-430* nvidia-kernel-source-430* nvidia-prime* nvidia-settings* nvidia-utils-430*

This post was modified 3 months ago

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460/560 (AKiTiO Node/Thunder2)
+ macOS 10.15+Win10 + Linux Mint 19.1


itsage liked
ReplyQuote
wunhand
(@wunhand)
New Member
Joined: 1 month ago
 

I wanted to post this in case the script does not work for people.  I had to figure these steps out the hard way:

Using Ubuntu 19.10 [am running egpu from internal display] - after enabling thunderbolt, blacklist nouveau, install drivers, configure Xorg file (basic steps - these can be found online) - I was also stuck because I would get screen to hang at boot.  I had to do these additional steps [involved booting to terminal as well and removing xorg file if needing to boot into desktop temporarily]:

With the Xorg file configured (adding the BusID , etc... AllowEmptyIntialConfiguration... AllowExternalGpus..." - you can find these templates on many forum posts and how to create this)...

Once you save that file, and then reinstall  Nvidia driver manually from website (you need at least 2 different versions of the file in order to make this work so as to install a different version) - and then let Nvidia recreate Xorg file for you (this is an option in the NVidia download script file) - the template Nvidia software created was different (if you didn't create an Xorg file yourself first using the different forum post templates - then you get some generic Xorg file that doesn't work - so it is very important to create the Xorg file and have Nvidia installer work off of that) and I was able to tweak it.  Here was the output (added BusID and also made sure that eGPU videocard was listed under Screen - you will see what was added if you follow steps):

Section "ServerLayout"
    Identifier "Default Layout"
    Screen 0 "Screen0" 0 0
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse0" "CorePointer"
EndSection

Section "Module"
    Load "modesetting"
    Load "glx"
EndSection

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
EndSection

Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/psaux"
    Option "Emulate3Buttons" "no"
    Option "ZAxisMapping" "4 5"
EndSection

Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BusID "PCI:61:0:0"
    Option "AllowEmptyInitialConfiguration"
    Option "AllowExternalGpus" "True"
    Option "Coolbits" "4"
EndSection

Section "Device"
    Identifier "Videocard1"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    DefaultDepth 24
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection
 

I have a Lenovo  Thinkpad  X1 Extreme 1st Gen Laptop dGPU (1050ti maxq) as well as eGPU (2080ti).  Then it hung again after about a week of use, and I booted to terminal and installed driver again (remember that there are 2 drivers downloaded - so switched back to that other driver file for install) - had Nvidia recreate the Xorg file from previous Xorg file I tweaked - and got this:

Section "ServerLayout"
    Identifier "Default Layout"
    Screen 0 "Screen0" 0 0
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse0" "CorePointer"
EndSection

Section "Module"
    Load "modesetting"
    Load "glx"
EndSection

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
EndSection

Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/psaux"
    Option "Emulate3Buttons" "no"
    Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier "Monitor0"
    VendorName "Unknown"
    ModelName "Unknown"
    Option "DPMS"
EndSection

Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BusID "PCI:61:0:0"
EndSection

Section "Device"
    Identifier "Videocard1"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BusID "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    Option "AllowEmptyInitialConfiguration"
    Option "AllowExternalGpus" "True"
    Option "Coolbits" "4"
    SubSection "Display"
        Depth 24
    EndSubSection
EndSection

Had to tweak Xorg file - but you will see where I tweaked if you follow those steps - and other thing I had to do was to tweak BIOS settings.  I had to do more than just allow Thunderbolt connection.  I had to switch to hybrid graphics, No boot time delay, Diagnostic boot - no Thunderbolt security, Pre Boot ACL (authorization with user intervention) - basically the timing of the boot sequence has to be exactly right...

So I didn't see anybody posting these things which is why I am doing so.  It was not as easy for me as just using a basic Xorg file.

Pending: Add my system information and expected eGPU configuration to my signature to give context to my posts


ReplyQuote
(@kyle_landrith)
Active Member
Joined: 1 month ago
 

So I used this script and it seems to be working fine, however I have a question. When I am disconnected from my eGPU and I have my internal gpu set to intel integrated, the nvidia kernel module is still loaded and my dGPU is still powered up, it's just not being used. I actually think it was on p0 power state (full power) if I remember correctly (will check tomorrow and edit post). This obviously kills the benefit of having the integrated intel gpu for battery life if the dGPU is just going to be burning the midnight oil doing nothing even if I am not using it. Is there a way around this?

Dell XPS 15 9570 i78750H, 32GB RAM, 1TB Samsung 970 Evo Plus, Sonnet Breakaway Box 650W, EVGA 2080 Super XC Hybrid sending it to an LG 3840x1600 38" ultra-wide. Running Linux (Kubuntu 18.04).


ReplyQuote
nu_ninja
(@nu_ninja)
Reputable Member
Joined: 2 years ago
 

@kyle_landrith

I believe this is an issue that pop os addresses. I don't have this configuration but @itsage might have info on how well it works.

Mid-2012 13" Macbook Pro (MacBookPro9,2) TB1 -> RX 460/560 (AKiTiO Node/Thunder2)
+ macOS 10.15+Win10 + Linux Mint 19.1


ReplyQuote
hertg
(@hertg)
Active Member
Joined: 9 months ago
 

@wunhand

Hey there, thanks for your post.
I'm also using a Lenovo X1 Extreme (1st Gen.). I found that it's easiest to install Ubuntu without having the EGPU attached and disable "Hybrid Graphics" in the BIOS first. Then choose to install third-party drivers in the installation process (This will install the drivers from NVIDIA rather than the Nouveau ones, afaik). I have actually mentioned this in the README, but it may be hard to find at the bottom of the page :). Once everything is installed you can change the Display Settings back to "Hybrid Graphics" if you like.

Also, I did change the Thunderbolt Settings to "No Security", I've experienced far less issues with this configuration. (Just make sure you understand the security implications this might have. Have a look at my other post where i mentioned it).

By following these steps i didn't need to tweak the xorg.conf file manually on my Lenovo X1 Extreme. 🙂

 

Notebook: Lenovo ThinkPad X1 Extreme (GTX 1050 Max-Q Ti)
EGPU: Mantiz MZ-02 VENUS (GTX 1080)
OS: Ubuntu 19.04


ReplyQuote
 of  2