Is a NVIDIA GeForce with Optimus Technology supported by Ubuntu?

187,348

Solution 1

Even if the Supported Products tab on the driver download page says that GT420M is supported, the Optimus variants are not supported. From the Additional Information tab:

Some designs incorporating supported GPUs may not be compatible with the Nvidia Linux driver: in particular, notebook and all-in-one desktop designs with switchable (hybrid) or Optimus graphics will not work if means to disable the integrated graphics in hardware are not available.

This Optimus design means that the discrete Nvidia card is wired into the integrated Intel GPU and that it's not connected to a monitor at all. Some hybrid graphics laptops still allow you to choose the Nvidia card in BIOS, but most modern Optimus laptops don't have this option.

I am speaking from experience, I have a GT425M combined with an i5-460M processor. If there is no BIOS or hardware setting for switching / disabling the card, you're throwing away your money. The XPS 15 family does not appear to have any of these features. Although you are able to use the Intel graphics card, you may want to use the Nvidia card as well because you've paid for it which is not directly possible at the moment.

You'd better look for another laptop without Optimus. Optimus is crap and Nvidia refuses to provide better support for Linux. If you are adventurous and buy such a notebook, visit the Linux Hybrid Graphics blog and subscribe to its Launchpad mailing list. Visit their wiki for various ways to get such a card (hopefully) working. One method is called Bumblebee which allows you to render programs on your nvidia card. I currently recommend it over other solutions (disclosure: I'm a developer of it).

Ubuntu 12.10 Quantal will be shipped with the first bits for real support for hybrid graphics laptops, called PRIME. This is highly experimental and in development and probably not stable enough for many people. Only the open-source graphics drivers support this, though Nvidia may release support in the future too if it is not too much work for them. This page tracks hybrid graphics support for Quantal, these are the blueprints for Raring.

If you've installed the driver from nvidia.com

You've made a huge mistake by installing the drivers directly from nvidia.com. If you want to have newer drivers, add the ubuntu-x-swat/x-updates PPA because these will install the nvidia drivers in such a way that your Optimus system does not die.

After installing the nvidia driver from nvidia.com, you may experience loss of all graphics effects, black screen or very slow graphics performance. Uninstallation instructions:

  1. Boot into recovery mode by holding Shift before booting and choosing for the recovery option
  2. In the following menu, choose for netroot.
  3. Uninstall nvidia:

    nvidia-uninstall
    
  4. Remove the configuration file generated by nvidia if any:

    rm /etc/X11/xorg.conf
    
  5. Reinstall the Mesa package for GL:

    apt-get --reinstall install libgl1-mesa-glx
    
  6. When done, reboot with:

    reboot
    

Installation instructions for Bumblebee

If you have installed Bumblebee or Ironhide before, be sure to check the instructions on http://wiki.bumblebee-project.org/Upgrading-on-Ubuntu

Since Bumblebee version 3.0 "Tumbleweed", it can disable the Nvidia card in a safe way to save power (press release). You can also run programs using the discrete card for better performance. Installation instructions:

  1. Enable the Universe and multiverse repository for the Nvidia driver. 1.(optional for 13.10 Saucy) Add a PPA containing recent drivers as the one in the repositories is possibly outdated:

    sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
    
  2. (for 13.04 Raring and earlier, not needed for Saucy and later) Add the Stable Bumblebee Releases PPA:

    sudo add-apt-repository ppa:bumblebee/stable
    sudo apt-get update
    
  3. Install Bumblebee using the proprietary Nvidia driver:

    sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic
    
  4. Reboot or re-login to apply the group changes

If you'd like to run a program on the nvidia card now, use the optirun program:

optirun firefox &

If you are only interested in power savings, replace the last command in step 4 by:

sudo apt-get install --no-install-recommends bumblebee linux-headers-generic

At a later time, you can still use NVIDIA by installing bumblebee-nvidia. If you want to use a 32-bit program, you can still install the required libraries with sudo apt-get install virtualgl-libs-ia32. You have to add linux-headers-generic, otherwise the power saving module bbswitch cannot be built.

Instead of virtualgl, you can also try primus to achieve better performance. The package name is primus and you can use:

