Bumblebee-nvidia installation on Fedora to support NVIDIA Optimus technology under Linux

They are two graphic cards presented in my ASUS-K55VM-SX170V laptop - Nvidia 630QM and integrated Intel graphic card. Thanks to Optimus technology, switching between those graphics should be done without user touch in order to either achieve maximum performance or to save battery life.
Unfortunately NVIDIA has not released driver for Optimus support in  Linux that can take care of this job. As wiki says "When there is no software  mechanism in place for switching between graphics adapters, the NVIDIA GPU cannot be used at all, even if an installed graphics driver would support it".

Following options help to deal with the issue.

a) Turning Intel graphics / Optimus off  in the BIOS and installing NVIDIA proprietary driver. However, UEFI im my ASUS laptop does not offer such an option.

b) Using the integrated Intel Graphics with i915 kernel driver
The display is hard-wired to the Intel graphic card so that low performance GPU is used for all applications by default. As it has not been yet NVIDIA OPTIMUS driver  released for Linux by NVDIA, users only benefit from the Intel GPU.
I tried to run FPS game Urban Terror on that Intel GPU with the resolution 1366x768  and with high quality texture details enabled.  Measured FPS was in a range from 40 to 60 frames per seconds.

c) Installing bumblebee-nvidia to support NVIDIA Optimus technology under Linux

A  few words about Bumblebee project
"The open-source project Bumblebee tries to provide support for the graphics chip switching. In the same way as the Windows implementation, by default all applications are run through the integrated graphics processor. Currently the only way to run a program with improved graphical performance on the discrete GPU is to explicitly invoke it as such. This can be done, for example, by using the command line or through specially configured shortcut icons. Automatic detection and switching between graphics processors is not yet available".

So even Bumblebee cannot switch between graphics automatically it is definitely worth to install it. At least it allows us to get proprietary NVIDIA drivers working in Linux on PC with Optimus technology.

Following steps help to install Bumblebee.

1. Check if your computer has NVIDIA Optimus technology

lspci | grep -i VGA
00:02.0 VGA compatible controller: Intel Corporation Device 0166 (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation Device 0de9 (rev a1)

They are two graphic cards  presented in the list - integrated INTEL IGP and NVIDIA GPU . If it is not possible to turn off integrated Intel card in BIOS, the only way to get NVIDIA proprietary drivers working on Linux is  Bumblebee installation.

On the other hand, if  it is only one GPU listed in the output, use the following guide to install NVIDIA proprietary driver.

http://www.if-not-true-then-false.com/2012/fedora-17-nvidia-guide/

2. Uninstall NVIDIA proprietary driver

Uninstall a proprietary NVIDIA driver if it had been installed from rpmfusion (akmod-nvidia, kmod-nvidia,kmod-nvidia-PAE...). The NVDIA proprietary driver will be installed by Bumblebee install script later.

sudo yum remove kmod-nvidia

3. Check if nouveau module - NVDIA open-source driver is loaded

sudo lsmod | grep nouveau
nouveau               890739  0
mxm_wmi                12823  1 nouveau
wmi                    18697  3 mxm_wmi,nouveau,asus_wmi
video                  18936  3 i915,nouveau,asus_wmi
i2c_algo_bit           13257  2 i915,nouveau
drm_kms_helper         44701  2 i915,nouveau
ttm                    79760  1 nouveau
drm                   255010  6 ttm,i915,drm_kms_helper,nouveau
i2c_core               38314  7 drm,i915,i2c_i801,drm_kms_helper,i2c_algo_bit,nouveau,videodev

We have to add nouevau to the list of  the blacklisted drivers in order to avoid conflict with NVIDIA proprietary driver.

su -c 'echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf'

4. Backup an old initramfs  and create the new one

sudo mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img

sudo dracut /boot/initramfs-$(uname -r).img $(uname -r)

5. Install all the rpm packages from the  site

First we must install dependencies.

sudo yum install turbojpeg-devel.x86_64 dkms

Now we can install rpm packages from the following site.

http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/

sudo rpm -ihv http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/VirtualGL-2.3.1-9.fc17.x86_64.rpm
sudo rpm -ihv http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/VirtualGL-devel-2.3.1-9.fc17.x86_64.rpm
sudo rpm -ihv http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/acpi-handle-hack-0.0.1-2.fc17.x86_64.rpm
sudo rpm -ihv http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/bbswitch-0.4.1-1.fc17.x86_64.rpm
sudo rpm -ihv http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/bumblebee-3.0.1-1.fc17.x86_64.rpm

6. Set up bumblebee-nonfree repository and install package bumblebee-nvidia

sudo yum -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora17/noarch/bumblebee-nonfree-release-1.0-1.noarch.rpm

sudo yum install bumblebee-nvidia.x86_64

Reboot your computer. As the system is coming  up, the NVIDIA driver is  built for the current running kernel.

Now start urbanterror accelerated with Optimus.  Measured FPS was in a range from 70 to 100.

optirun urbanterror

7. Kernel upgrade with bumblebee

Bumblebee-nvidia script will automatically compile nvidia kernel module for a new kernel. Is not necessary reinstall bumblebee for kernel upgrade

References
Optimus
http://en.wikipedia.org/wiki/Nvidia_Optimus

Bumblebee Fedora 17 x64 Packages
http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora17/x86_64/

Bumblebee user guide
https://wiki.archlinux.org/index.php/Bumblebee

Nvidia Installation on Fedora 17 - not for computers with  Optimus
http://www.if-not-true-then-false.com/2012/fedora-17-nvidia-guide/

Intel driver - Fedora 17
http://www.wakfu.com/en/forum/36-technical-issues/47965-solved-fedora-17-black-texture-only

4 thoughts on “Bumblebee-nvidia installation on Fedora to support NVIDIA Optimus technology under Linux

  1. Excellent instructions! I manage to get my Lenovo W520 laptop to work without much trouble!
    W520. Everything works with the internal LCD/LED display
    On the other hand, I would get corrupted display on the external monitor if I connect it to the laptop. Have you or any one been able to have external display works with Nvidia Optimus?

    My laptop's configuration:
    00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
    01:00.0 VGA compatible controller: NVIDIA Corporation GF108GLM [Quadro 1000M] (rev a1)

Leave a comment

Your email address will not be published. Required fields are marked *