Monday, 2 May 2016

Bumblebee on a Lenovo T440p [NVidia GT 730M] with XUbuntu/Ubuntu 16.04 LTS

I have to say that Lenovo really makes some damn fine-looking equipment, but it's mostly rubbish when it comes to their Linux Certification. That stuff isn't worth a dime. Then there's Optimus, which is rubbish as well.

You're probably here because XUbuntu 14.10 worked with bumblebee out of the box, but 16.04 LTS does not.

The T440p has an in-built NVidia GT 730M, running on Optimus through an Intel HD 4600. It's a beast of a laptop, but getting bumblebee going is rather a pain. This guide may very well work for laptops other than Lenovo-branded slabs, but I've only tested it on my T440p so your mileage may vary.

So, first things first...

1. Install a fresh copy of XUbuntu 16.04 LTS


Tada!

2. Update Package Lists


Got to make sure we can pull packages.

entropy@symplex:~$ sudo apt-get update
Get:1 http://au.archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://au.archive.ubuntu.com/ubuntu xenial-updates InRelease [93.3 kB]
Get:3 http://au.archive.ubuntu.com/ubuntu xenial-backports InRelease [82.2 kB]
Get:4 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 Packages [1,201 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security InRelease [92.2 kB]
Get:6 http://au.archive.ubuntu.com/ubuntu xenial/main i386 Packages [1,196 kB]
Get:7 http://au.archive.ubuntu.com/ubuntu xenial/main Translation-en_AU [420 kB]
Get:8 http://au.archive.ubuntu.com/ubuntu xenial/main Translation-en [568 kB]
Get:9 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 DEP-11 Metadata [733 kB]
Get:10 http://au.archive.ubuntu.com/ubuntu xenial/main DEP-11 64x64 Icons [409 kB]
Get:11 http://au.archive.ubuntu.com/ubuntu xenial/restricted amd64 Packages [8,344 B]
Get:12 http://au.archive.ubuntu.com/ubuntu xenial/restricted i386 Packages [8,684 B]
Get:13 http://au.archive.ubuntu.com/ubuntu xenial/restricted Translation-en_AU [2,012 B]
Get:14 http://au.archive.ubuntu.com/ubuntu xenial/restricted Translation-en [2,908 B]
Get:15 http://au.archive.ubuntu.com/ubuntu xenial/restricted amd64 DEP-11 Metadata [186 B]
Get:16 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages [7,532 kB]
Get:17 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [27.7 kB]
Get:18 http://security.ubuntu.com/ubuntu xenial-security/main i386 Packages [27.7 kB]
Get:19 http://security.ubuntu.com/ubuntu xenial-security/main Translation-en [9,264 B]
Get:20 http://security.ubuntu.com/ubuntu xenial-security/main amd64 DEP-11 Metadata [188 B]
Get:21 http://security.ubuntu.com/ubuntu xenial-security/restricted i386 Packages [64 B]
Get:22 http://security.ubuntu.com/ubuntu xenial-security/restricted amd64 DEP-11 Metadata [158 B]
Get:23 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 Packages [4,628 B]
Get:24 http://security.ubuntu.com/ubuntu xenial-security/universe i386 Packages [4,620 B]
Get:25 http://security.ubuntu.com/ubuntu xenial-security/universe Translation-en [2,756 B]
Get:26 http://security.ubuntu.com/ubuntu xenial-security/universe amd64 DEP-11 Metadata [190 B]
Get:27 http://security.ubuntu.com/ubuntu xenial-security/multiverse i386 Packages [64 B]
Get:28 http://security.ubuntu.com/ubuntu xenial-security/multiverse amd64 DEP-11 Metadata [159 B]
Get:29 http://au.archive.ubuntu.com/ubuntu xenial/universe i386 Packages [7,512 kB]
Get:30 http://au.archive.ubuntu.com/ubuntu xenial/universe Translation-en_AU [3,039 kB]
Get:31 http://au.archive.ubuntu.com/ubuntu xenial/universe Translation-en [4,354 kB]
Get:32 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 DEP-11 Metadata [3,410 kB]
Get:33 http://au.archive.ubuntu.com/ubuntu xenial/universe DEP-11 64x64 Icons [7,448 kB]
Get:34 http://au.archive.ubuntu.com/ubuntu xenial/multiverse amd64 Packages [144 kB]
Get:35 http://au.archive.ubuntu.com/ubuntu xenial/multiverse i386 Packages [140 kB]
Get:36 http://au.archive.ubuntu.com/ubuntu xenial/multiverse Translation-en_AU [67.7 kB]
Get:37 http://au.archive.ubuntu.com/ubuntu xenial/multiverse Translation-en [106 kB]
Get:38 http://au.archive.ubuntu.com/ubuntu xenial/multiverse amd64 DEP-11 Metadata [63.8 kB]
Get:39 http://au.archive.ubuntu.com/ubuntu xenial/multiverse DEP-11 64x64 Icons [230 kB]
Get:40 http://au.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [36.9 kB]
Get:41 http://au.archive.ubuntu.com/ubuntu xenial-updates/main i386 Packages [36.8 kB]
Get:42 http://au.archive.ubuntu.com/ubuntu xenial-updates/main Translation-en [14.0 kB]
Get:43 http://au.archive.ubuntu.com/ubuntu xenial-updates/main amd64 DEP-11 Metadata [5,487 B]
Get:44 http://au.archive.ubuntu.com/ubuntu xenial-updates/main DEP-11 64x64 Icons [4,408 B]
Get:45 http://au.archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 Packages [64 B]
Get:46 http://au.archive.ubuntu.com/ubuntu xenial-updates/restricted i386 Packages [64 B]
Get:47 http://au.archive.ubuntu.com/ubuntu xenial-updates/restricted Translation-en [64 B]
Get:48 http://au.archive.ubuntu.com/ubuntu xenial-updates/restricted amd64 DEP-11 Metadata [157 B]
Get:49 http://au.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [9,012 B]
Get:50 http://au.archive.ubuntu.com/ubuntu xenial-updates/universe i386 Packages [9,012 B]
Get:51 http://au.archive.ubuntu.com/ubuntu xenial-updates/universe Translation-en [5,980 B]
Get:52 http://au.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 DEP-11 Metadata [157 B]
Get:53 http://au.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 Packages [64 B]
Get:54 http://au.archive.ubuntu.com/ubuntu xenial-updates/multiverse i386 Packages [64 B]
Get:55 http://au.archive.ubuntu.com/ubuntu xenial-updates/multiverse Translation-en [64 B]
Get:56 http://au.archive.ubuntu.com/ubuntu xenial-updates/multiverse amd64 DEP-11 Metadata [158 B]
Get:57 http://au.archive.ubuntu.com/ubuntu xenial-backports/main amd64 Packages [28 B]
Get:58 http://au.archive.ubuntu.com/ubuntu xenial-backports/main i386 Packages [28 B]
Get:59 http://au.archive.ubuntu.com/ubuntu xenial-backports/main Translation-en [28 B]
Get:60 http://au.archive.ubuntu.com/ubuntu xenial-backports/restricted amd64 Packages [28 B]
Get:61 http://au.archive.ubuntu.com/ubuntu xenial-backports/restricted i386 Packages [28 B]
Get:62 http://au.archive.ubuntu.com/ubuntu xenial-backports/restricted Translation-en [28 B]
Get:63 http://au.archive.ubuntu.com/ubuntu xenial-backports/universe amd64 Packages [28 B]
Get:64 http://au.archive.ubuntu.com/ubuntu xenial-backports/universe i386 Packages [28 B]
Get:65 http://au.archive.ubuntu.com/ubuntu xenial-backports/universe Translation-en [28 B]
Get:66 http://au.archive.ubuntu.com/ubuntu xenial-backports/multiverse amd64 Packages [28 B]
Get:67 http://au.archive.ubuntu.com/ubuntu xenial-backports/multiverse i386 Packages [28 B]
Get:68 http://au.archive.ubuntu.com/ubuntu xenial-backports/multiverse Translation-en [28 B]
Fetched 39.3 MB in 45s (870 kB/s)
AppStream cache update completed, but some metadata was ignored due to errors.
Reading package lists... Done
entropy@symplex:~$


3. Remove nouveau


I never liked nouveau. It always had sub-standard performance. While I love open-source drivers, the fact that NVidia's drivers always do better in terms of compatibility and frame-rate is reason enough to get rid of that sucka! I just want to play games ...

entropy@symplex:~$ sudo apt-get remove xserver-xorg-video-nouveau
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  xserver-xorg-video-all xserver-xorg-video-nouveau
0 to upgrade, 0 to newly install, 2 to remove and 0 not to upgrade.
After this operation, 322 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 154514 files and directories currently installed.)
Removing xserver-xorg-video-all (1:7.7+13ubuntu3) ...
Removing xserver-xorg-video-nouveau (1:1.0.12-1build2) ...
Processing triggers for man-db (2.7.5-1) ...
entropy@symplex:~$


4. Install bumblebee, primus and NVidia Drivers


You'll notice that our command includes everything in order. By default, installing bumblebee-nvidia will install the crappy old 304.x drivers. We don't want this. This is why we're specifying 361.x in the same apt-get line. 361.x drivers are recognised as a substitute for the 304.x ones, and apt-get will not install the old ones if we explicitly tell it we want the new ones as a substitute.

entropy@symplex:~$ sudo apt-get install bumblebee-nvidia nvidia-361
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  bbswitch-dkms build-essential bumblebee dkms dpkg-dev fakeroot g++ g++-5 gcc-5-base:i386 gcc-6-base:i386 lib32gcc1 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libbsd0:i386 libc6:i386 libc6-i386 libcuda1-361 libdrm-amdgpu1:i386
  libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386 libfakeroot libffi6:i386 libgcc1:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libjansson4 libllvm3.8:i386 libpciaccess0:i386
  libstdc++-5-dev libstdc++6:i386 libtinfo5:i386 libtxc-dxtn-s2tc0:i386 libudev1:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386 libxdamage1:i386 libxdmcp6:i386
  libxext6:i386 libxfixes3:i386 libxnvctrl0 libxshmfence1:i386 libxxf86vm1:i386 nvidia-opencl-icd-361 nvidia-prime nvidia-settings ocl-icd-libopencl1 pkg-config primus primus-libs primus-libs:i386 primus-libs-ia32:i386 screen-resolution-extra socat zlib1g:i386
Suggested packages:
  debian-keyring g++-multilib g++-5-multilib gcc-5-doc libstdc++6-5-dbg glibc-doc:i386 locales:i386 libstdc++-5-doc
The following NEW packages will be installed:
  bbswitch-dkms build-essential bumblebee bumblebee-nvidia dkms dpkg-dev fakeroot g++ g++-5 gcc-5-base:i386 gcc-6-base:i386 lib32gcc1 libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libbsd0:i386 libc6:i386 libc6-i386 libcuda1-361
  libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386 libdrm-radeon1:i386 libdrm2:i386 libedit2:i386 libelf1:i386 libexpat1:i386 libfakeroot libffi6:i386 libgcc1:i386 libgl1-mesa-dri:i386 libgl1-mesa-glx:i386 libglapi-mesa:i386 libjansson4 libllvm3.8:i386
  libpciaccess0:i386 libstdc++-5-dev libstdc++6:i386 libtinfo5:i386 libtxc-dxtn-s2tc0:i386 libudev1:i386 libx11-6:i386 libx11-xcb1:i386 libxau6:i386 libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb1:i386
  libxdamage1:i386 libxdmcp6:i386 libxext6:i386 libxfixes3:i386 libxnvctrl0 libxshmfence1:i386 libxxf86vm1:i386 nvidia-361 nvidia-opencl-icd-361 nvidia-prime nvidia-settings ocl-icd-libopencl1 pkg-config primus primus-libs primus-libs:i386 primus-libs-ia32:i386
  screen-resolution-extra socat zlib1g:i386
