How to Manage Nvidia Optimus Chipsets in Ubuntu with Bumblebee

Bumblebee is a software tool for Linux with the aim to provide support for NVIDIA Optimus laptops for GNU/Linux distributions. Optimus is a hybrid display technology where the integrated GPU renders the display while the dedicated GPU (in this case, an nVidia graphic card) does all the processing and sends the output to the integrated GPU. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life.

Bumblebee tries to mimic the Optimus technology behavior by using the dedicated GPU for rendering when needed and to power it down when not in use.

Ubuntu systems already come with Nvidia Prime which provides a way for users to switch between Nvidia and Intel GPUs. The problem with this is that it only works for the whole desktop and does not allow a user to set the GPU for a certain application. In some systems there have been reports of excessive heating and malfunctions to the system when Nvidia GPU is set for the whole desktop. Using Bumblebee would be a better option in this case.

Installing Bumblebee

Before you start installing Bumblebee, I am going to assume that you already have the Nvidia graphics installed. If you have not installed them, you can do so by opening the terminal and running the following command:

sudo apt-get install nvidia-prime

You can also run this command so that it uses the Intel graphics card:

sudo prime-select intel

Installing Bumblebee will now be determined by the Nvidia graphics that you want to use it with. The following are the options:

nVidia-361

To use it with nvidia-316, you can run this command to install Bumblebee:

sudo apt-get install bumblebee

nVidia-370

If you want to use it with the nvidia-370 and are running Ubuntu 16.04 or earlier, you can use Bumblebee Development PPA for installation:

sudo add-apt-repository ppa:bumblebee/testing
sudo apt-get update
sudo apt-get install bumblebee

If you are using Ubuntu 16.10 or later, you will not need the Bumblebee Development PPA, as the patches are already in the official Ubuntu repository. Running the following command will install it:

sudo apt-get install bumblebee

In my case I am installing it on Ubuntu 16.04.

bumblebee-install

Configuration and Usage

After successfully installing Bumblebee, you will need to configure it to run well. The Bumblebee configuration file is at “/etc/bumblebee/bumblebee.conf.” Open it using a text editor of your choice. Open the configuration file and scroll down to the area shown on the screenshot below.

bumbelebee-configdriver

If you are using nvidia-361, change the following options from the above screenshot to set it up:

  • Set the Driver to “nvidia”
  • Set the KernelDriver to “nvidia-361”
  • Set the LibraryPath to “/usr/lib/nvidia-361:/usr/lib32/nvidia-361”
  • Set the XorgModulePath to “/usr/lib/nvidia-361/xorg,/usr/lib/xorg/modules”

Save the file.

If using nvidia-370:

  • Set Driver to “nvidia”
  • Set the KernelDriver to “nvidia-370”
  • Set the LibraryPath to “/usr/lib/nvidia-370:/usr/lib32/nvidia-370”
  • Set the XorgModulePath to “/usr/lib/nvidia-370/xorg,/usr/lib/xorg/modules”

Save the file.

If you have installed a different version of nVidia graphics, remember to change the configuration file to match the version.

bumblebee-games

The final step to get Bumblebee working is to reboot your computer. The discrete card will now be turned off. If you want to run Bumblebee with an application, run this command where some_app_or_game is the name of the application or the game:

optirun app_name

Conclusion

Bumblebee is very important for people who run graphic intensive applications on their machines. With it you can switch between the dedicated and integrated graphics as necessary, and it will allow you to maintain the performance of your machine without sacrificing the battery life.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Jackson Mwendwa

I am an intelligent and presentable individual with a degree in Computer Science and over four years experience in Management, Software Development, Information Technology Support and Tech article/tutorial writing. I possess a fresh, modern approach to the industry, employing creative and enthusiastic methods to problem-solving and would like to realize my full potential through practice, effectiveness, and innovation.