primusrun glxgears
# alternative that is nearly the same:
optirun -b primus glxgears

(note: before asking about a 60 fps limit, please read its FAQ.)

See also https://wiki.ubuntu.com/Bumblebee

Notes:

  • Using acpi_call manually is deprecated. By default, it won't survive suspend.
  • Do not use ppa:mj-casalogic/bumblebee or the MrMEEE/bumblebee-Old-and-abandoned git, it's not maintained anymore and contains a lot of errors.
  • Martin Juhl forked the original Bumblebee to Ironhide, but in my opinion it should not be used because the design flaws from the original Bumblebee are still present and the "power management" features are not stable (the wrong methods, _ON and _OFF, are used). Installation is still a mess, your installation may be broken after removing it.

If you do not want to use the nvidia card nor Bumblebee

If you've accidentally installed the nvidia driver (i.e. using the jockey), you've two choices:

  • Uninstall the driver (package nvidia-current)
  • Set the default OpenGL libraries as described in this bugreport

Solution 2

Update as of Ubuntu 12.10:

All the pieces of the graphics stack required to support hybrid graphics made it into 12.10; the Quantal Quetzal has the infrastructure to support for hybrid graphics - both to extend the display when the external monitors can only be driven by the discrete chip, and to run applications on the discrete chip and display them on the integrated GPU.

There are two caveats, though, one large, one minor.

The minor caveat is that there's no GUI support - there's no obvious way to run an application on the discrete GPU. You can do this by setting the DRI_PRIME=1 environment variable before starting an application.

The major caveat is that this only applies to the free drivers - nouveau, radeon, and intel. Nvidia has now expressed interest in supporting hybrid graphics on linux, but the dma-buf kernel symbols they need to use are marked as GPL, which they won't use.

Additionally the hybrid support has seen only light testing, and there are still pieces that remain to be implemented, like synchronisation across GPUs to prevent tearing.

Status as of Ubuntu 12.04 LTS:

nVidia's official position is that they have no plans to support Optimus on Linux - our graphics stack is engineered with an assumption that only one card is driving a given display, and it's not easy to work around.

Dave Airlie has done a lot of work untangling this in the X server and kernel, and that'll likely be rebased on the drm-buf work that's primarily come out of the ARM world via Linaro. Once this is all up and running - which seems to be 6 months to a year away - it'll be possible to do hybrid graphics correctly. At that point nVidia might reconsider supporting Optimus on Linux, as it will no longer be a huge technical mess to implement¹.

In terms of supporting hybrid graphics now, the Bumblebee project does something along those lines. It essentially runs a second X server on the nVidia card and copies across the output of the rendering. This is not as bad as it might sound - that's basically what the nVidia card does under Windows 7, too, just with a little bit of hardware support.

The Ubuntu X team does not plan to support Bumblebee or Ironhide (a fork of Bumblebee).

If your system has a BIOS option to switch between the Intel and nVidia cards then you can chose between them.

If your system has a hardware mux - so both the nVidia and Intel GPUs are connected to the outputs - and vga_swicheroo works, you can use that interface to switch between them, but only if you're using the open-source drivers. For 12.04 we plan to ensure that the unused GPU is turned off in this case, which should improve battery life.

If your system doesn't have a BIOS option and doesn't have a hardware mux that vga_switcheroo knows how to drive then your nVidia card will not be usable on 12.04.

¹: AMD's fglrx driver has some support for hybrid graphics. It appears to do this by pretending to be an X server and loading the Intel driver itself. This is not a clean solution ☺.

Solution 3

Your laptop is nvidia - optimus enabled. Its a dual graphics configuration to save power. Presently nvidia doesn't provide any support for this technology in linux. So in linux both graphics card are on which lead to high battery consumption and overheat. For more detail read the links listed below.

In optimus tech, the intel graphics is always on. When you use GT540M, images generated by GT540M actully transported through intel grphics card.

options available in linux

Turn off nvidia GT540M and use intel only. Use Nvidia card with special command only when required. Also never install nvidia-drivers alone.

