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.
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.
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.
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
Bumblebee Fedora 17 x64 Packages
Bumblebee user guide
Nvidia Installation on Fedora 17 - not for computers with Optimus
Intel driver - Fedora 17