The notebook is a not so old Asus N76VZ model. I am using Debian Jessie, with non-free and contrib repositories enabled in apt. System information is as follows:
Code: Select all
# lspci | grep -i vga
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107M [GeForce GT 650M] (rev ff)
Code: Select all
# uname -a
Linux artoo-deetoo 3.11-2-amd64 #1 SMP Debian 3.11.10-1 (2013-12-04) x86_64 GNU/Linux
First of all, we need to install some additional packages, not necessarily related to graphics. Some of the hardware needs proprietary firmware; we will need dkms, debhelper, git and linux-headers to make the GPU work; and intel-microcode to get full CPU capabilities. As root, do:
Code: Select all
apt-get install firmware-linux-nonfree linux-headers-$(uname -r) intel-microcode git dkms debhelper
One part of Bumblebee is called bbswitch. It is a kernel module with a sole purpose of switching the Nvidia graphics chip ON or OFF. In Debian repositories you can find the bbswitch-dkms_0.7-2, but you *do not* want to install that version, as it contains a bug that makes it impossible to do anything with the Nvidia GPU. We will need to get bbswitch-0.8 source and build a kernel module ourselves. (This part has been adapted from https://wiki.kubuntu.org/Kernel/Dev/DKMSPackaging)
To get bbswitch to work, follow this procedure:
1. Clone the bbswitch git repository:
Code: Select all
[root@artoo-deetoo:~]# cd ~
[root@artoo-deetoo:~]# git clone https://github.com/Bumblebee-Project/bbswitch.git
[root@artoo-deetoo:~]# cd bbswitch
Code: Select all
[root@artoo-deetoo:~/bbswitch]# cp dkms/dkms.conf .
[root@artoo-deetoo:~/bbswitch]# mkdir /usr/src/bbswitch-0.8
[root@artoo-deetoo:~/bbswitch]# cp -r * /usr/src/bbswitch
Code: Select all
[root@artoo-deetoo:~/bbswitch]# dkms add bbswitch/0.8
Creating symlink /var/lib/dkms/bbswitch/0.8/source ->
/usr/src/bbswitch-0.8
DKMS: add completed.
Code: Select all
[root@artoo-deetoo:~/bbswitch]# dkms build bbswitch/0.8
Kernel preparation unnecessary for this kernel. Skipping...
Building module:
cleaning build area....
make KERNELRELEASE=3.11-2-amd64 KVERSION=3.11-2-amd64....
cleaning build area....
DKMS: build completed.
Code: Select all
[root@artoo-deetoo:~/bbswitch]# dkms install bbswitch/0.8
bbswitch:
Running module version sanity check.
- Original module
- No original module exists within this kernel
- Installation
- Installing to /lib/modules/3.11-2-amd64/updates/dkms/
depmod....
DKMS: install completed.
Code: Select all
[root@artoo-deetoo:~/bbswitch]# dkms status
bbswitch, 0.8, 3.11-2-amd64, x86_64: installed
Code: Select all
apt-get install bbswitch-dkms
Code: Select all
i915
bbswitch
Code: Select all
blacklist nouveau
After the reboot, you can check whether bbswitch can manage your GPU. /proc/acpi/bbswitch file holds that information, and also the way of manually switching the GPU on or off.
Code: Select all
[root@artoo-deetoo:~/bbswitch]# cat /proc/acpi/bbswitch
0000:01:00.0 OFF
[root@artoo-deetoo:~/bbswitch]# echo ON > /proc/acpi/bbswitch
[root@artoo-deetoo:~/bbswitch]# cat /proc/acpi/bbswitch
0000:01:00.0 ON
[root@artoo-deetoo:~/bbswitch]# echo OFF > /proc/acpi/bbswitch
[root@artoo-deetoo:~/bbswitch]# cat /proc/acpi/bbswitch
0000:01:00.0 OFF
As root, open the file /etc/apt/sources.list. My file looks like this:
Code: Select all
deb http://ftp.tu-graz.ac.at/mirror/debian/ jessie main non-free contrib
deb-src http://ftp.tu-graz.ac.at/mirror/debian/ jessie main non-free contrib
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free
deb http://ftp.tu-graz.ac.at/mirror/debian/ jessie-updates main contrib non-free
deb-src http://ftp.tu-graz.ac.at/mirror/debian/ jessie-updates main contrib non-free
Code: Select all
deb http://ftp.tu-graz.ac.at/mirror/debian/ experimental main non-free contrib
deb-src http://ftp.tu-graz.ac.at/mirror/debian/ experimental main non-free contrib
Code: Select all
[root@artoo-deetoo:~/bbswitch]# dpkg --add-architecture i386
[root@artoo-deetoo:~/bbswitch]# apt-get update
[root@artoo-deetoo:~/bbswitch]# apt-get -t experimental install bumblebee bumblebee-nvidia primus primus-libs primus-libs:i386
Code: Select all
GRUB_CMDLINE_LINUX_DEFAULT="quiet rcutree.rcu_idle_gp_delay=1"
Next, as root, open the file /etc/bumblebee/bumblebee.conf. Find and modify the following two lines so they appear like this:
Code: Select all
Driver = nvidia
KernelDriver = nvidia-current
Code: Select all
[root@artoo-deetoo:~/bbswitch]# addgroup <your_username_here> bumblebee
Code: Select all
[user@artoo-deetoo:~]$ optirun glxgears
In order to get CUDA working, you just need to do
Code: Select all
[root@artoo-deetoo:~/bbswitch]# apt-get install nvidia-cuda-toolkit
UPDATE: Since the repositories now contain updated versions of bumblebee and related packages, installation is quite simplified. Read on from here.
In order to get full Optimus functionality, follow these steps:
1. Install all related packages:
Code: Select all
# dpkg --add-architecture i386
# apt-get update
# apt-get install bbswitch-dkms intel-microcode firmware-linux-nonfree bumblebee bumblebee-nvidia primus primus-libs primus-libs:i386 linux-headers-$(uname -r)
2. A bit of configuration. As root, open /etc/bumblebee/bumblebee.conf, find
Code: Select all
KernelDriver=nvidia
Code: Select all
KernelDriver=nvidia-current
Code: Select all
# addgroup <your_username_here> bumblebee
Code: Select all
# update-grub
Code: Select all
# apt-get install nvidia-cuda-toolkit
Code: Select all
$ optirun glxgears
I hope these instructions work for everyone! Any comments and improvements are welcome.
(Now, has anyone with a similar notebook managed to make the external subwoofer work properly? And/or WiFi toggle (Fn+F2)? )