FINALLY -- Arch Linux with working eGPU - internal screen AND external monitor off of eGPU (nvidia)
I've been working on this for many weeks... almost ready to throw in the Arch towel. But, FINALLY, through the tools created by the community, I have been able to get my Lenovo Thunderbolt 3 Graphics Dock (GTX 1050 Mobile) working with my Arch install on an X1 Carbon 6th Gen. Here are my steps and results... (I am a total newbie to Linux and Arch, so forgive me if I'm not technically precise -- I'm willing to learn! 🙂 )
3. For my new Arch install, I had to install the wget package from the Arch Community Respository to get the gswitch install to work AND also create the missing directories via sudo mkdir (/usr/local/bin/gswitch)
4. Make scripts executable by going into the respective temp directories:
cd xswitcher sudo chmod +x setup.sh sudo ./setup.sh cd cd gswitch sudo chmod +x gswitch_setup.sh sudo ./gswitch_setup.sh
5. If you get any errors or warnings about directories not existing or files already existing... just mkdir the directories or rm the files and then try again... I had to do this a few times, since I was playing around with all of this at one time.
6. THEN the magic happens (without even having to reboot) -- type in the terminal sudo gswitch egpu
7. When it asks to reload, type y and then the eGPU will load with both the internal screen and external monitor active!
PS: This worked for me... results obviously may vary for you! I would love to help anyone else work their issues with the eGPU madness that is linux support lol. Flexibility (along with compassion and patience) is the key to success!
UPDATE: So, after about 3 reboots... the automatic xorg.conf switching process has broken itself. HOWEVER, the eGPU functionality still works normally (unfortunately w/o hot-plugging) using the gswitch CLI scripting tools. It might not be fireworks right now... but it's getting so close! I can feel it. At least I have somewhat of a normal workflow with my expensive-and-now-not-useless-in-linux-eGPU...
Did you use my example.txt file attached in that post to replace the xswitcher file or did you just edit the xswitcher file with the lines I posted? Just wondering if my part is broken or not.
Hey nu_ninja! I want to say it was just because of my setup with the Lenovo TB3 Graphics Dock and my xorg.conf setup... It has been finicky since I've gotten the thing 😐 . I will say though that I simply copied/pasted over from the example file into the xswitcher file. I triple checked to make sure it was what I needed for my setup, and it did work a few times. Again, I think my eGPU is just not compatible with this sort of scenario, which is unfortunate.... One day we will get this all working for everyone! Still not going back to Windows lol 😉 Thanks!
So, after a few days playing with my eGPU setup... I've removed the xswitcher scripts and reverted everything back to just gswitch, which has worked well. I really want the xswitcher script to work, so I will continue to troubleshoot it. For now, I really need to get work done on some research papers 😐 .
I did want to take the time to upload the contents of my xorg.conf that is currently working with my dual monitor setup -- internal (X1 Carbon 6th Gen display) & external (Dell 24" via HDMI) BOTH powered by the Lenovo TB3 Graphics Dock (GTX 1050m). Note that this config file will most likely not have the same setup as your PCI BusID's, i.e. my nvidia card is listed as PCI:10:0:0. You have to use something like the lspci command to find out what exactly your BusID is for your video card and replace that in the .conf file. Also, your monitor resolutions might differ as well. This just serves as a working example, since I couldn't find one remotely close on the internet.
USE AT YOUR OWN RISK -- It will most likely not work without making the changes necessitated by your current setup! If you need help walking through those possible changes, feel free to post.