Bumblebee aims to provide support for NVIDIA Optimus laptops for GNU/Linux distributions. Using Bumblebee, you can use your NVIDIA card for rendering graphics which will be displayed using the Intel card. Bumblebee is officially supported by Ubuntu in 13.10 Saucy or newer. However, all releases are supported by the Bumblebee Project community from Ubuntu version 12.04 up to 13.10.
Basic Setup for 12.04 - 13.04
You need to open your terminal and enter the commands below.
If on 12.04.3, replace linux-headers-generic with linux-headers-generic-lts-raring.
sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
- Install Bumblebee using the default proprietary nvidia driver for 12.04 - 13.04 :
sudo apt-get install bumblebee bumblebee-nvidia virtualgl linux-headers-generic
Basic Setup for 13.10 and later
You need to open your terminal and enter the commands below.
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
For advanced users, if you do not want to use the proprietary nvidia driver or 32-bit libraries (for example, if you are only interested in power savings), you can do your custom installation.
Minimal setup : sudo apt-get install --no-install-recommends bumblebee
Depending on your needs, add to this line:
bumblebee-nvidia: proprietary nvidia driver support (if installed, become default over nouveau)
virtualgl: VirtualGL as backend
virtualgl-libs-ia32: 32bit support for VirtualGL on 64bit system, necessary to run 32bit app through optirun
primus: primus/primusrun as backend (virtualgl Stays default, you need to run optirun -b primus <app>)
primus-libs-ia32: 32bit support for primus/primurun on 64bit system, necessary to run 32bit app through optirun
To run your application with the discrete NVIDIA card run in the terminal:
$ optirun [options] <application> [application-parameters]
$ optirun firefox
For a list of options for optirun run:
$ optirun --help
Normally you do not use optirun for your window manager, installations or other non graphic heavy demanding programs. The optirun command is mainly used for graphic demanding programs or for games.
A primary goal of this project is to not only enable use of the discrete GPU for rendering, but also to enable smart power management of the dGPU when it's not in use. We're using either bbswitch (a module) or vga_switcheroo (kernel module, experimental) to do this in Bumblebee.
Since Bumblebee 3.0, this feature is enabled by default, using bbswitch. This allow automatic power management, without any configuration needs.
If Power Management doesn't work on your laptop, please go to this Power Management (PM) page and help to improve Bumblebee.
"Cannot access secondary GPU" error
In LTS 12.04.3, 13.04 and later, if your card seems to be inaccessible, i.e. [ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected. you need to edit the /etc/bumblebee/xorg.conf.nvidia (or /etc/bumblebee/xorg.conf.nouveau if using the noveau driver) and specify the correct BusID by following the instructions therein.
Error running 32-bit applications on a 64-bit system
If you're using a 64-bit system and 32-bit applications fail to run because libGL.so.1 is not found, then your system is probably not correctly configured to use the 32-bit Mesa GL libraries.
To fix this:
Ensure that the package libgl1-mesa-glx:i386 is installed.
You can run the following command too check that: apt-cache policy libgl1-mesa-glx:i386
- Do ONE of the following:
Reinstall bumblebee-nvidia by running the following command in a terminal: sudo apt-get install --reinstall bumblebee-nvidia
This is the easiest solution.
- Or configure the system to correctly use the 32-bit Mesa GL libraries:
Open a terminal and run: sudo update-alternatives --config i386-linux-gnu_gl_conf
Something like this will be displayed:
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/nvidia-331/alt_ld.so.conf 8604 auto mode 1 /usr/lib/i386-linux-gnu/mesa/ld.so.conf 500 manual mode 2 /usr/lib/nvidia-331-prime/alt_ld.so.conf 8603 manual mode 3 /usr/lib/nvidia-331/alt_ld.so.conf 8604 manual mode Press enter to keep the current choice[*], or type selection number:
Select the option /usr/lib/i386-linux-gnu/mesa/ld.so.conf
In the above case, you would enter 1.
Run: sudo ldconfig
The Bumblebee project recommends you install drivers only through APT and not drivers provided by nvidia.com directly. This said, whenever you update your drivers through the supported repositories, you need to setup the correct config values in /etc/bumblebee/bumblebee.conf. See also this FAQ on github
Example update to nvidia-319 driver
E.g. to update to the latest update of 319.x driver, you need to install it through apt.
sudo apt-get install nvidia-319-updates nvidia-settings-319-updates
Then you need to edit /etc/bumblebee/bumblebee.conf and set:
By running optirun nvidia-settings (or optirun -b none nvidia-settings -c :8) you can assert you are using the installed kernel module and driver.
Please join #bumblebee channel on Freenode if you wish to help testing and creating the installer.
First of all: If you have any problem, please read this article: http://wiki.Bumblebee-Project.org/Troubleshooting
If your issue is not solved, you can join the #bumblebee IRC channel to ask for help (recommended). See also http://wiki.Bumblebee-Project.org/Reporting-Issues
If you're asked to create a bugreport, run the next command in a terminal: sudo bumblebee-bugreport
If you're unsatisfied with Bumblebee, you can remove it via:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:bumblebee/stable
If you want to keep some programs from the bumblebee repository, you can also suffice by removing Bumblebee only (including its dependencies):
sudo apt-get purge bumblebee
sudo apt-get --purge autoremove
There is sometimes confusion about CUDA. You don't need Bumblebee to run CUDA. Follow the How-to to get CUDA working under Ubuntu.
There is however a new feature (--no-xorg option for optirun) in Bumblebee 3.2, which makes it possible to run CUDA / OpenCL applications that does not need the graphics rendering capabilities.