Instruction for installing Bumblebee to turn off discrete GPU and enable only when required

  1. Type the following in terminal,

    sudo add-apt-repository ppa:bumblebee/stable
    

    then

    sudo apt-get update
    
  2. To install Bumblebee using the proprietary nvidia driver:

    sudo apt-get install bumblebee bumblebee-nvidia linux-headers-generic
    
  3. Reboot.


If you just want to disable nvidia card, no need to learn followings

Usage Instruction :

To run a program with nvidia card, use optirun command prefixed in terminal. Like to run glxspheres with nvidia card type. However a gui method also exist.

optirun glxspheres

To run firefox type:

optirun firefox &

Note: If you intend to run 32-bit programs like Wine and using Ubuntu 11.10 Oneiric or later, install 32-bit libraries with:

sudo apt-get install virtualgl-libs:i386 libgl1-mesa-glx:i386 libc6:i386

Linked Questions:

Can't use nvidia card/driver on optimus notebook

Solution 4

NVIDIA Optimus is not supported in any way on present unix platforms.

This is specifically for any laptop (mobile) NVIDIA based system that says OPTIMUS in its specifications list. You will not be able to even use the NVIDIA graphics in your Ubuntu. You will need to work with the integrated Intel Graphics drivers (to the extent they are supported for your platform -- Sandy Bridge support is still weak).

