Bumblebee to the rescue of Optimus!!

Seems like we are watching the “Transformers” movie (starring Shia LeBeouf and Megan Fox)!  Bumblebee has come to the rescue of the great Optimus Prime! 
logo courtesy: Nvidia
Although Transformers was a work of fiction, something similar has come true in real life. Nvidia’s Optimus technology is finally getting support on Linux  via the bumblebee project!



Optimus? Bumblebee?

GREAT BATTERY LIFE AND GREAT PERFORMANCE. IT’S THAT SIMPLE.

NVIDIA® Optimus™ technology intelligently optimizes your notebook PC, providing the outstanding graphics performance you need, when you need it, all the while extending battery life for longer enjoyment.

In simple words :

Nvidia Optimus is an optimization technology created by Nvidia to save battery life by automatically switching the power of the graphics processing unit (GPU) off when it is not needed and switching it on when needed again. The technology mainly targets mobile PCs such as notebooks.When the GPU power is off, the driver redirects graphics commands to the integrated graphics chip (e.g. Intel GMA). Currently only Windows 7 is officially supported, however the open source project Bumblebee brings support to Linux.


After months of development, Bumblebee has a new release available; version 3.0 was released on the Ubuntu ppa approximately eight hours ago. There were speculations that the project was dead. All the rumours were quashed with the release of the new version. The developers are saying this is a much improved and more stable release. The code the been rewritten in C. 
Features of this new release are :
  • bbswitch power management, allows for fast and reliable power switching which also survives suspend
  •  vga_switcheroo power management is supported but only available for nouveau.
  •  by default the card is switched off if no optirun program is using it.
  •  Better detection of errors as well as reporting those to the user running optirun.
  • Automatically detect the correct PCI Bus ID, removing the need for manual configuration.
  •  recovery from drivers getting loaded while the card is off which would result in “No such device” errors (nvidia).
  •  Standard autotools build system, allowing for better dependency checking and a more comfortable way to install/uninstall the program.
  •  manual pages for optirun (a client) and bumblebeed (the daemon/server)
  •  optirun –status will now show the current status of Bumblebee and the secondary GPU on your system.
  •  Includes example initscripts for SysV init, systemd and Upstart.
You can view the full release notes here.
The project is still under heavy development.  As for now, if you wish to make use of the Nvidia graphics card, you need to run the application from the terminal eg.

optirun firefox
optirun google-chrome

The project wiki can be viewed at https://github.com/Bumblebee-Project/Bumblebee/wiki
Installation

Installation instructions for Ubuntu based distributions  (Also available at 

Open a terminal and enter the commands below.
sudo add-apt-repository ppa:bumblebee/stable
If you are on Ubuntu 11.04 or older versions of Ubuntu and want newer drivers (recommended) than the ones available in the official repos, run:
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
Install Bumblebee using the proprietary nvidia driver:

sudo apt-get install bumblebee bumblebee-nvidia

sudo usermod -a -G bumblebee $USER (change $USER to your username)

sudo reboot
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

Difference in performance?

We have a Nvidia Optimus graphics card powered laptop and we were able to make a quick frame test after installing bumblebee.
Frames measurement using Nvidia Optimus graphics card

~$ optirun glxspheres
Polygons in scene: 62464
Visual ID of window: 0x21
Context is Direct
OpenGL Renderer: GeForce 310M/PCI/SSE2
107.483984 frames/sec – 119.952126 Mpixels/sec
102.987323 frames/sec – 114.933852 Mpixels/sec
100.554701 frames/sec – 112.219046 Mpixels/sec
106.141690 frames/sec – 118.454126 Mpixels/sec
108.439915 frames/sec – 121.018945 Mpixels/sec
125.309435 frames/sec – 139.845330 Mpixels/sec
173.557035 frames/sec – 193.689652 Mpixels/sec

Frames measurement without the use of Nvidia graphics card(Using Intel graphics card)
~$ glxspheres 
Polygons in scene: 62464
Visual ID of window: 0x93
Context is Direct
OpenGL Renderer: Mesa DRI Intel(R) Ironlake Mobile 
20.397656 frames/sec – 22.763784 Mpixels/sec
19.941670 frames/sec – 22.254904 Mpixels/sec
19.958508 frames/sec – 22.273695 Mpixels/sec
19.950185 frames/sec – 22.264407 Mpixels/sec
19.952660 frames/sec – 22.267168 Mpixels/sec
As you can see, when using Nvidia, the frame rates shoots up to 100+ compared to when using Intel grahics.
Future releases will support a gui based launcher which will make it easier to launch applications which will make use of the Nvidia graphics card.
Uninstall

If you did not like Bumblebee or may have run into issues while installing it, you can uninstall it by the following method:
sudo apt-get install ppa-purge
sudo ppa-purge ppa:bumblebee/stable

Leave a Reply

tuxtrixmod
Scroll to Top