0 to upgrade, 70 to newly install, 0 to remove and 0 not to upgrade.
Need to get 121 MB of archives.
After this operation, 609 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://au.archive.ubuntu.com/ubuntu xenial/main i386 gcc-6-base i386 6.0.1-0ubuntu1 [14.3 kB]
Get:2 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libgcc1 i386 1:6.0.1-0ubuntu1 [46.8 kB]
Get:3 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libc6 i386 2.23-0ubuntu3 [2,270 kB]
Get:4 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxau6 i386 1:1.0.8-1 [8,352 B]
Get:5 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxdmcp6 i386 1:1.1.2-1.1 [11.4 kB]
Get:6 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxcb1 i386 1.11.1-1ubuntu1 [44.1 kB]
Get:7 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libx11-6 i386 2:1.6.3-1ubuntu2 [592 kB]
Get:8 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxext6 i386 2:1.3.3-1 [31.6 kB]
Get:9 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxdamage1 i386 1:1.1.4-2 [6,812 B]
Get:10 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxfixes3 i386 1:5.0.1-2 [11.4 kB]
Get:11 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxshmfence1 i386 1.2-1 [5,164 B]
Get:12 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxxf86vm1 i386 1:1.1.4-1 [11.3 kB]
Get:13 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libstdc++-5-dev amd64 5.3.1-14ubuntu2 [1,427 kB]
Get:14 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 g++-5 amd64 5.3.1-14ubuntu2 [8,433 kB]
Get:15 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 g++ amd64 4:5.3.1-1ubuntu1 [1,504 B]
Get:16 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 dpkg-dev all 1.18.4ubuntu1 [584 kB]
Get:17 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 build-essential amd64 12.1ubuntu2 [4,758 B]
Get:18 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 dkms all 2.2.0.3-2ubuntu11 [67.4 kB]
Get:19 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 bbswitch-dkms amd64 0.8-3ubuntu1 [11.6 kB]
Get:20 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 bumblebee amd64 3.2.1-10 [47.3 kB]
Get:21 http://au.archive.ubuntu.com/ubuntu xenial/main i386 gcc-5-base i386 5.3.1-14ubuntu2 [16.8 kB]
Get:22 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libstdc++6 i386 5.3.1-14ubuntu2 [417 kB]
Get:23 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libtxc-dxtn-s2tc0 i386 0~git20131104-1.1 [48.1 kB]
Get:24 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libtinfo5 i386 6.0+20160213-1ubuntu1 [77.4 kB]
Get:25 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libudev1 i386 229-4ubuntu4 [62.1 kB]
Get:26 http://au.archive.ubuntu.com/ubuntu xenial/main i386 zlib1g i386 1:1.2.8.dfsg-2ubuntu4 [52.2 kB]
Get:27 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libbsd0 i386 0.8.2-1 [45.2 kB]
Get:28 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libexpat1 i386 2.1.0-7 [74.3 kB]
Get:29 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libffi6 i386 3.2.1-4 [17.0 kB]
Get:30 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libdrm2 i386 2.4.67-1 [30.8 kB]
Get:31 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libedit2 i386 3.1-20150325-1ubuntu2 [80.9 kB]
Get:32 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libelf1 i386 0.165-3ubuntu1 [48.7 kB]
Get:33 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libfakeroot amd64 1.20.2-1ubuntu1 [25.5 kB]
Get:34 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 fakeroot amd64 1.20.2-1ubuntu1 [61.8 kB]
Get:35 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-perl all 1.19.03-1 [47.6 kB]
Get:36 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-diff-xs-perl amd64 0.04-4build1 [11.0 kB]
Get:37 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libalgorithm-merge-perl all 0.08-3 [12.0 kB]
Get:38 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libc6-i386 amd64 2.23-0ubuntu3 [2,335 kB]
Get:39 http://au.archive.ubuntu.com/ubuntu xenial/restricted amd64 libcuda1-361 amd64 361.42-0ubuntu2 [8,878 kB]
Get:40 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libdrm-amdgpu1 i386 2.4.67-1 [19.5 kB]
Get:41 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libpciaccess0 i386 0.13.4-1 [20.3 kB]
Get:42 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libdrm-intel1 i386 2.4.67-1 [59.7 kB]
Get:43 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libdrm-nouveau2 i386 2.4.67-1 [18.2 kB]
Get:44 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libdrm-radeon1 i386 2.4.67-1 [23.1 kB]
Get:45 http://au.archive.ubuntu.com/ubuntu xenial-updates/main i386 libllvm3.8 i386 1:3.8-2ubuntu3 [11.5 MB]
Get:46 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libgl1-mesa-dri i386 11.2.0-1ubuntu2 [4,950 kB]
Get:47 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libglapi-mesa i386 11.2.0-1ubuntu2 [23.2 kB]
Get:48 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libx11-xcb1 i386 2:1.6.3-1ubuntu2 [8,944 B]
Get:49 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxcb-dri2-0 i386 1.11.1-1ubuntu1 [7,292 B]
Get:50 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxcb-dri3-0 i386 1.11.1-1ubuntu1 [5,392 B]
Get:51 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxcb-glx0 i386 1.11.1-1ubuntu1 [22.3 kB]
Get:52 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxcb-present0 i386 1.11.1-1ubuntu1 [5,396 B]
Get:53 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libxcb-sync1 i386 1.11.1-1ubuntu1 [8,702 B]
Get:54 http://au.archive.ubuntu.com/ubuntu xenial/main i386 libgl1-mesa-glx i386 11.2.0-1ubuntu2 [134 kB]
Get:55 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libjansson4 amd64 2.7-3 [26.9 kB]
Get:56 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 libxnvctrl0 amd64 361.42-0ubuntu1 [11.2 kB]
Get:57 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 lib32gcc1 amd64 1:6.0.1-0ubuntu1 [46.6 kB]
Get:58 http://au.archive.ubuntu.com/ubuntu xenial/restricted amd64 nvidia-361 amd64 361.42-0ubuntu2 [67.6 MB]
Get:59 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 ocl-icd-libopencl1 amd64 2.2.8-1 [29.7 kB]
Get:60 http://au.archive.ubuntu.com/ubuntu xenial/restricted amd64 nvidia-opencl-icd-361 amd64 361.42-0ubuntu2 [9,011 kB]
Get:61 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 nvidia-prime amd64 0.8.2 [11.1 kB]
Get:62 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 pkg-config amd64 0.29.1-0ubuntu1 [45.0 kB]
Get:63 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 screen-resolution-extra all 0.17.1 [11.4 kB]
Get:64 http://au.archive.ubuntu.com/ubuntu xenial/main amd64 nvidia-settings amd64 361.42-0ubuntu1 [855 kB]
Get:65 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 bumblebee-nvidia amd64 3.2.1-10 [3,212 B]
Get:66 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 socat amd64 1.7.3.1-1 [321 kB]
Get:67 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 primus-libs amd64 0~20150328-1 [49.3 kB]
Get:68 http://au.archive.ubuntu.com/ubuntu xenial/universe amd64 primus amd64 0~20150328-1 [9,796 B]
Get:69 http://au.archive.ubuntu.com/ubuntu xenial/universe i386 primus-libs i386 0~20150328-1 [54.7 kB]
Get:70 http://au.archive.ubuntu.com/ubuntu xenial/universe i386 primus-libs-ia32 i386 0~20150328-1 [2,240 B]
Fetched 121 MB in 2min 3s (980 kB/s)
Extracting templates from packages: 100%
Preconfiguring packages ...
Selecting previously unselected package gcc-6-base:i386.
(Reading database ... 154503 files and directories currently installed.)
Preparing to unpack .../gcc-6-base_6.0.1-0ubuntu1_i386.deb ...
Unpacking gcc-6-base:i386 (6.0.1-0ubuntu1) ...
Selecting previously unselected package libgcc1:i386.
Preparing to unpack .../libgcc1_1%3a6.0.1-0ubuntu1_i386.deb ...
Unpacking libgcc1:i386 (1:6.0.1-0ubuntu1) ...
Selecting previously unselected package libc6:i386.
Preparing to unpack .../libc6_2.23-0ubuntu3_i386.deb ...
Unpacking libc6:i386 (2.23-0ubuntu3) ...
Selecting previously unselected package libxau6:i386.
Preparing to unpack .../libxau6_1%3a1.0.8-1_i386.deb ...
Unpacking libxau6:i386 (1:1.0.8-1) ...
Selecting previously unselected package libxdmcp6:i386.
Preparing to unpack .../libxdmcp6_1%3a1.1.2-1.1_i386.deb ...
Unpacking libxdmcp6:i386 (1:1.1.2-1.1) ...
Selecting previously unselected package libxcb1:i386.
Preparing to unpack .../libxcb1_1.11.1-1ubuntu1_i386.deb ...
Unpacking libxcb1:i386 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libx11-6:i386.
Preparing to unpack .../libx11-6_2%3a1.6.3-1ubuntu2_i386.deb ...
Unpacking libx11-6:i386 (2:1.6.3-1ubuntu2) ...
Selecting previously unselected package libxext6:i386.
Preparing to unpack .../libxext6_2%3a1.3.3-1_i386.deb ...
Unpacking libxext6:i386 (2:1.3.3-1) ...
Selecting previously unselected package libxdamage1:i386.
Preparing to unpack .../libxdamage1_1%3a1.1.4-2_i386.deb ...
Unpacking libxdamage1:i386 (1:1.1.4-2) ...
Selecting previously unselected package libxfixes3:i386.
Preparing to unpack .../libxfixes3_1%3a5.0.1-2_i386.deb ...
Unpacking libxfixes3:i386 (1:5.0.1-2) ...
Selecting previously unselected package libxshmfence1:i386.
Preparing to unpack .../libxshmfence1_1.2-1_i386.deb ...
Unpacking libxshmfence1:i386 (1.2-1) ...
Selecting previously unselected package libxxf86vm1:i386.
Preparing to unpack .../libxxf86vm1_1%3a1.1.4-1_i386.deb ...
Unpacking libxxf86vm1:i386 (1:1.1.4-1) ...
Selecting previously unselected package libstdc++-5-dev:amd64.
Preparing to unpack .../libstdc++-5-dev_5.3.1-14ubuntu2_amd64.deb ...
Unpacking libstdc++-5-dev:amd64 (5.3.1-14ubuntu2) ...
Selecting previously unselected package g++-5.
Preparing to unpack .../g++-5_5.3.1-14ubuntu2_amd64.deb ...
Unpacking g++-5 (5.3.1-14ubuntu2) ...
Selecting previously unselected package g++.
Preparing to unpack .../g++_4%3a5.3.1-1ubuntu1_amd64.deb ...
Unpacking g++ (4:5.3.1-1ubuntu1) ...
Selecting previously unselected package dpkg-dev.
Preparing to unpack .../dpkg-dev_1.18.4ubuntu1_all.deb ...
Unpacking dpkg-dev (1.18.4ubuntu1) ...
Selecting previously unselected package build-essential.
Preparing to unpack .../build-essential_12.1ubuntu2_amd64.deb ...
Unpacking build-essential (12.1ubuntu2) ...
Selecting previously unselected package dkms.
Preparing to unpack .../dkms_2.2.0.3-2ubuntu11_all.deb ...
Unpacking dkms (2.2.0.3-2ubuntu11) ...
Selecting previously unselected package bbswitch-dkms.
Preparing to unpack .../bbswitch-dkms_0.8-3ubuntu1_amd64.deb ...
Unpacking bbswitch-dkms (0.8-3ubuntu1) ...
Selecting previously unselected package bumblebee.
Preparing to unpack .../bumblebee_3.2.1-10_amd64.deb ...
Unpacking bumblebee (3.2.1-10) ...
Selecting previously unselected package gcc-5-base:i386.
Preparing to unpack .../gcc-5-base_5.3.1-14ubuntu2_i386.deb ...
Unpacking gcc-5-base:i386 (5.3.1-14ubuntu2) ...
Selecting previously unselected package libstdc++6:i386.
Preparing to unpack .../libstdc++6_5.3.1-14ubuntu2_i386.deb ...
Unpacking libstdc++6:i386 (5.3.1-14ubuntu2) ...
Selecting previously unselected package libtxc-dxtn-s2tc0:i386.
Preparing to unpack .../libtxc-dxtn-s2tc0_0~git20131104-1.1_i386.deb ...
Unpacking libtxc-dxtn-s2tc0:i386 (0~git20131104-1.1) ...
Selecting previously unselected package libtinfo5:i386.
Preparing to unpack .../libtinfo5_6.0+20160213-1ubuntu1_i386.deb ...
Unpacking libtinfo5:i386 (6.0+20160213-1ubuntu1) ...
Selecting previously unselected package libudev1:i386.
Preparing to unpack .../libudev1_229-4ubuntu4_i386.deb ...
Unpacking libudev1:i386 (229-4ubuntu4) ...
Selecting previously unselected package zlib1g:i386.
Preparing to unpack .../zlib1g_1%3a1.2.8.dfsg-2ubuntu4_i386.deb ...
Unpacking zlib1g:i386 (1:1.2.8.dfsg-2ubuntu4) ...
Selecting previously unselected package libbsd0:i386.
Preparing to unpack .../libbsd0_0.8.2-1_i386.deb ...
Unpacking libbsd0:i386 (0.8.2-1) ...
Selecting previously unselected package libexpat1:i386.
Preparing to unpack .../libexpat1_2.1.0-7_i386.deb ...
Unpacking libexpat1:i386 (2.1.0-7) ...
Selecting previously unselected package libffi6:i386.
Preparing to unpack .../libffi6_3.2.1-4_i386.deb ...
Unpacking libffi6:i386 (3.2.1-4) ...
Selecting previously unselected package libdrm2:i386.
Preparing to unpack .../libdrm2_2.4.67-1_i386.deb ...
Unpacking libdrm2:i386 (2.4.67-1) ...
Selecting previously unselected package libedit2:i386.
Preparing to unpack .../libedit2_3.1-20150325-1ubuntu2_i386.deb ...
Unpacking libedit2:i386 (3.1-20150325-1ubuntu2) ...
Selecting previously unselected package libelf1:i386.
Preparing to unpack .../libelf1_0.165-3ubuntu1_i386.deb ...
Unpacking libelf1:i386 (0.165-3ubuntu1) ...
Selecting previously unselected package libfakeroot:amd64.
Preparing to unpack .../libfakeroot_1.20.2-1ubuntu1_amd64.deb ...
Unpacking libfakeroot:amd64 (1.20.2-1ubuntu1) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../fakeroot_1.20.2-1ubuntu1_amd64.deb ...
Unpacking fakeroot (1.20.2-1ubuntu1) ...
Selecting previously unselected package libalgorithm-diff-perl.
Preparing to unpack .../libalgorithm-diff-perl_1.19.03-1_all.deb ...
Unpacking libalgorithm-diff-perl (1.19.03-1) ...
Selecting previously unselected package libalgorithm-diff-xs-perl.
Preparing to unpack .../libalgorithm-diff-xs-perl_0.04-4build1_amd64.deb ...
Unpacking libalgorithm-diff-xs-perl (0.04-4build1) ...
Selecting previously unselected package libalgorithm-merge-perl.
Preparing to unpack .../libalgorithm-merge-perl_0.08-3_all.deb ...
Unpacking libalgorithm-merge-perl (0.08-3) ...
Selecting previously unselected package libc6-i386.
Preparing to unpack .../libc6-i386_2.23-0ubuntu3_amd64.deb ...
Unpacking libc6-i386 (2.23-0ubuntu3) ...
Replaced by files in installed package libc6:i386 (2.23-0ubuntu3) ...
Selecting previously unselected package libcuda1-361.
Preparing to unpack .../libcuda1-361_361.42-0ubuntu2_amd64.deb ...
Unpacking libcuda1-361 (361.42-0ubuntu2) ...
Selecting previously unselected package libdrm-amdgpu1:i386.
Preparing to unpack .../libdrm-amdgpu1_2.4.67-1_i386.deb ...
Unpacking libdrm-amdgpu1:i386 (2.4.67-1) ...
Selecting previously unselected package libpciaccess0:i386.
Preparing to unpack .../libpciaccess0_0.13.4-1_i386.deb ...
Unpacking libpciaccess0:i386 (0.13.4-1) ...
Selecting previously unselected package libdrm-intel1:i386.
Preparing to unpack .../libdrm-intel1_2.4.67-1_i386.deb ...
Unpacking libdrm-intel1:i386 (2.4.67-1) ...
Selecting previously unselected package libdrm-nouveau2:i386.
Preparing to unpack .../libdrm-nouveau2_2.4.67-1_i386.deb ...
Unpacking libdrm-nouveau2:i386 (2.4.67-1) ...
Selecting previously unselected package libdrm-radeon1:i386.
Preparing to unpack .../libdrm-radeon1_2.4.67-1_i386.deb ...
Unpacking libdrm-radeon1:i386 (2.4.67-1) ...
Selecting previously unselected package libllvm3.8:i386.
Preparing to unpack .../libllvm3.8_1%3a3.8-2ubuntu3_i386.deb ...
Unpacking libllvm3.8:i386 (1:3.8-2ubuntu3) ...
Selecting previously unselected package libgl1-mesa-dri:i386.
Preparing to unpack .../libgl1-mesa-dri_11.2.0-1ubuntu2_i386.deb ...
Unpacking libgl1-mesa-dri:i386 (11.2.0-1ubuntu2) ...
Selecting previously unselected package libglapi-mesa:i386.
Preparing to unpack .../libglapi-mesa_11.2.0-1ubuntu2_i386.deb ...
Unpacking libglapi-mesa:i386 (11.2.0-1ubuntu2) ...
Selecting previously unselected package libx11-xcb1:i386.
Preparing to unpack .../libx11-xcb1_2%3a1.6.3-1ubuntu2_i386.deb ...
Unpacking libx11-xcb1:i386 (2:1.6.3-1ubuntu2) ...
Selecting previously unselected package libxcb-dri2-0:i386.
Preparing to unpack .../libxcb-dri2-0_1.11.1-1ubuntu1_i386.deb ...
Unpacking libxcb-dri2-0:i386 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libxcb-dri3-0:i386.
Preparing to unpack .../libxcb-dri3-0_1.11.1-1ubuntu1_i386.deb ...
Unpacking libxcb-dri3-0:i386 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libxcb-glx0:i386.
Preparing to unpack .../libxcb-glx0_1.11.1-1ubuntu1_i386.deb ...
Unpacking libxcb-glx0:i386 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libxcb-present0:i386.
Preparing to unpack .../libxcb-present0_1.11.1-1ubuntu1_i386.deb ...
Unpacking libxcb-present0:i386 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libxcb-sync1:i386.
Preparing to unpack .../libxcb-sync1_1.11.1-1ubuntu1_i386.deb ...
Unpacking libxcb-sync1:i386 (1.11.1-1ubuntu1) ...
Selecting previously unselected package libgl1-mesa-glx:i386.
Preparing to unpack .../libgl1-mesa-glx_11.2.0-1ubuntu2_i386.deb ...
Unpacking libgl1-mesa-glx:i386 (11.2.0-1ubuntu2) ...
Selecting previously unselected package libjansson4:amd64.
Preparing to unpack .../libjansson4_2.7-3_amd64.deb ...
Unpacking libjansson4:amd64 (2.7-3) ...
Selecting previously unselected package libxnvctrl0.
Preparing to unpack .../libxnvctrl0_361.42-0ubuntu1_amd64.deb ...
Unpacking libxnvctrl0 (361.42-0ubuntu1) ...
Selecting previously unselected package lib32gcc1.
Preparing to unpack .../lib32gcc1_1%3a6.0.1-0ubuntu1_amd64.deb ...
Unpacking lib32gcc1 (1:6.0.1-0ubuntu1) ...
Selecting previously unselected package nvidia-361.
Preparing to unpack .../nvidia-361_361.42-0ubuntu2_amd64.deb ...
Unpacking nvidia-361 (361.42-0ubuntu2) ...
Selecting previously unselected package ocl-icd-libopencl1:amd64.
Preparing to unpack .../ocl-icd-libopencl1_2.2.8-1_amd64.deb ...
Unpacking ocl-icd-libopencl1:amd64 (2.2.8-1) ...
Selecting previously unselected package nvidia-opencl-icd-361.
Preparing to unpack .../nvidia-opencl-icd-361_361.42-0ubuntu2_amd64.deb ...
Unpacking nvidia-opencl-icd-361 (361.42-0ubuntu2) ...
Selecting previously unselected package nvidia-prime.
Preparing to unpack .../nvidia-prime_0.8.2_amd64.deb ...
Unpacking nvidia-prime (0.8.2) ...
Selecting previously unselected package pkg-config.
Preparing to unpack .../pkg-config_0.29.1-0ubuntu1_amd64.deb ...
Unpacking pkg-config (0.29.1-0ubuntu1) ...
Selecting previously unselected package screen-resolution-extra.
Preparing to unpack .../screen-resolution-extra_0.17.1_all.deb ...
Unpacking screen-resolution-extra (0.17.1) ...
Selecting previously unselected package nvidia-settings.
Preparing to unpack .../nvidia-settings_361.42-0ubuntu1_amd64.deb ...
Unpacking nvidia-settings (361.42-0ubuntu1) ...
Selecting previously unselected package bumblebee-nvidia.
Preparing to unpack .../bumblebee-nvidia_3.2.1-10_amd64.deb ...
Unpacking bumblebee-nvidia (3.2.1-10) ...
Selecting previously unselected package socat.
Preparing to unpack .../socat_1.7.3.1-1_amd64.deb ...
Unpacking socat (1.7.3.1-1) ...
Selecting previously unselected package primus-libs:amd64.
Preparing to unpack .../primus-libs_0~20150328-1_amd64.deb ...
Unpacking primus-libs:amd64 (0~20150328-1) ...
Selecting previously unselected package primus.
Preparing to unpack .../primus_0~20150328-1_amd64.deb ...
Unpacking primus (0~20150328-1) ...
Selecting previously unselected package primus-libs:i386.
Preparing to unpack .../primus-libs_0~20150328-1_i386.deb ...
Unpacking primus-libs:i386 (0~20150328-1) ...
Selecting previously unselected package primus-libs-ia32:i386.
Preparing to unpack .../primus-libs-ia32_0~20150328-1_i386.deb ...
Unpacking primus-libs-ia32:i386 (0~20150328-1) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for man-db (2.7.5-1) ...
Processing triggers for initramfs-tools (0.122ubuntu8) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-21-generic
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for doc-base (0.10.7) ...
Processing 31 changed doc-base files, 2 added doc-base files...
Processing triggers for dbus (1.10.6-1ubuntu3) ...
Processing triggers for gnome-menus (3.13.3-6ubuntu3) ...
Processing triggers for desktop-file-utils (0.22-1ubuntu5) ...
Processing triggers for mime-support (3.59ubuntu1) ...
Setting up gcc-6-base:i386 (6.0.1-0ubuntu1) ...
Setting up libstdc++-5-dev:amd64 (5.3.1-14ubuntu2) ...
Setting up g++-5 (5.3.1-14ubuntu2) ...
Setting up g++ (4:5.3.1-1ubuntu1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up dpkg-dev (1.18.4ubuntu1) ...
Setting up build-essential (12.1ubuntu2) ...
Setting up dkms (2.2.0.3-2ubuntu11) ...
Setting up bbswitch-dkms (0.8-3ubuntu1) ...
Loading new bbswitch-0.8 DKMS files...
First Installation: checking all kernels...
Building only for 4.4.0-21-generic
Building initial module for 4.4.0-21-generic
Done.

bbswitch:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

depmod.............

DKMS: install completed.
Setting up bumblebee (3.2.1-10) ...
Adding members from group(s) 'adm sudo admin' to 'bumblebee':
entropy syslog
Adding user entropy to group bumblebee
Adding user syslog to group bumblebee
Selecting 02:00:0 as discrete nvidia card. If this is incorrect,
edit the BusID line in /etc/bumblebee/xorg.conf.nouveau .
Setting up gcc-5-base:i386 (5.3.1-14ubuntu2) ...
Setting up libfakeroot:amd64 (1.20.2-1ubuntu1) ...
Setting up fakeroot (1.20.2-1ubuntu1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up libalgorithm-diff-perl (1.19.03-1) ...
Setting up libalgorithm-diff-xs-perl (0.04-4build1) ...
Setting up libalgorithm-merge-perl (0.08-3) ...
Setting up libc6-i386 (2.23-0ubuntu3) ...
Setting up libcuda1-361 (361.42-0ubuntu2) ...
Setting up libjansson4:amd64 (2.7-3) ...
Setting up libxnvctrl0 (361.42-0ubuntu1) ...
Setting up lib32gcc1 (1:6.0.1-0ubuntu1) ...
Setting up nvidia-361 (361.42-0ubuntu2) ...
update-alternatives: using /usr/lib/nvidia-361/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-361/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-361/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in auto mode
update-alternatives: using /usr/lib/nvidia-361/alt_ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_EGL.conf (i386-linux-gnu_egl_conf) in auto mode
update-alternatives: using /usr/share/nvidia-361/glamor.conf to provide /usr/share/X11/xorg.conf.d/glamoregl.conf (glamor_conf) in auto mode
update-initramfs: deferring update (trigger activated)
INFO:Enable nvidia-361
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
Adding system user `nvidia-persistenced' (UID 121) ...
Adding new group `nvidia-persistenced' (GID 129) ...
Adding new user `nvidia-persistenced' (UID 121) with group `nvidia-persistenced' ...
Not creating home directory `/'.
Loading new nvidia-361-361.42 DKMS files...
First Installation: checking all kernels...
Building only for 4.4.0-21-generic
Building for architecture x86_64
Building initial module for 4.4.0-21-generic
Done.

nvidia_361:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

nvidia_361_modeset.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

nvidia_361_uvm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

depmod....

DKMS: install completed.
Setting up ocl-icd-libopencl1:amd64 (2.2.8-1) ...
Setting up nvidia-opencl-icd-361 (361.42-0ubuntu2) ...
Setting up nvidia-prime (0.8.2) ...
Setting up pkg-config (0.29.1-0ubuntu1) ...
Setting up screen-resolution-extra (0.17.1) ...
Setting up nvidia-settings (361.42-0ubuntu1) ...
Setting up socat (1.7.3.1-1) ...
Setting up primus-libs:amd64 (0~20150328-1) ...
Processing triggers for initramfs-tools (0.122ubuntu8) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-21-generic
Setting up primus (0~20150328-1) ...
Setting up bumblebee-nvidia (3.2.1-10) ...
update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf (x86_64-linux-gnu_gl_conf) in manual mode
Selecting 02:00:0 as discrete nvidia card. If this is incorrect,
edit the BusID line in /etc/bumblebee/xorg.conf.nvidia
rmmod: ERROR: Module nouveau is in use
Setting up libc6:i386 (2.23-0ubuntu3) ...
Setting up libxau6:i386 (1:1.0.8-1) ...
Setting up libxdmcp6:i386 (1:1.1.2-1.1) ...
Setting up libxcb1:i386 (1.11.1-1ubuntu1) ...
Setting up libx11-6:i386 (2:1.6.3-1ubuntu2) ...
Setting up libxext6:i386 (2:1.3.3-1) ...
Setting up libxdamage1:i386 (1:1.1.4-2) ...
Setting up libxfixes3:i386 (1:5.0.1-2) ...
Setting up libxshmfence1:i386 (1.2-1) ...
Setting up libxxf86vm1:i386 (1:1.1.4-1) ...
Setting up libtinfo5:i386 (6.0+20160213-1ubuntu1) ...
Setting up zlib1g:i386 (1:1.2.8.dfsg-2ubuntu4) ...
Setting up libbsd0:i386 (0.8.2-1) ...
Setting up libexpat1:i386 (2.1.0-7) ...
Setting up libffi6:i386 (3.2.1-4) ...
Setting up libdrm2:i386 (2.4.67-1) ...
Setting up libedit2:i386 (3.1-20150325-1ubuntu2) ...
Setting up libelf1:i386 (0.165-3ubuntu1) ...
Setting up libdrm-amdgpu1:i386 (2.4.67-1) ...
Setting up libpciaccess0:i386 (0.13.4-1) ...
Setting up libdrm-intel1:i386 (2.4.67-1) ...
Setting up libdrm-nouveau2:i386 (2.4.67-1) ...
Setting up libdrm-radeon1:i386 (2.4.67-1) ...
Setting up libglapi-mesa:i386 (11.2.0-1ubuntu2) ...
Setting up libx11-xcb1:i386 (2:1.6.3-1ubuntu2) ...
Setting up libxcb-dri2-0:i386 (1.11.1-1ubuntu1) ...
Setting up libxcb-dri3-0:i386 (1.11.1-1ubuntu1) ...
Setting up libxcb-glx0:i386 (1.11.1-1ubuntu1) ...
Setting up libxcb-present0:i386 (1.11.1-1ubuntu1) ...
Setting up libxcb-sync1:i386 (1.11.1-1ubuntu1) ...
Setting up libgcc1:i386 (1:6.0.1-0ubuntu1) ...
Setting up libstdc++6:i386 (5.3.1-14ubuntu2) ...
Setting up libtxc-dxtn-s2tc0:i386 (0~git20131104-1.1) ...
update-alternatives: using /usr/lib/i386-linux-gnu/libtxc_dxtn_s2tc.so.0 to provide /usr/lib/i386-linux-gnu/libtxc_dxtn.so (libtxc-dxtn-i386-linux-gnu) in auto mode
Setting up libudev1:i386 (229-4ubuntu4) ...
Setting up libllvm3.8:i386 (1:3.8-2ubuntu3) ...
Setting up libgl1-mesa-dri:i386 (11.2.0-1ubuntu2) ...
Setting up libgl1-mesa-glx:i386 (11.2.0-1ubuntu2) ...
Setting up primus-libs:i386 (0~20150328-1) ...
Setting up primus-libs-ia32:i386 (0~20150328-1) ...
Processing triggers for ureadahead (0.100.0-19) ...
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for libc-bin (2.23-0ubuntu3) ...
Processing triggers for dbus (1.10.6-1ubuntu3) ...
entropy@symplex:~$


5. Blacklist NVidia Drivers


Do not reboot until you have done this. Rebooting after installing drivers but before blacklisting them will result in a black-screen and you'll have to enter through recovery mode to blacklist them. In fact, don't reboot unless it explicitly says to.

Add these lines:
blacklist nvidia-361
blacklist nvidia-361-updates
blacklist nvidia-experimental-361

To your /etc/modprobe.d/bumblebee.conf. I like to put it at the end of the file so that it's the same as the rest of the file because I'm crazy:

entropy@symplex:~$ tail /etc/modprobe.d/bumblebee.conf
# 355
blacklist nvidia-355
blacklist nvidia-355-updates
blacklist nvidia-experimental-355
# 361
blacklist nvidia-361
blacklist nvidia-361-updates
blacklist nvidia-experimental-361
# Workaround to make sure nvidia-uvm is removed as well
remove nvidia rmmod nvidia-uvm nvidia
entropy@symplex:~$


6. Update bumblebee Config to Point to 361.x Drivers


This appears to actually be a bug in Ubuntu. By default bumblebee-nvidia installs a config file that points to nvidia-current, but that directory is empty, and not because we chose 361.x as opposed to the default version that the package lists (304.x) as a dependency,  even that does not link itself to nvidia-current. We're going to point ours to 361.x. Change the following fields to the following values in /etc/bumblebee/bumblebee.conf:

...
[bumblebeed]
...
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
...

## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia_361
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-361:/usr/lib32/nvidia-361  
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-361/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia

...


7. Select Mesa as your GL Provider


Update your alternatives to point all GL providers to mesa. We actually want mesa, because this will indeed be your provider. By default, all of your GL will run on the Intel card, and this will run through mesa. Only through optirun/primusrun will things be handled by the NVidia GL implementation.

entropy@symplex:~$ sudo update-alternatives --config i386-linux-gnu_gl_conf
There are 3 choices for the alternative i386-linux-gnu_gl_conf (providing /etc/ld.so.conf.d/i386-linux-gnu_GL.conf).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-361/alt_ld.so.conf         8604      auto mode
  1            /usr/lib/i386-linux-gnu/mesa/ld.so.conf    500       manual mode
  2            /usr/lib/nvidia-361-prime/alt_ld.so.conf   8603      manual mode
  3            /usr/lib/nvidia-361/alt_ld.so.conf         8604      manual mode

Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/lib/i386-linux-gnu/mesa/ld.so.conf to provide /etc/ld.so.conf.d/i386-linux-gnu_GL.conf (i386-linux-gnu_gl_conf) in manual mode
entropy@symplex:~$ sudo update-alternatives --config x86_64-linux-gnu_egl_conf
There are 3 choices for the alternative x86_64-linux-gnu_egl_conf (providing /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
* 0            /usr/lib/nvidia-361/ld.so.conf                  8604      auto mode
  1            /usr/lib/nvidia-361-prime/ld.so.conf            8603      manual mode
  2            /usr/lib/nvidia-361/ld.so.conf                  8604      manual mode
  3            /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf   500       manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
update-alternatives: using /usr/lib/x86_64-linux-gnu/mesa-egl/ld.so.conf to provide /etc/ld.so.conf.d/x86_64-linux-gnu_EGL.conf (x86_64-linux-gnu_egl_conf) in manual mode
entropy@symplex:~$ sudo update-alternatives --config x86_64-linux-gnu_gl_conf
There are 3 choices for the alternative x86_64-linux-gnu_gl_conf (providing /etc/ld.so.conf.d/x86_64-linux-gnu_GL.conf).

  Selection    Path                                       Priority   Status
------------------------------------------------------------
  0            /usr/lib/nvidia-361/ld.so.conf              8604      auto mode
  1            /usr/lib/nvidia-361-prime/ld.so.conf        8603      manual mode
  2            /usr/lib/nvidia-361/ld.so.conf              8604      manual mode
* 3            /usr/lib/x86_64-linux-gnu/mesa/ld.so.conf   500       manual mode

Press <enter> to keep the current choice[*], or type selection number: 3
entropy@symplex:~$


8. Reboot


This is important!

entropy@symplex:~$ sudo reboot


9. Disable gpu-manager


The ubuntu-drivers-common package installs this thing called gpu-manager. It's started by /etc/init/gpu-manager.conf, which is run by upstart, but what it does is actually creates a new /etc/X11/xorg.conf every time you shut-down/reboot your laptop. We need to disable it, because the xorg.conf it creates will break our setup. Add nogpumanager to your /etc/default/grub file.

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=0
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX="nogpumanager"

# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console

# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480

# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true

# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"

# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"

Now update your grub menu.

entropy@symplex:~$ sudo update-grub


10. Re-build the bbswitch and nvidia modules.


Now that all of the LD paths are refreshed after a reboot, we can re-build the modules. Something goes wrong during the install that requires this. I presume it's to do with ldconfig not finding the right paths. Also, do not reboot again until this step is complete. Doing so will result in a black screen.

entropy@symplex:~$ sudo dpkg-reconfigure bbswitch-dkms

-------- Uninstall Beginning --------
Module:  bbswitch
Version: 0.8
Kernel:  4.4.0-21-generic (x86_64)
-------------------------------------

Status: Before uninstall, this module version was ACTIVE on this kernel.

bbswitch.ko:
 - Uninstallation
   - Deleting from: /lib/modules/4.4.0-21-generic/updates/dkms/
 - Original module
   - No original module was found for this module on this kernel.
   - Use the dkms install command to reinstall any previous module version.

depmod........

DKMS: uninstall completed.

------------------------------
Deleting module version: 0.8
completely from the DKMS tree.
------------------------------
Done.
Loading new bbswitch-0.8 DKMS files...
Building only for 4.4.0-21-generic
Building initial module for 4.4.0-21-generic
Done.

bbswitch:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

depmod....

DKMS: install completed.
entropy@symplex:~$ sudo dpkg-reconfigure nvidia-361
Stopping nvidia-persistenced
nvidia-persistenced: no process found
Done.
Removing all DKMS Modules
Done.
INFO:Enable nvidia-361
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
Loading new nvidia-361-361.42 DKMS files...
Building only for 4.4.0-21-generic
Building for architecture x86_64
Building initial module for 4.4.0-21-generic
Done.

nvidia_361:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

nvidia_361_modeset.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

nvidia_361_uvm.ko:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/4.4.0-21-generic/updates/dkms/

depmod....

DKMS: install completed.
entropy@symplex:~$

Okay. Now you may ...


11. Reboot


Yes, again. Yes, you have to.

entropy@symplex:~$ sudo reboot


12. Test it


glxinfo will tell you if the provider of your GL is the NVidia proprietary driver, and glxgears will test rendering through that provider.

entropy@symplex:~$ optirun glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
    GLX_ARB_context_flush_control, GLX_ARB_create_context,
    GLX_ARB_create_context_profile, GLX_ARB_create_context_robustness,
    GLX_ARB_fbconfig_float, GLX_ARB_multisample, GLX_EXT_buffer_age,
    GLX_EXT_create_context_es2_profile, GLX_EXT_create_context_es_profile,
    GLX_EXT_framebuffer_sRGB, GLX_EXT_stereo_tree, GLX_EXT_swap_control,
    GLX_EXT_swap_control_tear, GLX_EXT_texture_from_pixmap,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_NV_copy_image,
    GLX_NV_delay_before_swap, GLX_NV_float_buffer,
    GLX_NV_multisample_coverage, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGI_swap_control, GLX_SGI_video_sync
client glx vendor string: primus
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_get_proc_address
GLX version: 1.4
GLX extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GT 730M/PCIe/SSE2
OpenGL core profile version string: 4.5.0 NVIDIA 361.42
OpenGL core profile shading language version string: 4.50 NVIDIA
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
    GL_AMD_multi_draw_indirect, GL_AMD_seamless_cubemap_per_texture,
    GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility,
    GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility,
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_bindless_texture,
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,
    GL_ARB_color_buffer_float, GL_ARB_compressed_texture_pixel_storage,
    GL_ARB_compute_shader, GL_ARB_compute_variable_group_size,
    GL_ARB_conditional_render_inverted, GL_ARB_conservative_depth,
    GL_ARB_copy_buffer, GL_ARB_copy_image, GL_ARB_cull_distance,
    GL_ARB_debug_output, GL_ARB_depth_buffer_float, GL_ARB_depth_clamp,
    GL_ARB_depth_texture, GL_ARB_derivative_control,
    GL_ARB_direct_state_access, GL_ARB_draw_buffers,
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,
    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_geometry_shader4, GL_ARB_get_program_binary,
    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,
    GL_ARB_gpu_shader_int64, GL_ARB_half_float_pixel,
    GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_indirect_parameters,
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,
    GL_ARB_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_occlusion_query2,
    GL_ARB_parallel_shader_compile, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,
    GL_ARB_robustness, GL_ARB_sample_shading, GL_ARB_sampler_objects,
    GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture,
    GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counter_ops,
    GL_ARB_shader_atomic_counters, GL_ARB_shader_ballot,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock,
    GL_ARB_shader_draw_parameters, GL_ARB_shader_group_vote,
    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,
    GL_ARB_shader_objects, GL_ARB_shader_precision,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine,
    GL_ARB_shader_texture_image_samples, GL_ARB_shader_texture_lod,
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack,
    GL_ARB_shading_language_include, GL_ARB_shading_language_packing,
    GL_ARB_shadow, GL_ARB_sparse_buffer, GL_ARB_sparse_texture,
    GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_tessellation_shader,
    GL_ARB_texture_barrier, GL_ARB_texture_border_clamp,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression,
    GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc,
    GL_ARB_texture_cube_map, GL_ARB_texture_cube_map_array,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_ARB_texture_float, GL_ARB_texture_gather,
    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_query_levels, GL_ARB_texture_query_lod,
    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,
    GL_ARB_texture_stencil8, GL_ARB_texture_storage,
    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,
    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,
    GL_ARB_transform_feedback_overflow_query, GL_ARB_transpose_matrix,
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit,
    GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,
    GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_draw_buffers,
    GL_ATI_texture_float, GL_ATI_texture_mirror_once,
    GL_EXTX_framebuffer_mixed_formats, GL_EXT_Cg_shader, GL_EXT_abgr,
    GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
    GL_EXT_depth_bounds_test, GL_EXT_direct_state_access,
    GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements,
    GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
    GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object,
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4,
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
    GL_EXT_import_sync_object, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels,
    GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
    GL_EXT_polygon_offset_clamp, GL_EXT_provoking_vertex,
    GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color,
    GL_EXT_shader_image_load_store, GL_EXT_shader_integer_mix,
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
    GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_latc,
    GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc,
    GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_integer, GL_EXT_texture_lod, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_sRGB,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent,
    GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query,
    GL_EXT_transform_feedback2, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,
    GL_EXT_vertex_attrib_64bit, GL_EXT_x11_sync_object, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_KHR_blend_equation_advanced,
    GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_KTX_buffer_region, GL_NVX_conditional_render, GL_NVX_gpu_memory_info,
    GL_NVX_nvenc_interop, GL_NV_ES1_1_compatibility,
    GL_NV_ES3_1_compatibility, GL_NV_bindless_multi_draw_indirect,
    GL_NV_bindless_multi_draw_indirect_count, GL_NV_bindless_texture,
    GL_NV_blend_equation_advanced, GL_NV_blend_square, GL_NV_command_list,
    GL_NV_compute_program5, GL_NV_conditional_render,
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_buffer_float,
    GL_NV_depth_clamp, GL_NV_draw_texture, GL_NV_explicit_multisample,
    GL_NV_fence, GL_NV_float_buffer, GL_NV_fog_distance,
    GL_NV_fragment_program, GL_NV_fragment_program2,
    GL_NV_fragment_program_option, GL_NV_framebuffer_multisample_coverage,
    GL_NV_geometry_shader4, GL_NV_gpu_program4, GL_NV_gpu_program4_1,
    GL_NV_gpu_program5, GL_NV_gpu_program5_mem_extended,
    GL_NV_gpu_program_fp64, GL_NV_gpu_shader5, GL_NV_half_float,
    GL_NV_internalformat_sample_query, GL_NV_light_max_exponent,
    GL_NV_multisample_coverage, GL_NV_multisample_filter_hint,
    GL_NV_occlusion_query, GL_NV_packed_depth_stencil,
    GL_NV_parameter_buffer_object, GL_NV_parameter_buffer_object2,
    GL_NV_path_rendering, GL_NV_pixel_data_range, GL_NV_point_sprite,
    GL_NV_primitive_restart, GL_NV_register_combiners,
    GL_NV_register_combiners2, GL_NV_shader_atomic_counters,
    GL_NV_shader_atomic_float, GL_NV_shader_atomic_int64,
    GL_NV_shader_buffer_load, GL_NV_shader_storage_buffer_object,
    GL_NV_shader_thread_group, GL_NV_shader_thread_shuffle,
    GL_NV_texgen_reflection, GL_NV_texture_barrier,
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
    GL_NV_texture_multisample, GL_NV_texture_rectangle, GL_NV_texture_shader,
    GL_NV_texture_shader2, GL_NV_texture_shader3, GL_NV_transform_feedback,
    GL_NV_transform_feedback2, GL_NV_uniform_buffer_unified_memory,
    GL_NV_vdpau_interop, GL_NV_vertex_array_range, GL_NV_vertex_array_range2,
    GL_NV_vertex_attrib_integer_64bit, GL_NV_vertex_buffer_unified_memory,
    GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_NV_vertex_program2,
    GL_NV_vertex_program2_option, GL_NV_vertex_program3, GL_S3_s3tc,
    GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
    GL_SGIX_shadow, GL_SUN_slice_accum

OpenGL version string: 4.5.0 NVIDIA 361.42
OpenGL shading language version string: 4.50 NVIDIA
OpenGL context flags: (none)
OpenGL profile mask: (none)
OpenGL extensions:
    GL_AMD_multi_draw_indirect, GL_AMD_seamless_cubemap_per_texture,
    GL_ARB_ES2_compatibility, GL_ARB_ES3_1_compatibility,
    GL_ARB_ES3_2_compatibility, GL_ARB_ES3_compatibility,
    GL_ARB_arrays_of_arrays, GL_ARB_base_instance, GL_ARB_bindless_texture,
    GL_ARB_blend_func_extended, GL_ARB_buffer_storage,
    GL_ARB_clear_buffer_object, GL_ARB_clear_texture, GL_ARB_clip_control,
    GL_ARB_color_buffer_float, GL_ARB_compatibility,
    GL_ARB_compressed_texture_pixel_storage, GL_ARB_compute_shader,
    GL_ARB_compute_variable_group_size, GL_ARB_conditional_render_inverted,
    GL_ARB_conservative_depth, GL_ARB_copy_buffer, GL_ARB_copy_image,
    GL_ARB_cull_distance, GL_ARB_debug_output, GL_ARB_depth_buffer_float,
    GL_ARB_depth_clamp, GL_ARB_depth_texture, GL_ARB_derivative_control,
    GL_ARB_direct_state_access, GL_ARB_draw_buffers,
    GL_ARB_draw_buffers_blend, GL_ARB_draw_elements_base_vertex,
    GL_ARB_draw_indirect, GL_ARB_draw_instanced, GL_ARB_enhanced_layouts,
    GL_ARB_explicit_attrib_location, GL_ARB_explicit_uniform_location,
    GL_ARB_fragment_coord_conventions, GL_ARB_fragment_layer_viewport,
    GL_ARB_fragment_program, GL_ARB_fragment_program_shadow,
    GL_ARB_fragment_shader, GL_ARB_framebuffer_no_attachments,
    GL_ARB_framebuffer_object, GL_ARB_framebuffer_sRGB,
    GL_ARB_geometry_shader4, GL_ARB_get_program_binary,
    GL_ARB_get_texture_sub_image, GL_ARB_gpu_shader5, GL_ARB_gpu_shader_fp64,
    GL_ARB_gpu_shader_int64, GL_ARB_half_float_pixel,
    GL_ARB_half_float_vertex, GL_ARB_imaging, GL_ARB_indirect_parameters,
    GL_ARB_instanced_arrays, GL_ARB_internalformat_query,
    GL_ARB_internalformat_query2, GL_ARB_invalidate_subdata,
    GL_ARB_map_buffer_alignment, GL_ARB_map_buffer_range, GL_ARB_multi_bind,
    GL_ARB_multi_draw_indirect, GL_ARB_multisample, GL_ARB_multitexture,
    GL_ARB_occlusion_query, GL_ARB_occlusion_query2,
    GL_ARB_parallel_shader_compile, GL_ARB_pipeline_statistics_query,
    GL_ARB_pixel_buffer_object, GL_ARB_point_parameters, GL_ARB_point_sprite,
    GL_ARB_program_interface_query, GL_ARB_provoking_vertex,
    GL_ARB_query_buffer_object, GL_ARB_robust_buffer_access_behavior,
    GL_ARB_robustness, GL_ARB_sample_shading, GL_ARB_sampler_objects,
    GL_ARB_seamless_cube_map, GL_ARB_seamless_cubemap_per_texture,
    GL_ARB_separate_shader_objects, GL_ARB_shader_atomic_counter_ops,
    GL_ARB_shader_atomic_counters, GL_ARB_shader_ballot,
    GL_ARB_shader_bit_encoding, GL_ARB_shader_clock,
    GL_ARB_shader_draw_parameters, GL_ARB_shader_group_vote,
    GL_ARB_shader_image_load_store, GL_ARB_shader_image_size,
    GL_ARB_shader_objects, GL_ARB_shader_precision,
    GL_ARB_shader_storage_buffer_object, GL_ARB_shader_subroutine,
    GL_ARB_shader_texture_image_samples, GL_ARB_shader_texture_lod,
    GL_ARB_shading_language_100, GL_ARB_shading_language_420pack,
    GL_ARB_shading_language_include, GL_ARB_shading_language_packing,
    GL_ARB_shadow, GL_ARB_sparse_buffer, GL_ARB_sparse_texture,
    GL_ARB_stencil_texturing, GL_ARB_sync, GL_ARB_tessellation_shader,
    GL_ARB_texture_barrier, GL_ARB_texture_border_clamp,
    GL_ARB_texture_buffer_object, GL_ARB_texture_buffer_object_rgb32,
    GL_ARB_texture_buffer_range, GL_ARB_texture_compression,
    GL_ARB_texture_compression_bptc, GL_ARB_texture_compression_rgtc,
    GL_ARB_texture_cube_map, GL_ARB_texture_cube_map_array,
    GL_ARB_texture_env_add, GL_ARB_texture_env_combine,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_env_dot3,
    GL_ARB_texture_float, GL_ARB_texture_gather,
    GL_ARB_texture_mirror_clamp_to_edge, GL_ARB_texture_mirrored_repeat,
    GL_ARB_texture_multisample, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_query_levels, GL_ARB_texture_query_lod,
    GL_ARB_texture_rectangle, GL_ARB_texture_rg, GL_ARB_texture_rgb10_a2ui,
    GL_ARB_texture_stencil8, GL_ARB_texture_storage,
    GL_ARB_texture_storage_multisample, GL_ARB_texture_swizzle,
    GL_ARB_texture_view, GL_ARB_timer_query, GL_ARB_transform_feedback2,
    GL_ARB_transform_feedback3, GL_ARB_transform_feedback_instanced,
    GL_ARB_transform_feedback_overflow_query, GL_ARB_transpose_matrix,
    GL_ARB_uniform_buffer_object, GL_ARB_vertex_array_bgra,
    GL_ARB_vertex_array_object, GL_ARB_vertex_attrib_64bit,
    GL_ARB_vertex_attrib_binding, GL_ARB_vertex_buffer_object,
    GL_ARB_vertex_program, GL_ARB_vertex_shader,
    GL_ARB_vertex_type_10f_11f_11f_rev, GL_ARB_vertex_type_2_10_10_10_rev,
    GL_ARB_viewport_array, GL_ARB_window_pos, GL_ATI_draw_buffers,
    GL_ATI_texture_float, GL_ATI_texture_mirror_once,
    GL_EXTX_framebuffer_mixed_formats, GL_EXT_Cg_shader, GL_EXT_abgr,
    GL_EXT_bgra, GL_EXT_bindable_uniform, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
    GL_EXT_depth_bounds_test, GL_EXT_direct_state_access,
    GL_EXT_draw_buffers2, GL_EXT_draw_instanced, GL_EXT_draw_range_elements,
    GL_EXT_fog_coord, GL_EXT_framebuffer_blit, GL_EXT_framebuffer_multisample,
    GL_EXT_framebuffer_multisample_blit_scaled, GL_EXT_framebuffer_object,
    GL_EXT_framebuffer_sRGB, GL_EXT_geometry_shader4,
    GL_EXT_gpu_program_parameters, GL_EXT_gpu_shader4,
    GL_EXT_import_sync_object, GL_EXT_multi_draw_arrays,
    GL_EXT_packed_depth_stencil, GL_EXT_packed_float, GL_EXT_packed_pixels,
    GL_EXT_pixel_buffer_object, GL_EXT_point_parameters,
    GL_EXT_polygon_offset_clamp, GL_EXT_provoking_vertex,
    GL_EXT_rescale_normal, GL_EXT_secondary_color,
    GL_EXT_separate_shader_objects, GL_EXT_separate_specular_color,
    GL_EXT_shader_image_load_store, GL_EXT_shader_integer_mix,
    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,
    GL_EXT_texture3D, GL_EXT_texture_array, GL_EXT_texture_buffer_object,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_compression_latc,
    GL_EXT_texture_compression_rgtc, GL_EXT_texture_compression_s3tc,
    GL_EXT_texture_cube_map, GL_EXT_texture_edge_clamp,
    GL_EXT_texture_env_add, GL_EXT_texture_env_combine,
    GL_EXT_texture_env_dot3, GL_EXT_texture_filter_anisotropic,
    GL_EXT_texture_integer, GL_EXT_texture_lod, GL_EXT_texture_lod_bias,
    GL_EXT_texture_mirror_clamp, GL_EXT_texture_object, GL_EXT_texture_sRGB,
    GL_EXT_texture_sRGB_decode, GL_EXT_texture_shared_exponent,
    GL_EXT_texture_storage, GL_EXT_texture_swizzle, GL_EXT_timer_query,
    GL_EXT_transform_feedback2, GL_EXT_vertex_array, GL_EXT_vertex_array_bgra,
    GL_EXT_vertex_attrib_64bit, GL_EXT_x11_sync_object, GL_IBM_rasterpos_clip,
    GL_IBM_texture_mirrored_repeat, GL_KHR_blend_equation_advanced,
    GL_KHR_context_flush_control, GL_KHR_debug, GL_KHR_no_error,
    GL_KHR_robust_buffer_access_behavior, GL_KHR_robustness,
    GL_KTX_buffer_region, GL_NVX_conditional_render, GL_NVX_gpu_memory_info,
    GL_NVX_nvenc_interop, GL_NV_ES1_1_compatibility,
    GL_NV_ES3_1_compatibility, GL_NV_bindless_multi_draw_indirect,
    GL_NV_bindless_multi_draw_indirect_count, GL_NV_bindless_texture,
    GL_NV_blend_equation_advanced, GL_NV_blend_square, GL_NV_command_list,
    GL_NV_compute_program5, GL_NV_conditional_render,
    GL_NV_copy_depth_to_color, GL_NV_copy_image, GL_NV_depth_buffer_float,
    GL_NV_depth_clamp, GL_NV_draw_texture, GL_NV_explicit_multisample,
    GL_NV_fence, GL_NV_float_buffer, GL_NV_fog_distance,
    GL_NV_fragment_program, GL_NV_fragment_program2,
    GL_NV_fragment_program_option, GL_NV_framebuffer_multisample_coverage,
    GL_NV_geometry_shader4, GL_NV_gpu_program4, GL_NV_gpu_program4_1,
    GL_NV_gpu_program5, GL_NV_gpu_program5_mem_extended,
    GL_NV_gpu_program_fp64, GL_NV_gpu_shader5, GL_NV_half_float,
    GL_NV_internalformat_sample_query, GL_NV_light_max_exponent,
    GL_NV_multisample_coverage, GL_NV_multisample_filter_hint,
    GL_NV_occlusion_query, GL_NV_packed_depth_stencil,
    GL_NV_parameter_buffer_object, GL_NV_parameter_buffer_object2,
    GL_NV_path_rendering, GL_NV_pixel_data_range, GL_NV_point_sprite,
    GL_NV_primitive_restart, GL_NV_register_combiners,
    GL_NV_register_combiners2, GL_NV_shader_atomic_counters,
    GL_NV_shader_atomic_float, GL_NV_shader_atomic_int64,
    GL_NV_shader_buffer_load, GL_NV_shader_storage_buffer_object,
    GL_NV_shader_thread_group, GL_NV_shader_thread_shuffle,
    GL_NV_texgen_reflection, GL_NV_texture_barrier,
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
    GL_NV_texture_multisample, GL_NV_texture_rectangle, GL_NV_texture_shader,
    GL_NV_texture_shader2, GL_NV_texture_shader3, GL_NV_transform_feedback,
    GL_NV_transform_feedback2, GL_NV_uniform_buffer_unified_memory,
    GL_NV_vdpau_interop, GL_NV_vertex_array_range, GL_NV_vertex_array_range2,
    GL_NV_vertex_attrib_integer_64bit, GL_NV_vertex_buffer_unified_memory,
    GL_NV_vertex_program, GL_NV_vertex_program1_1, GL_NV_vertex_program2,
    GL_NV_vertex_program2_option, GL_NV_vertex_program3, GL_S3_s3tc,
    GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
    GL_SGIX_shadow, GL_SUN_slice_accum

40 GLX Visuals
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x020 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x021 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0b1 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0b2 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0b3 24 tc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0b4 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0b5 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0b6 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0b7 24 tc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0b8 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x0b9 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0ba 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 None
0x0bb 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0bc 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0bd 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0be 24 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0bf 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0c0 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0c1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0c2 24 tc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0c3 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0c4 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0c5 24 dc  0  32  0 r  . .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0c6 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0c7 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0c8 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0c9 24 dc  0  24  0 r  . .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0ca 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0cb 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8 16 16 16 16  0 0 None
0x0cc 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0cd 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8 16 16 16  0  0 0 None
0x0ce 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0cf 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0  0  0  0  0  0  0  0 0 None
0x0d0 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0d1 24 dc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None
0x0d2 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0d3 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0  0  0  0  0  0  0  0 0 None
0x0d4 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x0d5 24 dc  0  24  0 r  y .   8  8  8  0 .  .  0 24  8  0  0  0  0  0 0 None
0x070 32 tc  0  32  0 r  y .   8  8  8  8 .  .  0 24  8  0  0  0  0  0 0 None

311 GLXFBConfigs:
    visual  x   bf lv rg d st  colorbuffer  sr ax dp st accumbuffer  ms  cav
  id dep cl sp  sz l  ci b ro  r  g  b  a F gb bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------------
0x105 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  0 0 None
0x106 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  0 0 None
0x107 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  0 0 None
0x108 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  0 0 None
0x109 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  0 0 None
0x10a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  0 0 None
0x10b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  0 0 None
0x10c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  0 0 None
0x10d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  0 0 None
0x10e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  0 0 None
0x10f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  0 0 None
0x110 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  0 0 None
0x111 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  0 0 None
0x112 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  0 0 None
0x113 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  0 0 None
0x114 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  0 0 None
0x115 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4  0  0 16 16 16 16  0 0 None
0x116 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4  0  0 16 16 16 16  0 0 None
0x117 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4  0  0 16 16 16 16  0 0 None
0x118 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4  0  0 16 16 16 16  0 0 None
0x119 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4  0  0 16 16 16 16  0 0 None
0x11a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4  0  0 16 16 16 16  0 0 None
0x11b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4  0  0 16 16 16 16  0 0 None
0x11c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4  0  0 16 16 16 16  0 0 None
0x11d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x11e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x11f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x120 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x121 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x122 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x123 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x124 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x125 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x126 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x127 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x128 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x129 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x12a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x12b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x12c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x12d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x12e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x12f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x130 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x131 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x132 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x133 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x134 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x135 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x136 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x137 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x138 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x139 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x13a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x13b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x13c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x13d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x13e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x13f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x140 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x141 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x142 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x143 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x144 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x145 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x146 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x147 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x148 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x149 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x14a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x14b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x14c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x14d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x14e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x14f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x150 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x151 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x152 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x153 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x154 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x155 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x156 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x157 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x158 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x159 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x15a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x15b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x15c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x15d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x15e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x15f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x160 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x161 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x162 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x163 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x164 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x165 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x166 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x167 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x168 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x169 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x16a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x16b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x16c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x16d 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x16e 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x16f 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x170 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x171 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x172 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x173 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x174 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x175 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x176 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x177 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x178 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x179 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x17a 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x17b 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x17c 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x17d 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x17e 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x17f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x180 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x181 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x182 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x183 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x184 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x185 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x186 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x187 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x188 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x189 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x18a 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x18b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x18c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x18d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x18e 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x18f 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x190 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x191 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x192 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x193 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x194 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x195 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x196 24 dc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x197 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x198 24 dc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x199 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x19a 24 dc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x19b 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x19c 24 dc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x19d 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  0 0 None
0x19e 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  0 0 None
0x19f 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  0 0 None
0x1a0 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  0 0 None
0x1a1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  0 0 None
0x1a2 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  0 0 None
0x1a3 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  0 0 None
0x1a4 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  0 0 None
0x1a5 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1a6 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4  0  0 16 16 16 16  0 0 None
0x1a7 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1a8 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4  0  0 16 16 16 16  0 0 None
0x1a9 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x1aa 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x1ab 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x1ac 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x1ad 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x1ae 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  2 1 Ncon
0x1af 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x1b0 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  4 1 Ncon
0x1b1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x1b2 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x1b3 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x1b4 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x1b5 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x1b6 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  2 1 Ncon
0x1b7 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x1b8 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  4 1 Ncon
0x1b9 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1ba 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1bb 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1bc 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1bd 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1be 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1bf 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1c0 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1c1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1c2 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1c3 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1c4 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1c5 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1c6 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1c7 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1c8 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1c9 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1ca 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1cb 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1cc 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1cd 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1ce 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1cf 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1d0 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16  8 1 Ncon
0x1d1 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1d2 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1d3 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1d4 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 16 1 Ncon
0x1d5 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1d6 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1d7 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1d8 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1d9 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1da 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1db 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1dc 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16  8 1 Ncon
0x1dd 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1de 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1df 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1e0 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 16 1 Ncon
0x1e1 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x1e2 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x1e3 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x1e4 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  0 16 16 16 16 32 1 Ncon
0x1e5 24 tc  0  24  0 r  y .   8  8  8  0 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x1e6 24 tc  0  32  0 r  y .   8  8  8  8 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x1e7 24 tc  0  24  0 r  . .   8  8  8  0 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x1e8 24 tc  0  32  0 r  . .   8  8  8  8 .  .  4 24  8 16 16 16 16 32 1 Ncon
0x1e9  0 sg  0  16  0 r  y .   5  6  5  0 .  .  4 16  0 16 16 16 16  0 0 None
0x1ea  0 sg  0  16  0 r  . .   5  6  5  0 .  .  4 16  0 16 16 16 16  0 0 None
0x1eb  0 sg  0  16  0 r  y .   5  6  5  0 .  .  4 24  0 16 16 16 16  0 0 None
0x1ec  0 sg  0  16  0 r  . .   5  6  5  0 .  .  4 24  0 16 16 16 16  0 0 None
0x1ed  0 sg  0  16  0 r  y .   5  6  5  0 .  .  4 24  8 16 16 16 16  0 0 None
0x1ee  0 sg  0  16  0 r  . .   5  6  5  0 .  .  4 24  8 16 16 16 16  0 0 None
0x1ef  0 sg  0  16  0 r  y .   5  6  5  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f0  0 sg  0  16  0 r  . .   5  6  5  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f1  0 sg  0   0  0 r  . .   0  0  0  0 .  .  4 16  0 16 16 16 16  0 0 None
0x1f2  0 sg  0   0  0 r  . .   0  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x1f3  0 sg  0   0  0 r  . .   0  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x1f4  0 sg  0  32  0 r  . .  16 16  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f5  0 sg  0  32  0    . .  16 16  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f6  0 sg  0  32  0 r  y .  16 16  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f7  0 sg  0  32  0    y .  16 16  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f8  0 sg  0  32  0 r  . .  32  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1f9  0 sg  0  32  0    . .  32  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1fa  0 sg  0  32  0 r  y .  32  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1fb  0 sg  0  32  0    y .  32  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x1fc  0 sg  0  64  0 r  . .  16 16 16 16 .  .  4  0  0 16 16 16 16  0 0 None
0x1fd  0 sg  0  64  0    . .  16 16 16 16 .  .  4  0  0 16 16 16 16  0 0 None
0x1fe  0 sg  0  64  0 r  y .  16 16 16 16 .  .  4  0  0 16 16 16 16  0 0 None
0x1ff  0 sg  0  64  0    y .  16 16 16 16 .  .  4  0  0 16 16 16 16  0 0 None
0x200  0 sg  0 128  0 r  . .  32 32 32 32 .  .  4  0  0 16 16 16 16  0 0 None
0x201  0 sg  0 128  0    . .  32 32 32 32 .  .  4  0  0 16 16 16 16  0 0 None
0x202  0 sg  0 128  0 r  y .  32 32 32 32 .  .  4  0  0 16 16 16 16  0 0 None
0x203  0 sg  0 128  0    y .  32 32 32 32 .  .  4  0  0 16 16 16 16  0 0 None
0x204  0 sg  0  32  0 r  . .  16 16  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x205  0 sg  0  32  0    . .  16 16  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x206  0 sg  0  32  0 r  y .  16 16  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x207  0 sg  0  32  0    y .  16 16  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x208  0 sg  0  32  0 r  . .  16 16  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x209  0 sg  0  32  0    . .  16 16  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x20a  0 sg  0  32  0 r  y .  16 16  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x20b  0 sg  0  32  0    y .  16 16  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x20c  0 sg  0  32  0 r  . .  32  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x20d  0 sg  0  32  0    . .  32  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x20e  0 sg  0  32  0 r  y .  32  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x20f  0 sg  0  32  0    y .  32  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x210  0 sg  0  32  0 r  . .  32  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x211  0 sg  0  32  0    . .  32  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x212  0 sg  0  32  0 r  y .  32  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x213  0 sg  0  32  0    y .  32  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x214  0 sg  0  64  0 r  . .  16 16 16 16 .  .  4 24  0 16 16 16 16  0 0 None
0x215  0 sg  0  64  0    . .  16 16 16 16 .  .  4 24  0 16 16 16 16  0 0 None
0x216  0 sg  0  64  0 r  y .  16 16 16 16 .  .  4 24  0 16 16 16 16  0 0 None
0x217  0 sg  0  64  0    y .  16 16 16 16 .  .  4 24  0 16 16 16 16  0 0 None
0x218  0 sg  0  64  0 r  . .  16 16 16 16 .  .  4 24  8 16 16 16 16  0 0 None
0x219  0 sg  0  64  0    . .  16 16 16 16 .  .  4 24  8 16 16 16 16  0 0 None
0x21a  0 sg  0  64  0 r  y .  16 16 16 16 .  .  4 24  8 16 16 16 16  0 0 None
0x21b  0 sg  0  64  0    y .  16 16 16 16 .  .  4 24  8 16 16 16 16  0 0 None
0x21c  0 sg  0 128  0 r  . .  32 32 32 32 .  .  4 24  0 16 16 16 16  0 0 None
0x21d  0 sg  0 128  0    . .  32 32 32 32 .  .  4 24  0 16 16 16 16  0 0 None
0x21e  0 sg  0 128  0 r  y .  32 32 32 32 .  .  4 24  0 16 16 16 16  0 0 None
0x21f  0 sg  0 128  0    y .  32 32 32 32 .  .  4 24  0 16 16 16 16  0 0 None
0x220  0 sg  0 128  0 r  . .  32 32 32 32 .  .  4 24  8 16 16 16 16  0 0 None
0x221  0 sg  0 128  0    . .  32 32 32 32 .  .  4 24  8 16 16 16 16  0 0 None
0x222  0 sg  0 128  0 r  y .  32 32 32 32 .  .  4 24  8 16 16 16 16  0 0 None
0x223  0 sg  0 128  0    y .  32 32 32 32 .  .  4 24  8 16 16 16 16  0 0 None
0x224  0 sg  0  16  0 r  . .  16  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x225  0 sg  0  16  0    . .  16  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x226  0 sg  0  16  0 r  y .  16  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x227  0 sg  0  16  0    y .  16  0  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x228  0 sg  0  64  0 r  . .  32 32  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x229  0 sg  0  64  0    . .  32 32  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x22a  0 sg  0  64  0 r  y .  32 32  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x22b  0 sg  0  64  0    y .  32 32  0  0 .  .  4  0  0 16 16 16 16  0 0 None
0x22c  0 sg  0  16  0 r  . .  16  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x22d  0 sg  0  16  0    . .  16  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x22e  0 sg  0  16  0 r  y .  16  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x22f  0 sg  0  16  0    y .  16  0  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x230  0 sg  0  16  0 r  . .  16  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x231  0 sg  0  16  0    . .  16  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x232  0 sg  0  16  0 r  y .  16  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x233  0 sg  0  16  0    y .  16  0  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x234  0 sg  0  64  0 r  . .  32 32  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x235  0 sg  0  64  0    . .  32 32  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x236  0 sg  0  64  0 r  y .  32 32  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x237  0 sg  0  64  0    y .  32 32  0  0 .  .  4 24  0 16 16 16 16  0 0 None
0x238  0 sg  0  64  0 r  . .  32 32  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x239  0 sg  0  64  0    . .  32 32  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x23a  0 sg  0  64  0 r  y .  32 32  0  0 .  .  4 24  8 16 16 16 16  0 0 None
0x23b  0 sg  0  64  0    y .  32 32  0  0 .  .  4 24  8 16 16 16 16  0 0 None

entropy@symplex:~$ primusrun glxgears
281 frames in 5.0 seconds = 56.154 FPS
301 frames in 5.0 seconds = 60.004 FPS
301 frames in 5.0 seconds = 60.008 FPS
301 frames in 5.0 seconds = 60.006 FPS

Works!

You're welcome.


Note:  Black Screen, Xorg not Starting.


If the next time you reboot you get a black screen, or Xorg doesn't start and drops you shell, or the screen is flickering between the console and a black screen, then chances are the gpu-manager has created an /etc/X11/xorg.conf. Just enter the recovery mode in the GRUB menu, and delete (rm) the file.

94 comments:

  1. So, since Ubuntu 12.10, Bumblebee has been depreciated and hasn't been maintained for years -- last update is April 2013. Ubuntu has joined the efforts with NVidia and others to have NVidia-settings and NVidia-prime work smoothly with hybrid graphics. Why would you bother to pick up Bumblebee again now on Ubuntu 16.04?

    ReplyDelete
    Replies
    1. You'll actually find that nvidia-prime, while being official, can only allow you to log-in to an Xorg session with a specified GPU. That means that the GPU you've selected (Intel/NVidia) is active for your entire Xorg session. Furthermore, when you go into the NVidia settings and change your selected GPU from Intel to NVidia (or vice-versa), you need to log out and log back in again for the changed to take effect.

      If you're a laptop user like me, you want to use the low-power Intel GPU most of the time, and the high-power NVidia GPU only for games. This is what primus allows you to do. All of my steam games execute with the command-string 'primusrun %command%', so I'll only ever use the NVidia GPU for a single instance of Xorg (usually bumblebee allocates DISPLAY as 8 for these), ie. the one playing the game, while the rest of my desktop uses the Intel card. When I exit the game, the second Xorg instance shuts down and the power-hungry GPU is no longer being used, without me having to log out to switch.

      Optimus was made for power-saving, and the inconvenience of logging out and back in to switch GPUs irritates me. I think that bumblebee is actually much closer to how Optimus was meant to be used than nvidia-prime.

      Delete
    2. I think you don't know what you are saying, bumblebee is still under development, they just didn't commit anything, per see: https://github.com/Bumblebee-Project/Bumblebee/issues/772. Bumblebee 4.0 milestone has been launched by the way, just have a look at it ;)

      Delete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Does it work with Unity also?

    ReplyDelete
    Replies
    1. While I have not tested this on Unity per-se, there is nothing in these instructions that is specific to lightdm or XFCE. All of the changes involve bumblebee, nvidia-drivers or some underlying element of Ubuntu in general. There is no reason why these instructions should not work for Unity. Again: I haven't tried, but with a high degree of certainty I would say that: yes, it should work.

      Delete
    2. Yes, it works! Although you will have to enter recovery mode after the first reboot because there will be a login loop. I couldn't ctrl-alt f1 to a tty... After continuing the steps it worked for me.

      Delete
    3. Thank you for verifying, vellaking.

      Delete
  4. Hello Entropy,
    I tried this on a ASUS UX303UB (intel + NVidia 940M), and went in login loop. I Tried the 364 drivers and got a notice that the driver was running in low resolution mode, so i was stuck onto 304 drivers.
    Any idea?

    ReplyDelete
    Replies
    1. The login-loop is usually caused by the gpu-manager. Check that there isn't a /etc/X11/xorg.conf. If there is one, delete it. Xorg should be automatically taking your Intel card as the default output-provider.

      When you say "low resolution mode", do you mean your actual desktop, or programs run with primus/optirun?

      If you could provide the Xorg.0.log and the output of "optirun -vv glxgears", I might be able to tell you more.

      Delete
    2. Also, 304 drivers work, but 361 and 364 don't, is that correct?

      Delete
    3. The 304 Driver actually works, but can't anyway enable the 3d chip.
      The 361 falls on login loop.
      The 364 boots with a black screen and a Dialog box stating that the screen is in low resolution and asks some options. Any options ends in loop.
      I can confirm that there are no /etc/X11/xorg.conf

      The lspci:
      00:02.0 VGA compatible controller: Intel Corporation Sky Lake Integrated Graphics (rev 07)
      01:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 940M] (rev ff)

      Thank you very much

      Delete
    4. Could you please paste your /var/log/Xorg.0.log and /var/log/Xorg.8.log ?

      Delete
    5. Should I re-install the 361 drivers?
      With the current drivers seems that the nouveau is loaded.
      The Xorg logs are too large to be posted, here is the output of optirun -vv glxgears

      My User is actually in the bumblebee group.

      [15063.299004] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
      [15063.299650] [INFO]Configured driver: nouveau
      [15063.299995] [DEBUG]optirun version 3.2.1 starting...
      [15063.300092] [DEBUG]Active configuration:
      [15063.300111] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
      [15063.300132] [DEBUG] X display: :8
      [15063.300152] [DEBUG] LD_LIBRARY_PATH:
      [15063.300174] [DEBUG] Socket path: /var/run/bumblebee.socket
      [15063.300200] [DEBUG] Accel/display bridge: auto
      [15063.300219] [DEBUG] VGL Compression: proxy
      [15063.300241] [DEBUG] VGLrun extra options:
      [15063.300259] [DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
      [15063.301027] [DEBUG]Using auto-detected bridge primus
      [15063.486079] [INFO]Response: No - error: Could not load GPU driver

      [15063.486093] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

      [15063.486097] [DEBUG]Socket closed.
      [15063.486110] [ERROR]Aborting because fallback start is disabled.
      [15063.486113] [DEBUG]Killing all remaining processes.

      Delete
    6. I already tried the insecure mode boot and Xauthority permissions

      Delete
    7. OK, I'm dumb and erroneously skipped the nogpumanager section.
      Just a reminder, the xorg.conf that is created by the GPUmanager must be deleted or moved

      Delete
    8. Update:
      After reinstalling nvidia-364 and managing to log in correctly, the status is:
      3d Card status at boot
      $cat /proc/acpi/bbswitch
      0000:01:00.0 ON
      Trying to turn it off
      $sudo tee /proc/acpi/bbswitch <<<OFF
      OFF
      $dmesg | tail -1
      [ 182.754994] bbswitch: device 0000:01:00.0 is in use by driver 'nvidia', refusing OFF

      Tried any blacklisting in order to avoid loading of nvidia modules at startup but no success. Unloading modules manually manages to turn the card OFF.

      $ optirun -vv glxinfo
      [ 340.929229] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
      [ 340.929858] [INFO]Configured driver: nvidia
      [ 340.930184] [DEBUG]optirun version 3.2.1 starting...
      [ 340.930214] [DEBUG]Active configuration:
      [ 340.930229] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
      [ 340.930314] [DEBUG] X display: :8
      [ 340.930344] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia-364:/usr/lib32/nvidia-364
      [ 340.930375] [DEBUG] Socket path: /var/run/bumblebee.socket
      [ 340.930399] [DEBUG] Accel/display bridge: auto
      [ 340.930416] [DEBUG] VGL Compression: proxy
      [ 340.930433] [DEBUG] VGLrun extra options:
      [ 340.930452] [DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
      [ 340.930749] [DEBUG]Using auto-detected bridge primus
      [ 340.945477] [INFO]Response: No - error: [XORG] (EE)

      [ 340.945549] [ERROR]Cannot access secondary GPU - error: [XORG] (EE)

      [ 340.945575] [DEBUG]Socket closed.
      [ 340.945627] [ERROR]Aborting because fallback start is disabled.
      [ 340.945643] [DEBUG]Killing all remaining processes.

      the log of /var/log/Xorg.8.log is:
      [ 10207.501] (EE) modeset(0): drmSetMaster failed: Invalid argument
      [ 10207.501] (EE)
      Fatal server error:
      [ 10207.501] (EE) AddScreen/ScreenInit failed for driver 0
      [ 10207.501] (EE)
      [ 10207.501] (EE)
      Please consult the The X.Org Foundation support
      at http://wiki.x.org
      for help.
      [ 10207.501] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
      [ 10207.501] (EE)
      [ 10207.501] (EE) Server terminated with error (1). Closing log file.

      Thank you very much

      Delete
    9. A few things to check ...

      1. You've been toying around with some drivers, and some packages have weird dependencies. Make sure that 'xserver-xorg-legacy' and 'xserver-xorg-video-nouveau' are *not* installed on your system.
      2. You're actually getting a mode-set/modeline error, which kind of tells me that the driver is not working somehow.
      3. Install nvidia-361, reboot, then dpkg-reconfigure nvidia-361 and bbswitch-dkms, then reboot again. Try that.
      4. If that doesn't work, I'd like to see your /etc/bumblebee/bumblebee.conf and your /etc/modprobe.d/bumblebee.conf.

      Delete
    10. Indeed the legacy server was still installed. Now the system is almost working, at least i can get the NVIDIA card enabled via optirun. Sometimes. No success in turning it off, anyway. The 364 drivers are unstable to the edge to bu unusables, with frequent random system freezes. I'll try to downgrade to 361 as i can get the system in maintenance again.

      Delete
    11. Cool, let me know of the results.

      Delete
    12. Dear Entropy,
      the installation of 361 drivers looks to have solved the issues. Now the 3d accelarator is turned on and off correctly, now i'll run an extensive stability check and a performance test (Skyrim should do the Trick)
      Thanks a lot.

      Delete
    13. Update:
      the stability issues are still present. After suspend and resume the machine freezes completely after short time (less than a minute), and optirun stops to work as for Fan Yang post. The workaround is not working, and stops to turn the discrete card off. I'm wondering why in hell i bought a machine with nvidia graphic card, it is known from years that that cards are a nightemare in Linux :(

      Delete
    14. So Fan Yang's solution (below) does not work for you?

      Delete
    15. Hello Entropy.
      No the Fan Yang's solution did not work. But i figured out thet the main problem for stability issues is related to the connection of the external display. My laptop has a MidiDisplayport AND and HDMI port, besides of the main screen. I work on this.

      Delete
    16. Further updates: Stability issues are related to the intel card rather than the NVidia. The complete system freeze occours at the connection of the external display.
      Now it looks working. The procedure is:
      1) update the kernel to the 4.4.8 version. Here you can find the instructions: http://linuxdaddy.com/blog/install-kernel-4-4-on-ubuntu/
      2) reboot
      3) sudo dpkg-reconfigure bbswitch-dkms
      4) sudo dpkg-reconfigure nvidia-361
      5) Reboot

      Still open:
      - unable to turn the 3d accelarated card on after suspend
      - turn off the 3d card
      I'll let you know

      Delete
  5. Thank you so much, sir!! Thats work in Ubuntu 16.04 on my ASUS X455LF..
    Thanks again ^_^

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete
  7. Same T440p with 730M on Ubuntu 16.04.
    After suspend/resume, cannot use NVIDIA card any more; have to reboot...

    "optirun -vv" says:
    Cannot access secondary GPU - error: Could not load GPU driver

    ReplyDelete
    Replies
    1. It seems to be fixed after I comment out last line in /etc/modprobe.d/bumblebee.conf:
      #remove nvidia rmmod nvidia-uvm nvidia

      nvidia_361 does not load nvidia_361_uvm

      Delete
    2. Okay, awesome. I will verify this fix and will amend the instructions if I reproduce the same results. Thank you, Fan.

      Delete
  8. You, Sir, are awesome! Thanks for the great help!

    ReplyDelete
  9. Help me please
    Everything worked fine but when I go to the terminal
    and I typed:
    $ optirun gxlinfo
    says:
    [ 665.454004] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

    [ 665.454073] [ERROR]Aborting because fallback start is disabled.

    ReplyDelete
    Replies
    1. Remove the 'xserver-xorg-legacy' package. I believe you might have it installed.

      Delete
    2. I have the exact same problem after I resume from suspend. I don't have the xserver-xorg-legacy package installed.

      Delete
    3. The exact same problem. Failed to load module "mouse". Even I don't have xserver-xorg-legacy package installed. Kernel version is 4.4.0-31-generic, bumblebee: 3.2.1-10, bumblebee-nvidia: 3.2.1-10 and nvidia-361. Don't know what is causing this issue. optirun won't run at all because of the "mouse" module issue. The bumblebee.conf and xorg.conf.nvidia are exactly the same as yours

      Delete
    4. I think I've came across something where "cat /proc/acpi/bbswitch" still shows on even after manually trying to turn it off by "sudo tee /proc/acpi/bbswitch <<< OFF".


      I have found a way to turn it off by doing the following:

      sudo -i

      rmmod nvidia_drm && rmmod nvidia_uvm && rmmod nvidia_modeset && rmmod nvidia && sudo tee /proc/acpi/bbswitch <<< OFF

      exit

      That at least sets bbswitch off which I think is part of the issue.

      I'm using nvidia-367 at the moment with Linux 4.6.xx

      I'll keep looking into it.

      Delete
  10. This comment has been removed by the author.

    ReplyDelete
  11. Thank you, bookmarking for the future, never did a so easy installation of the bumblebee with the newest drivers, actually, this 361 was problematic here, I guess I wasn't blacklisting it. But I didn't uninstall nouveau :v

    Have a great weekend.

    ReplyDelete
  12. Hi, I've navigated a lot through the web and finally got here.
    Thanks for the instructions, they've been very helpful. However I'm still having some issues.

    At first, i followed step by step every instruction but i got stuck in the login loop, so i removed all nvidia drivers and get to logging again.

    Then I tried with older drivers (nvidia-304). I didn't have the login loop problem anymore, but bumblebeed and bbswitch weren't starting. So I realised the problem was secure boot (systemctl status -l bumblebeed). I managed to get them work with some tutorial made for virtualbox

    https://forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15

    but then optirun -vv -debug glxgears it returned

    [INFO]Response: No - error: [XORG] (EE)
    [ERROR]Cannot access secondary GPU - error: [XORG] (EE)

    So I gave up and disable secure boot and started with this instructions once more. Now I can login but optirun -vv -debug glxgears gives

    [ 933.833821] [INFO]Response: No - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

    [ 933.833850] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

    [ 933.833859] [DEBUG]Socket closed.

    Any idea what this is?



    http://rajat-osgyan.blogspot.com.ar/2016/04/how-to-install-latest-nvidia-drivers-on.html
    http://askubuntu.com/questions/749557/nvidia-with-bumblebee-installation-for-16-04
    http://askubuntu.com/questions/758972/does-ubuntu-16-04-support-hybrid-grafics-cards-bumblebee

    ReplyDelete
    Replies
    1. You may be having the same issues as the gentleman before you. See if you haven't got the 'xserver-xorg-legacy' package installed. If you do, remove it. Let me know if it persists.

      Delete
    2. Thank's for your fast reply, but unfortunately that's not the problem.

      alejandro@alejandro-IdeaPad-U410:~$ sudo apt-get purge xserver-xorg-legacy
      [sudo] password for alejandro:
      Reading package lists... Done
      Building dependency tree
      Reading state information... Done
      Package 'xserver-xorg-legacy' is not installed, so not removed
      0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
      alejandro@alejandro-IdeaPad-U410:~$ optirun -vv -debug glxgears
      [ 48.341681] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
      [ 48.341855] [INFO]Configured driver: nvidia
      [ 48.341937] [DEBUG]optirun version 3.2.1 starting...
      [ 48.341944] [DEBUG]Active configuration:
      [ 48.341952] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
      [ 48.341961] [DEBUG] X display: ebug
      [ 48.341969] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia-361:/usr/lib32/nvidia-361
      [ 48.341977] [DEBUG] Socket path: /var/run/bumblebee.socket
      [ 48.341983] [DEBUG] Accel/display bridge: auto
      [ 48.341988] [DEBUG] VGL Compression: proxy
      [ 48.341996] [DEBUG] VGLrun extra options:
      [ 48.342002] [DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
      [ 48.342045] [DEBUG]Using auto-detected bridge primus
      [ 48.483896] [INFO]Response: No - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

      [ 48.483915] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)

      [ 48.483921] [DEBUG]Socket closed.
      [ 48.483938] [ERROR]Aborting because fallback start is disabled.
      [ 48.483943] [DEBUG]Killing all remaining processes.

      Delete
    3. No other drivers are installed? Only 361?
      Are you sure your alternatives are pointing to mesa?

      Delete
  13. Tip for anyone that found bbswitch wasn't loading for them:

    Disable Secure Boot

    I had this problem on an XPS 15 (on Ubuntu 16.04), and after disabling Secure Boot following the instructions in the blog post worked like a charm.

    Thanks!

    ReplyDelete
  14. This is brilliant. Thank you so much!

    ReplyDelete
  15. Thank you thank you thank you thank you

    ReplyDelete
  16. Hey thank you so much ! I spent an whole day trying to understand this whole dual gpu- ubuntu thing ! To be honest I still don't exactly understand why you did certain things that you did... but it seems to work perfectly, In a nutshell, the process is more like - 1. Remove nouveau 2. Install nvidia with bumblebee 3. Go to the conf files and make it to point to our drivers and not the nvidia-current... and what else does ur steps do after that? please explain... and thanks once again for this blog... i cannot stress how much you ve helped.

    ReplyDelete
  17. Can I make NVIDIA default in alternatives by selecting the prime instead of going for intel? please let me know how to make GL run on Nvidia by default (if that is even possible)

    ReplyDelete
  18. Thank you, kind sir, for saving me from many tears of frustration! Works like a charm after additionaly removing 'xserver-xorg-legacy'.

    ReplyDelete
  19. Hi,
    If I switch to my discrete card with:
    "sudo prime-select nvidia"
    and I run:/opt/VirtualGL/bin/glxspheres64
    then I get around 2360 Mpixels/sec

    Now, if I switch back to intel (sudo prime-select intel)
    And I run:
    vblank_mode=0 primusrun /opt/VirtualGL/bin/glxspheres64
    I only get around 213 Mpixel/sec.

    Is it normal or there is something wrong? Can you help me?

    MY system is a laptop DELL 7559
    Intel® Core™ i5-6300HQ
    NVIDIA GeForce GTX 960M / Intel® HD Graphics 530

    Thank you!


    ReplyDelete
    Replies
    1. Prime is not the same as bumblebee's primusrun. They're very different ways of using Optimus. I know very little about Prime. Unfortunately I don't know enough to help out.

      Delete
  20. Hello, I followed the steps you posted here, and it didn't work, I keep receiving this error message:
    [code]
    carlos@carlos-portatil:~$ optirun glxinfo
    [ 123.178404] [ERROR]Cannot access secondary GPU - error: [XORG] (EE)

    [ 123.178486] [ERROR]Aborting because fallback start is disabled.
    [/code]

    I don't know what else to do, I was wondering if maybe I need to update the intel HD graphics driver or installing and updating from the X/Swat repositories.

    My system is a Dell Inspiron, intel core i7-2630QM, 8GB RAM DDR3, graphics intel HD and nVidia GeForce GT525M

    ReplyDelete
    Replies
    1. Good afternoon, I would like to post an update:
      I followed instructions from another tutorials, added this steps to your tutorial:

      -Added http://ppa.launchpad.net/ubuntu-x-swat/x-updates/ubuntu to my repositories list

      $sudo apt-get update && upgrade && dist-upgrade

      $sudo gpasswd -a $USERNAME bumblebee

      $sudo gedit /etc/modules
      Adding the lines:
      i915
      bbswitch

      Reboot and after that I tried $optirun GLXInfo and got:
      ..............
      name of display: :0.0
      display: :0 screen: 0
      direct rendering: Yes
      server glx vendor string: NVIDIA Corporation
      server glx version string: 1.4
      ................

      Finally, Optirun is working.

      But.... this is a bittersweet ending, looks the graphics are not working smoothly, when I use the shortcuts to set the brightness of the LCD screen, the screen blinks. And when playing a game (GZDoom I compiled for Xubuntu 16.04) the graphics are sluggish, the engine uses 2D sprites and 3D models and when it shows a 3D model the FPS drop to 5 frames per second.

      I just don't know what else to do... I will thank you if you may give me some advice

      Delete
  21. Thank you so so so much! Your guide works for nvidia 635m with intel hd 4000 setup. After i had nvidia working vith optirun, I installed ubuntu gnome desktop environment with gdm, so now i get can't access secondary gpu error. Tried everything unitil i found this: https://fedoraproject.org/wiki/Bumblebee
    Seems like gdm might be the problem not only on fedora since bumblebee worked for me on lightdm and not with gdm. They suggest using lightdm or kde. So, try other desktop managers if you get the error :)

    ReplyDelete
  22. Hello Entropy, I have Ubuntu Gnome 16.04 on a Toshiba Satellite C-70 with Nvidia 710m. I followed all your instructions until the first reboot at which the system would enter a login loop (gdm would crash and then try to restart each 5 seconds aprox. and I had to kill it from the command line).
    Did a clean reinstall, redone all the steps but with the nvidia-352 driver this time. Same result.
    Did all that stuff again, but with the nvidia-340 and it finally worked. Finished all the steps, but when trying to run optirun glxinfo I would get:
    [ 77.023377] [ERROR]Cannot access secondary GPU - error: [XORG] (EE)

    [ 77.023432] [ERROR]Aborting because fallback start is disabled.

    I then tried running Xorg from command line and got this:
    /usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
    At this point I had the idea of deleting /usr/lib/xorg/Xorg.wrap and it worked!

    Also, I have a question: what does switching to nvidia-340 from the additional drivers settings do? I mean, we didn't even mess with that stuff and it still works.

    Thank you very much,
    Adrian

    Note: at step 6 shouldn't nvidia_361 be nvidia-361?

    ReplyDelete
    Replies
    1. Try to dpkg-reconfigure all of the packages. Sometimes you need to have everything installed for all of the hooks to catch up.

      No, one of them has an underscore. You can have a look at the module name. It has an underscore in it. Have a look at the .ko files in /lib/modules

      Delete
  23. Dear Entropy,

    Thx for your explanations. It worked for me. However, one thing is confusing me.

    If I run simply glxgears I get;
    zboraon@Boreas:~$ glxgears
    Running synchronized to the vertical refresh. The framerate should be
    approximately the same as the monitor refresh rate.
    298 frames in 5.0 seconds = 59.528 FPS
    300 frames in 5.0 seconds = 60.000 FPS
    301 frames in 5.0 seconds = 60.000 FPS

    On the other hand, if I run optirun (or primusrun) glxgears I get;

    zboraon@Boreas:~$ optirun glxgears
    294 frames in 5.0 seconds = 58.753 FPS
    300 frames in 5.0 seconds = 59.998 FPS
    300 frames in 5.0 seconds = 59.999 FPS

    Shouldn't in the latter example frame number be larger?

    Bora

    ReplyDelete
    Replies
    1. Your system probably has V-Sync on and your monitor is running at 60Hz.

      Delete
    2. However, the photo that you have attached at the end of the whole explanation shows that, whenever you run primusrun glxgears, you almost get the same results, around 60 FPS. Therefore I conclude that, this method does not work.
      But this solution (it is in Turkish) works well, for those who are interested:

      https://forum.linuxmint.net.tr/index.php?topic=6258.0

      Delete
  24. Thanks for this. Very clear and appears to work. A comment and a question:

    1) For those who don't want to disable secureboot, there are a couple extra steps. First you need to create your own Machine Owner Key and enroll it in the bios (see first answer here: http://askubuntu.com/questions/760671/could-not-load-vboxdrv-after-upgrade-to-ubuntu-16-04-and-i-want-to-keep-secur). Next you need to sign at least bbswitch and nvidia_361 with

    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n bbswitch)
    sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n nvidia_361)

    I'm not really sure if nvidia_361_uvm.ko and nvidia_361_modeswitch.ko, need to be/can be signed. Using the same steps as above but removing the ".ko" appears to work, but I still can't load these modules.

    Question: For some reason (potentially that they aren't signed correctly), optirun can't load nvidia_361_uvm and nvidia_361_modeswitch.

    kernel: [ 24.612993] bbswitch: enabling discrete graphics
    kernel: [ 24.848056] nvidia: module license 'NVIDIA' taints kernel.
    kernel: [ 24.848058] Disabling lock debugging due to kernel taint
    systemd-udevd[4194]: Process '/usr/bin/start-nvidia-persistenced' failed with exit code 127.
    kernel: [ 24.854924] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=none
    kernel: [ 24.855004] nvidia-nvlink: Nvlink Core is being initialized, major device number 243
    kernel: [ 24.855165] [drm] Initialized nvidia-drm 0.0.0 20150116 for 0000:01:00.0 on minor 1
    kernel: [ 24.855168] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 361.42 Tue Mar 22 18:10:58 PDT 2016
    systemd-udevd[4194]: Process '/sbin/modprobe nvidia-modeset' failed with exit code 1.
    systemd-udevd[4194]: Process '/sbin/modprobe nvidia-uvm' failed with exit code 1.
    systemd-udevd[4210]: failed to execute '/usr/bin/nvidia-smi' '/usr/bin/nvidia-smi': No such file or directory
    systemd-udevd[4194]: Process '/usr/bin/nvidia-smi' failed with exit code 2.
    systemd-udevd[4216]: Process '/usr/bin/start-nvidia-persistenced' failed with exit code 127.
    kernel: [ 24.885391] ACPI Warning: \_SB_.PCI0.PEG0.PEGP._DSM: Argument #4 type mismatch - Found [Buffer], ACPI requires [Package] (20150930/nsarguments-95)

    Any ideas regarding this? Is it because the modules are unsigned or something else? I notice it's trying to load nvidia_uvm rather than nvidia_361_uvm and so on. Is that a bug or are they linked somewhere? Also should I be signing nvidia_uvm instead of nvidia_361_uvm and so on?

    Thanks in advance for any advice you can offer.

    ReplyDelete
    Replies
    1. Can't help you, unfortunately. I know little about secure-boot. I've turned off UEFI on my machine. If you find the solution, please share your findings.

      Delete
  25. Thanks a lot for this help !
    I want to say that I have to run "depmod" after dpkg-reconfigure ... as I was having a message:
    modprobe: FATAL: Module nvidia-modeset not found in directory /lib/modules/4.4.0-31-generic

    ReplyDelete
    Replies
    1. This sounds like the aliases in /etc/modprobe.d aren't set. Are they?

      Delete
  26. I love you, man or woman. I was struggling for two days with my fresh Linux Mint 18 install on my Lenovo Ideapad Z570 (which has Optimus and a GeForce GT 540M), and although I managed to make it work with a nvidia-340 driver, it wasn't ideal and optimus was giving me the "couldn't find device" error. After purging xserver-xorg-legacy nvidia* bumblebee* and following your guide everything works perfectly. Well, I had an error about not finding mouse module, but adding the Screen section to /etc/bumblebee/xorg.conf.nvidia solved it. Also solved Cinnamon 3 crashing with nvidia-361 driver.

    For people with the same problem, append this to /etc/bumblebee/xorg.conf.nvidia :
    Section "Screen"
    Identifier "Default Screen"
    Device "DiscreteNvidia"
    EndSection

    ReplyDelete
  27. You said: "Just enter the recovery mode in the GRUB menu"

    You can use the virtual consoles (Ctrl+Alt+F1 through F6) to get a login. This will save a bit of time over rebooting, especially if your machine has a slow POST.

    To test xorg without rebooting, you can also try: systemctl restart lightdm

    ReplyDelete
  28. Wow! I got Optirun + Steam to work on my ASUS ZenBook UX303LN. I tried to that since July 2015! Thanks!
    Btw. it was important to remove xserver-xorg-legacy. The rest according to the guide (Ubuntu 16.04, Kernel 4.4.0-31-generic)

    ReplyDelete
  29. Thank you so much. That works great.
    I was wondering if there are any optimizations available to that my laptop battery could last longer on default graphics.

    Thanks

    ReplyDelete
  30. I have the same computer as you, so first, congrats: you've got a very good taste :)

    Thanks a lot for your post, but I still can't make it work. I have crappy perfs, I still can't play or use a second screen. Thanks to you, I was able to connect to my computer using the nvidia-361 driver. But `sudo lshw -c video` still returns a weird

    *-display
    description: VGA compatible controller
    product: GK208M [GeForce GT 730M]
    vendor: NVIDIA Corporation
    physical id: 0
    bus info: pci@0000:02:00.0
    version: a1
    width: 64 bits
    clock: 33MHz
    capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
    configuration: driver=nvidia latency=0
    resources: irq:17 memory:f0000000-f0ffffff memory:c0000000-cfffffff memory:d0000000-d1ffffff ioport:3000(size=128) memory:f1000000-f107ffff
    *-display UNCLAIMED
    description: VGA compatible controller
    product: 4th Gen Core Processor Integrated Graphics Controller
    vendor: Intel Corporation
    physical id: 2
    bus info: pci@0000:00:02.0
    version: 06
    width: 64 bits
    clock: 33MHz
    capabilities: msi pm vga_controller bus_master cap_list
    configuration: latency=0
    resources: memory:f1400000-f17fffff memory:e0000000-efffffff ioport:4000(size=64)

    And it looks like my intel GPU is simply not working.

    Any thoughts?

    ReplyDelete
  31. Hi - I am a little confused here - but forgive me if I'm just missing something.

    Like Bora Ön, I don't understand why, when you run "primusrun glxgears" you are still only seeing 60FPS. When I enable native nvidia X logon via nvidia-settings on my Dell5510 I see glxgears (ie not running through bumblebee) run at ~10KFPS.

    Wouldn't I expect that rate through primusrun with the bridge through to nvidia. Like you I get ~60FPS when running with primusrun.

    Thx

    ReplyDelete
  32. Hello. I follow all the steps but now I have a black screen and I could only use grub. My ubuntu 16.04 has a previous problem, it only boot when nvidia card was on and I couldn't change to intel card bevause it doesn't shut down. I thought bumblebee could help me to switch off nvidia card and consume less energy.
    Maybe I could solve everything only booting ubuntu with nvidia car on. Could someone help me?

    ReplyDelete
  33. Thank you very much for your instructions.They worked.

    ReplyDelete
  34. This comment has been removed by the author.

    ReplyDelete
  35. Hey! Thanks a lot for this. Btw why there's a need to blacklist nvidia-361 in bumblebee.conf? I understand it causes black screen but doesn't bumblebee use Nvidia-361 for running the card? Then why blacklisting?

    Also I've installed Nvidia drivers through .run file (and not through apt-get since i need cuda as well which again i'm installing through .run). So what should i mention in the blacklist file there? Also why install bumblebee-nvidia if installing nvidia-361 separately? It would be great if you could help me out with these since i'm wandering around on the net for days for some things to work but not getting any solution. Posted some issues on devtalk.nvidia.com as well but no solution from there as well. So now just the solutions to the above would end my chase for this i guess.

    ReplyDelete
  36. I have installed nvidia-370 according to the instruction above on Lenovo U410 (Mint 18).

    One more step was needed for everything to work correctly. In the /etc/modprobe.d/bumblebee.conf add nvidia_drm and nvidia_modeset to the last line, so it looks like:

    remove nvidia rmmod nvidia-uvm nvidia_drm nvidia_modeset nvidia

    Otherwise nvidia_drm, nvidia_modeset and nvidia modules will be loaded and this will turn on nvidia card. You can check the configuration with the following:

    lsmod | grep nvidia => there should be no output

    cat /proc/acpi/bbswitch => the output should contain OFF

    ReplyDelete
    Replies
    1. It seems that there's a misspelling in the default bumblebee.comf. nvidia-uvm should be nvidia_uvm.

      Delete
    2. Had the same issue of GPU always ON. Extending the workaround as you suggest works for me as well, thank you.

      Delete
    3. MY GOD you're a genius! Working perfectly here with nvidia-378.

      Delete
  37. It also worked on my DELL Inspiron 15 with NVIDIA GeForce 840M
    Thank you very much...

    ReplyDelete
  38. As discussed above, this doesn't work. The driver reports itself as 3D and this isn't recognised. You can try this to see if the driver is loaded correctly.

    You can test by running directly in nvidia driver mode and you get several thousand frames a second, because LCD doesn't use a refresh rate like CRT monitors did.

    You can see my bug here with Ubuntu
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1494236

    $ dmesg | grep vgaar
    [ 0.424792] vgaarb: setting as boot device: PCI:0000:00:02.0
    [ 0.424794] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
    [ 0.424797] vgaarb: loaded
    [ 0.424798] vgaarb: bridge control possible 0000:00:02.0
    [ 1.663615] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem
    [ 40.638814] vgaarb: this pci device is not a vga device
    [ 41.071339] vgaarb: this pci device is not a vga device
    [ 89.425375] vgaarb: this pci device is not a vga device
    [ 89.854919] vgaarb: this pci device is not a vga device

    ReplyDelete
    Replies
    1. $ lspci -nn | fgrep NV
      02:00.0 3D controller [0302]: NVIDIA Corporation GK107M [GeForce GT 750M] [10de:0fe4] (rev ff)

      Delete
  39. Hey,
    Thank you so much for this. The hybrid graphics thing was the only thing bothering me on linux, but now it's fixed!!
    Also some handy commands to view GPU status:
    glxinfo|egrep "OpenGL vendor|OpenGL renderer" // View what GPU is currently used.

    cat /proc/acpi/bbswitch // view if discrete GPU is turned on.

    ReplyDelete
  40. Thanks a lot Entropy!

    Following ***exactly all the instructions*** it worked for me like a charm!! (Ubuntu 16.04.1 LTS x86_64)

    Best!

    ReplyDelete
  41. It took me a long time to find this post, but you seem to be the only one who has figured out this whole fiasco. Your instructions have been the only thing that works for me. I just wanted to say - Thanks a bunch!

    ReplyDelete
  42. Hi Entropy!
    I followed your instructions thoroughly but when I come to do optirun glxinfo this is what I get:

    ~ $ optirun glxinfo
    [ 2679.000240] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].

    [ 2679.000328] [ERROR]Aborting because fallback start is disabled.

    I surfed all webs but to no avail. Do you happen to know what is going on here?

    Thanks a lot

    ReplyDelete
    Replies
    1. Hi all,
      Did it myself. It was all about rigging with xorg.conf.nvidia:

      Section "ServerLayout"
      Identifier "Layout0"
      Option "AutoAddDevices" "false"
      Option "AutoAddGPU" "false"
      Screen 0 "screen1"
      EndSection

      Section "Device"
      Identifier "DiscreteNvidia"
      Driver "nvidia"
      VendorName "NVIDIA Corporation"

      # If the X server does not automatically detect your VGA device,
      # you can manually set it here.
      # To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
      # as you see in the commented example.
      # This Setting may be needed in some platforms with more than one
      # nvidia card, which may confuse the proprietary driver (e.g.,
      # trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
      BusID "PCI:01:00:0"

      # Setting ProbeAllGpus to false prevents the new proprietary driver
      # instance spawned to try to control the integrated graphics card,
      # which is already being managed outside bumblebee.
      # This option doesn't hurt and it is required on platforms running
      # more than one nvidia graphics card with the proprietary driver.
      # (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
      # If this option is not set, the new Xorg may blacken the screen and
      # render it unusable (unless you have some way to run killall Xorg).
      Option "ProbeAllGpus" "false"

      Option "NoLogo" "true"
      Option "UseEDID" "false"
      Option "UseDisplayDevice" "none"
      Option "TearFree" "true"
      EndSection

      Section "Screen"
      Identifier "screen1"
      Device "DiscreteNvidia"
      Option "AllowEmptyInitialConfiguration" "Yes"
      EndSection

      It worked like a charm
      Good luck!

      Delete
  43. Call a few points in time you require and the tech experts at Lenovo Computer help number UK@800-098-8312 are meant for every time arranged to support you in all such procedural issues and with the purpose of to survive in the undeviating potential time with all trouble-free conduct to get a hold it solved.

    ReplyDelete
  44. Hi! Thanks for your post!
    I did not managed to make my asus n550jk powered by bodhi 4 (based on ubuntu 16.04) to make use of its 850m using the above instructions. However I was inspired enough by them to try more :)
    It turned out that solution was trivial:
    sudo apt-get install nvidia-361 nvidia-settings nvidia-prime
    sudo reboot
    (got from http://help.ubuntu.ru/wiki/nvidia-prime, in Russian).
    GPU is selected per-session, but this is OK for me.

    ReplyDelete
  45. thank you
    you can also read Why Linux is Free?

    ReplyDelete
  46. I am very impress to read the next few paragraphs. " should read, "This article is quite impressive to me, My partner loves feathers. Now if I can easily just do it along with you do it may help me score some key points with her.
    144hz Gaming Monitor

    ReplyDelete
  47. This worked for me a few months ago. Now (after installing Ubuntu 17), when I install nvidia-361 it automatically installs nvidia-375 and I get into a login-loop. What to do?

    ReplyDelete
    Replies
    1. I returned to 16.04 - no login-loop there, even if nvidia-375 is installed :/

      Delete