It should be noted that Optimus is different from the older ability to switch between the integrated (usually Intel) and discrete (NVIDIA, ATI) graphics systems. With Optimus, the integrated graphics path is always in use and lets you (additionally) enable the discrete graphics when required -- this needs Windows 7 at the moment (afaik, won't work on Vista either).

Here are a few references to get up to speed on this.

  1. UbuntuForums: nVidia Optimus and Ubuntu explained
  2. phoronix: Will NVIDIA Optimus Inevitably Come To Linux?
    Posted by Michael Larabel on April 25, 2011

hint: I use a XPS 15 L502x with the 525M Optimus discrete graphics.


Update: This is a quote from the NVIDIA Drivers 270.06 page in the Additional Information tab.

Some designs incorporating supported GPUs may not be compatible with the NVIDIA Linux driver: in particular, notebook and all-in-one desktop designs with switchable (hybrid) or Optimus graphics will not work if means to disable the integrated graphics in hardware are not available.

Now you know what to look for in your new NVIDIA based laptop specs if you want to drive the NVIDIA from linux.


Update: Look at the Bumblebee-Project.
Start from the README there.

Solution 5

Currently there is Bumblebee to support nVidia Optimus.

I have a Dell Latitude E6520 with Intel Core i5 (with built-in Intel graphics) and an nVidia 420M graphics card. You can run a program with optirun (type optirun programname in a terminal to start programname) and then it will be able to use the nVidia graphics.

I haven't tried it with CUDA programs.

Share:
187,348

Related videos on Youtube

DSJones
Author by

DSJones

Updated on September 18, 2022

Comments

  • DSJones
    DSJones almost 2 years

    I am considering buying a Dell XPS 15 laptop. The laptop has a Nvidia 420m card which should work with Linux but I keep reading that the Nvidia Optimus technology isn't supported on Linux. I am not really interested in switching from Nvidia to Intel to save power but need to know that the Nvidia card will in fact work if I installed Ubuntu.

    If anyone has experience using a Nvidia card with Optimus technology or even better the exact laptop in question (Dell XPS 15 with 1GB NVIDIA® GeForce® GT 420M) it would be great.

    A major problem holding people back from adopting Linux is this sort of hardware issue. I am a long term Ubuntu user and supporter who can't afford to make a mistake with a purchase like this. I don't want to spend £500+ to find I have no graphics acceleration because Windows 7 is not an option.

    • 719016
      719016 over 12 years
      Things may improve a bit given that there is a blueprint for hybrid graphics support: blueprints.launchpad.net/ubuntu/+spec/desktop-p-hybrid-graph‌​ics But I wouldn't expect to be fully supported to the level it is supported in Windows.
    • Andreas Johansson
      Andreas Johansson about 12 years
      Here is live demo overview: youtube.com/watch?v=6ki7PLcXo00
    • Admin
      Admin about 12 years
      CUDA works very well with bumblebee. I'm using GPU rendering in Blender.
    • Stop Slandering Monica Cellio
      Stop Slandering Monica Cellio almost 12 years
      "A major problem holding people back from adopting Linux is this sort of hardware issue." Worth repeating.
    • foodiepanda
      foodiepanda about 11 years
    • Tachyons
      Tachyons almost 10 years
      now it works with nvidia prime driver
    • Vins
      Vins almost 6 years
      If you have not installed manually any nvdia drivers then following command is enough. Just reboot after executing it. "sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic"
  • Thomas Ward
    Thomas Ward almost 13 years
    This does not work with Optimus systems. Currently, no presently available driver for UNIX/Linux systems operates correctly on Optimus systems.
  • Lekensteyn
    Lekensteyn over 12 years
    @JorgeCastro Bumblebee is only necessary if you want to use the nvidia card. If you don't install the nvidia driver, the Intel card will function fine.
  • Lekensteyn
    Lekensteyn over 12 years
    @JorgeCastro That's correct, no further action is necessary to have a working graphical desktop. Just tell people not to install the nvidia driver. If they already did, they should remove it.
  • htorque
    htorque over 12 years
    What about energy consumption? Isn't Bumblebee able to switch off the inactive (Nvidia) GPU? AFAIK it will still be active and suck power if you go the "just ignore Jockey" route (which at least will enable people to work with their systems, so that's not too bad :)).
  • Lekensteyn
    Lekensteyn over 12 years
    @htorque Bumblebee is able to turn cards on/off, but that's an experimental feature which requires that you know the working calls. If you've twitter, follow me (Lekensteyn) or Team_Bumblebee to be notified when Bumblebee finally has an automated way to detect the right calls.
  • Hanynowsky
    Hanynowsky over 12 years
    In the Intel Web site they claim that the HD graphics 3000 can output up to 2560 X 1600. My Dell XPS 15 L502X is linked through the miniDisplayPort to a 1900X1080p external Monitor. But I can't tell if it is outputting 1080i or 1080p. How could you be sure of it? What do you mean by (I cannot get 1080i)? my ext.monitor is showing 1900X1080 60Hz PP (source : Intel HD 3000).
  • Lekensteyn
    Lekensteyn over 12 years
    @htorque With Bumblebee 3.0, the card can now be disabled using bbswitch.
  • Lekensteyn
    Lekensteyn over 12 years
    acpi_call is now deprecated in favor of bbswitch.
  • Eti
    Eti over 12 years
    Thanks. I honestly gave up as soon as I got a running Xorg again. I also thought the projects stalled. Can you tell me, is there a chance I'll reduce power consumption using the provided method? That would be really nice, since my current battery life is rather poor under linux.
  • nilsonneto
    nilsonneto over 12 years
    according to lekenstyn in this answer (askubuntu.com/questions/70031/…) - yes. The key thing though is that the new project is actively being updated. So expect good & better things now and in the future! Contact Lekenstyn and the project for more info.
  • Lekensteyn
    Lekensteyn over 12 years
    You cannot disable the intel GPU unless it's a BIOS option. Bumblebee 2.2 or 2.3 did not have power saving, but the new 3.0 version has power saving features available that are automatically applied. Thus, the discrete video card will always be turned off unless a program is requested to be run with Bumblebee.
  • Lekensteyn
    Lekensteyn over 12 years
    I think that a year for PRIME (Dave's work) is still optimistic and two years is more realistic. Technologies like Optimus are full software solutions, the hardware does not provide support, not even under Windows 7. While Bumblebee is not a perfect solution, version 3.0 adds power saving by default. More about that in askubuntu.com/a/36936/6969
  • RAOF
    RAOF over 12 years
    Optimus isn't a full-software solution; the nVidia GPU has some hardware to help (what the nouveau project calls the PCOPY engine), although that's just a performance optimisation. I, obviously, don't think that a year is too unlikely for PRIME. Optimus isn't actually much more sophisticated than copying from VRAM. It's mainly the design of the X server that's made it hard.
  • Lekensteyn
    Lekensteyn over 12 years
    That slipped out of my mind. My point was that the switching functionality is fully implemented in software and that the hardware does not help at that ("muxless")
  • RAOF
    RAOF over 12 years
    Right. That's totally true. My point was a bit of a nitpick; the hardware is purely an optimisation.
  • Eti
    Eti about 12 years
    I don't understand why people downvote this answer. He's right: optimus is a nightmare. Sure, maybe one out of 1000000 ubuntu users got optimus working partially, but there are no magic solutions for "normal" users. I mean, just look at the first answer: it gives me headache looking at the wall of commands to by typed. And after all, let us not forget the whole point of optimus: energy saving! It doesn't work on ubuntu. Even with a gpu disabled, energy consumption does not seem to change.
  • enedene
    enedene about 12 years
    This answer is simply not true, I bought intel, nvidia, optimus combination a week ago on 12.04, everything works great. Just add the stable ppa: launchpad.net/~bumblebee/+archive/stable and it works great. Now they even have an gui app that allows you to select the applications that will run with nvidia and which with intel gpu.
  • aliasbody
    aliasbody about 12 years
    I am sorry but It doesn't work great... just try to run some flash on the browser or heavy games using the nvidia, or even using the HDMI... It may work for you, but It doesn't work for a lot of people. I own myself an Asus 1215N and I don't have HDMI (Video and Sound), and no Flash (more than 480p in normal or full screen). Yes the bumblebee projecto is a huge step to try to solve the problem, and all the team deserve kudos for that... But a fact is a fact... If someone can avoid (for now) any computer with Muxless Optimus THEY MUST DO !... Simply
  • Mohamed Ahmed
    Mohamed Ahmed about 12 years
    Hey thanks a lot guys i did not Optimus wasn't supported in Linux thanks a lot for showing me bumblebee, and Web-E i noticed my battery was being drained fast, and my it seemed like my CPU was overheating i found it weird but i guess i know why now, and in response to if i completely disable optimus in my bios will i be able to use my intel portion of the graphics?.....oh and web-e you told me not install the graphics drivers alone what did you mean by this ?
  • Mohamed Ahmed
    Mohamed Ahmed about 12 years
    Hello Web-E i was trying to put in the commands you told me into terminal when i put in sudo apt-get install bumblebee bumblebee-nvidia, i got mohamed@mohamed-Aspire-3830TG:~$ sudo apt-get install bumblebee bumblebee-nvidiaReading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package bumblebee E: Unable to locate package bumblebee-nvidia not sure what this means.
  • Web-E
    Web-E about 12 years
    I guess you have skipped 2nd step sudo apt-get update . Let it run first. Then try again. If it is failing again. Let me know
  • Web-E
    Web-E about 12 years
    As far as I know there isn't option to disable optimus in BIOS. Possibly you are misunderstanding with ATI hybrid graphics. Nvidia optimus system are always muxless. Read this why i told you not to install driver directly (only via bumblebee) - askubuntu.com/a/36936/35775
  • Web-E
    Web-E about 12 years
    Thanks for the info. :). Its good know at least they gave some option. However in most system is doesn't have that option. like dell my xps 15. :( . @MohamedAhmed did you get any options to disable optimus in BIOS?
  • Sepero
    Sepero almost 12 years
    Very similar results for me too. The official Bumblebee website is bumblebee-project.org
  • Sepero
    Sepero almost 12 years
    I own an Asus N53SM (excellent 1366x768 resolution) and it runs great with the bumblebee driver. I can play videos at any resolution/fullscreen. Tested SecondLife and it can run at near full graphics (ulimate setting) with a good fps! As an example, Tux Racer runs fullscreen and averages almost 100fps. You just have to remember to use optirun whenever you know you're gonna need more graphics power.
  • rics
    rics over 11 years
    I have a fresh live USB install of 12.04. The install step cannot be executed because of unmet dependencies: virtualgl cannot be installed. Then I try sudo apt-get virtualgl and the same message appears with virtualgl-libs and then the same with libturbojpeg. libturbojpeg package cannot be found. What could be the problem?
  • rics
    rics over 11 years
    @rics The universe repository component has not been switched on that is why libturbojpeg was not found. After that install was working although I got the same black screen at next boot with a kernel panic.
  • Lekensteyn
    Lekensteyn over 11 years
    @rics Ensure that you have added the bumblebee/stable PPA and enabled the Universe component. Installing the driver from nvidia.com will overwrite files in such a way that you will have your display turned upside-down (if you are lucky) or a black screen. When installing nvidia-current manually, you need to (re)install bumblebee-nvidia too.
  • mac
    mac over 11 years
    Is this guide applicable for 12.10 as well ? I am having Lenovo z570 Ubuntu 12.10 (NVIDIA GT 540M) and its not working (optirun firefox & is throwing error saying secondary GPU is not present). Or do I need to add PPA's as specified in howopensource.com/2012/10/… (ppa:xorg-edgers/ppa) ?
  • Lekensteyn
    Lekensteyn over 11 years
    @mac This guide applies to 12.10 as well. Does it say something like "Failed to initialize nvidia ..."? (does dmesg say that VRAM initialization failed?)
  • mac
    mac over 11 years
    It says "[ 298.203524] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver [ 298.203616] [ERROR]Aborting because fallback start is disabled." dmesg | grep VRAM gives nothing
  • Lekensteyn
    Lekensteyn over 11 years
    @mac Have you installed it as described in this answer? With sudo apt-get insall linux-headers-generic too?
  • user1258205
    user1258205 over 11 years
    Looks like there is some progress with the dma-buf issue, see this link. Maybe there is some hope for a proper (i.e. non-bumblebee) solution.
  • Ken Kinder
    Ken Kinder over 11 years
    Thanks for your update for 12.10, RAOF, but can you elaborate on the latest Ubuntu's support a bit? I'm using Nvidia Optimus and I'm not seeing, for example, anything to access a DVI port that's attached to the Nvidia chipset.
  • krlmlr
    krlmlr about 11 years
    Are there any updates on this for Raring? I'm especially interested in running bumblebee with nouveau only, without having to install nvidia drivers...
  • jrg
    jrg almost 11 years
    Is there a update on this? I've heard that they released a driver for the optimus stuff in june, does this change things?
  • Lekensteyn
    Lekensteyn almost 11 years
    @jrg I couldn't test the nvidia driver since it causes a lock-up on me, but see download.nvidia.com/XFree86/Linux-x86_64/325.15/README/… for details. Using the RandR 1.4 functionality will suck more power compared to Bumblebee (assuming that you won't run an application all the time). Since I haven't tested the driver yet, I can't speak of the tearing issue though.
  • Nkciy84
    Nkciy84 over 10 years
    I wish this could be made sticky. Sooooo many people having issues with nvidia optimus and don't know where to find a descent sollution.
  • NoBugs
    NoBugs over 10 years
    This is outdated... It works right after install on 13.10, no weird steps necessary to enable HDMI or miniDP video out on XPS 15. Furthermore, it looks like 14.04 will have better Optimus support.
  • NoBugs
    NoBugs over 10 years
    It works fine with 13.10, no bumblebee or other workaround necessary. Battery life is a little worse though, apparently because Nvidia is always in use.
  • NoBugs
    NoBugs over 10 years
    True, it is usually just a matter of time - first with Broadcom drivers, wifi glitches, etc, and now with graphics cards.
  • OMGtechy
    OMGtechy almost 10 years
    It'd be worth updating this with nvidia-prime
  • Lekensteyn
    Lekensteyn almost 10 years
    @OMGtechy Feel free to do so, I am not using the proprietary driver anymore so can't say much about it. About PRIME, its usage is documented on wiki.archlinux.org/index.php/PRIME.
  • retrixe
    retrixe over 9 years
    Mir and Wayland will bring support for NVIDIA Optimus!
  • lesolorzanov
    lesolorzanov over 9 years
    Today 2014, this problem still haunts me. I have a geforce gt 750m, I use ubuntu 14.04 LTS, any recommendations?
  • Pitto
    Pitto over 5 years
    I have a 1215n in 2019 and I am pulling my hair with bumblebee