Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

Has anybody got any idea what would be needed to have a working external GPU system (eGPU) under Linux? I've just seen this post of a DIY eGPU system:

http://forum.tabletpcreview.com/hardware/40268-diy-egpu-tablet-pcs-experiences-benchmarks-setup-ect.html

I found this mentioned which I think is also relevant:

My system has switchable graphics. Can I still do a eGPU?

Yes you can. Setup 1.x's (Video card->Hybrid Graphics.dedicated=off) allows the dedicated graphics component to be completely disabled on Series-5 or older chipsets, freeing up 32-bit resources to host the desktop eGPU. If your primary video card is a Intel 4500MHD, HD or HD3000 then can even do a x1.Opt NVIDIA setup.

share|improve this question

2 Answers 2

up vote 3 down vote accepted

I can confirm that it works in 12.04. Tested with PE4H + EC2C on a thinkpad x220, using an Nvidia GTX 560ti. The tricky part was getting a working xorg.conf.

I needed the nvidia drivers :

sudo apt-get install nvidia-current

You need to find the correct pci bus for the graphic card.

lspci gave me :

05:00.0 VGA compatible controller: NVIDIA Corporation GF110 [GeForce GTX 560 Ti] (rev a1)

So in the "Device" section of xorg.conf, I set:

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    BusId          "PCI:5:0:0"
    VendorName     "NVIDIA Corporation"
EndSection

Then use nvidia-settings after a reboot or a Xorg restart to configure the monitor(s) resolution(s).

It should be noted that it works much better in windows than linux and I had to disable compiz because it lagged so much. I will update if I can get both cards (HD3000 + Nvidia) at the same time.

share|improve this answer

It's an interesting idea and I can't see why it wouldn't work on a technical level because Linux does support ExpressCard devices (as PCIE) so the riser on the other end should work and it should detect the graphics card too. From there it's just a case of using the nvidia drivers.

However there are some things that might give you grief:

  • You might need to manually add the module for ExpressCard:

    sudo modprobe pciehp pciehp_force=1
    

    You can do this automatically too.

  • Assuming the built-in graphics card isn't Nvidia, you might have a battle of drivers and configurations. Nvidia drivers still require a fairly static Xorg.conf file so you're going to need to manually set up two configurations, one for the onboard (so it knows what to do if there's no external card) and a layout for when it is present.

    I'm over-simplifying this - it could be a real headache to get X behaving.

  • You won't be able to hotplug this configuration. You'll need to restart X (and all the applications it has loaded) in order to switch graphics cards.

  • I don't think you'll be able to render things through the external card onto the built-in screen; aka you'll need an external monitor. The page you link to has it displaying on the laptop's screen but I don't see how it could be without some sort of extra hardware hack. Edit: I see from that post that it uses Optimus. This part won't work in Linux; you'll need an external monitor.

I wouldn't spend too much money on this if you're not sure it'll work.

If you've got $130 that you won't mind losing (or trying to recoup on ebay) start with the ExpressCard riser and a dirt-cheap, lowest-end Nvidia card. If it's low-end enough, you might be able to get by without a proper ATX PSU. See if it works... If it does, buy a proper PSU and a nice graphics card and rock on.

And if you do get it working, please document it somewhere!

share|improve this answer
1  
Thanks for the detailed explanation. It seems like in Windows it's possible to treat the eGPU just as another card in a hybrid graphics system, which I think is good news for Linux, since we already have hybrid-graphics support. For example, the new Sony Vaio Z-series come with an eGPU configuration, which should be great to have working under Linux. –  213441265152351 Aug 9 '11 at 14:21

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.