Welcome to the Slackware Documentation Project

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
howtos:hardware:nvidia_optimus [2014/05/12 15:29 (UTC)]
whitewolf1776
howtos:hardware:nvidia_optimus [2015/04/24 06:03 (UTC)] (current)
tommyc
Line 4: Line 4:
  
 Despite this disappointment,​ there is an open source project called Bumblebee that aims to fix this problem. However, Bumblebee isn't alone. nVidia developers do assist the Bumblebee project by fixing bugs in the closed source proprietary drivers that Bumblebee developers cannot touch. Despite this disappointment,​ there is an open source project called Bumblebee that aims to fix this problem. However, Bumblebee isn't alone. nVidia developers do assist the Bumblebee project by fixing bugs in the closed source proprietary drivers that Bumblebee developers cannot touch.
- 
-<note warning>​warning as of Fri May 9 01:47:42 UTC 2014 the kernel update to -current will prevent the nvidia module from building. Details of the issue can be found at the link below. ​ 14.1 kernel continues to work, this only applies to the -current kernel. http://​www.linuxquestions.org/​questions/​slackware-14/​kernel-3-14-3-and-nvidia-driver-4175504429/​ </​note>​ 
  
 <​note>​ <​note>​
Line 22: Line 20:
 ==== Installing Bumblebee ==== ==== Installing Bumblebee ====
 ---- ----
 +=== The Automated Way ===
 +There is a new, automated way of installing Bumblebee thanks to Slacker: Ryan McQuen.
 +<note warning>​USE AT YOUR OWN RISK!
 +If you have modified the SlackBuilds in any way, this script may not be for you.</​note>​
 +
 +You can run this as root:
 +<​code>​
 +curl https://​raw.githubusercontent.com/​ryanpcmcquen/​linuxTweaks/​master/​slackware/​crazybee.sh | sh
 +</​code>​
 +
 +Alternatively you can download the script and run it as root on your system directly.
 +
 +This script detects multilib, creates the necessary group, adds users and applies the necessary /​etc/​rc.d/​rc.local entries and also comes with a stable option which can be used by passing this instead:
 +
 +<​code>​
 +curl https://​raw.githubusercontent.com/​ryanpcmcquen/​linuxTweaks/​master/​slackware/​crazybee.sh | STABLE=yes sh
 +</​code>​
 +
 +It also uses upgradepkg'​s %%--%%reinstall %%--%%install-new features for use after kernel upgrades.
 +=== The Manual Way ===
 === Getting the SlackBuilds === === Getting the SlackBuilds ===
 A fellow Slacker, jgeboski, originally provided SlackBuilds that mostly follow the [[http://​www.slackbuilds.org/​guidelines/​|SlackBuilds.org]] requirements for Bumblebee. Now, another Slacker has taken over where he has left off on his own [[https://​github.com/​WhiteWolf1776/​Bumblebee-SlackBuilds|github repo]]. Remember to check which directory you're in first, as they will be downloaded to that directory. Assuming you're ready, the SlackBuilds can simply be git cloned as such. Then we're going to change into the new directory and begin the build process. A fellow Slacker, jgeboski, originally provided SlackBuilds that mostly follow the [[http://​www.slackbuilds.org/​guidelines/​|SlackBuilds.org]] requirements for Bumblebee. Now, another Slacker has taken over where he has left off on his own [[https://​github.com/​WhiteWolf1776/​Bumblebee-SlackBuilds|github repo]]. Remember to check which directory you're in first, as they will be downloaded to that directory. Assuming you're ready, the SlackBuilds can simply be git cloned as such. Then we're going to change into the new directory and begin the build process.
Line 79: Line 97:
 <​note>​Bumblebee can use either primusrun (requires a mesa rebuild in Slackware 14.0 and below) or bumblebee'​s own optirun. Take your pick which one you would like to use (or you can install both). Each one has their own advantages and disadvantages. <​note>​Bumblebee can use either primusrun (requires a mesa rebuild in Slackware 14.0 and below) or bumblebee'​s own optirun. Take your pick which one you would like to use (or you can install both). Each one has their own advantages and disadvantages.
 </​note>​ </​note>​
 +
 +=== Primus ===
 +Primus, like optirun (instructions below) can be used to run your desired program via bumblebee. Primus also comes with a COMPAT32 option as well.
 +
 +<note warning>
 +If you are using Slackware 14.0 or older you need to rebuild mesa. The new github repository does not offer a SlackBuild for mesa to support Slackware 14.0 or older. Therefore you must use Slackware 14.1 or newer, or rebuild mesa manually with a different script. One can choose to use the old repository and simply update the SlackBuild script appropriately,​ or add ''​%%--%%enable-shared-glapi''​ into a mesa.SlackBuild from the source of a newer Slackware version.
 +<​code>​
 +# # For the old repository, one would have done:
 +# cd ../mesa
 +# ./​mesa.SlackBuild
 +</​code>​
 +mesa does not have a COMPAT32 option because it is an official Slackware package, but you can easily create the compat32 package after creating the original package by using:
 +<​code>​
 +# ./​mesa-compat32.SlackBuild # Only in the old repository
 +</​code>​
 +</​note>​
 +
 +1. Build and install: primus
 +<​code>​
 +# cd ../primus
 +# ./​primus.SlackBuild
 +# upgradepkg --install-new primus-*.t?​z
 +</​code>​
 +<​code>​
 +# COMPAT32=yes ./​primus.SlackBuild
 +</​code>​
  
 === VirtualGL === === VirtualGL ===
 +VirtualGL provides support for optirun that also allows one to run programs via bumblebee. However, it is recommended that one uses primusrun for a few reasons. ​
 <note warning> <note warning>
 Although VirtualGL (and its dependency libjpeg-turbo) are still supported by the Bumblebee project and maintained by their developers, the new github repo does not include SlackBuild scripts for these packages. This section is for the old github repository that was once maintained by jgeboski. If you would like to use VirtualGL (e.g. you're in one of the rare cases where VirtualGL provides better performance than primus) then you can use your own personal SlackBuilds or the old ones (although the old SlackBuilds will be out-of-date). Although VirtualGL (and its dependency libjpeg-turbo) are still supported by the Bumblebee project and maintained by their developers, the new github repo does not include SlackBuild scripts for these packages. This section is for the old github repository that was once maintained by jgeboski. If you would like to use VirtualGL (e.g. you're in one of the rare cases where VirtualGL provides better performance than primus) then you can use your own personal SlackBuilds or the old ones (although the old SlackBuilds will be out-of-date).
Line 108: Line 153:
 <​code>​ <​code>​
 # COMPAT32=yes ./​VirtualGL.SlackBuild # COMPAT32=yes ./​VirtualGL.SlackBuild
-</​code>​ 
- 
-=== Primus === 
-Primus is another program designed to be used much like optirun. However, primus does not require VirtualGL (and therefore will not require libjpeg-turbo as well) but only requires mesa with %%--%%enable-shared-glapi (Slackware 14.0 and below must have mesa rebuilt). Primus also comes with a COMPAT32 option as well. 
- 
-<note warning> 
-The new github repository does not offer a SlackBuild for mesa to support Slackware 14.0 or older. Therefore you must use Slackware 14.1 or newer, or rebuild mesa manually with a different script. One can choose to use the old repository and simply update the SlackBuild script appropriately,​ or add ''​%%--%%enable-shared-glapi''​ into a mesa.SlackBuild from the source of a newer Slackware version. 
-<​code>​ 
-# # For the old repository, one would have done: 
-# cd ../mesa 
-# ./​mesa.SlackBuild 
-</​code>​ 
-mesa does not have a COMPAT32 option because it is an official Slackware package, but you can easily create the compat32 package after creating the original package by using: 
-<​code>​ 
-# ./​mesa-compat32.SlackBuild # Only in the old repository 
-</​code>​ 
-</​note>​ 
- 
-1. Build and install: primus 
-<​code>​ 
-# cd ../primus 
-# ./​primus.SlackBuild 
-# upgradepkg --install-new primus-*.t?​z 
-</​code>​ 
-<​code>​ 
-# COMPAT32=yes ./​primus.SlackBuild 
 </​code>​ </​code>​
  
Line 139: Line 158:
 If you want to use the nVidia proprietary drivers, you must not use nouveau, as the drivers interfere with each other. This can be prevented by removing nouveau, installing xf86-video-nouveau-blacklist from /extra, or blacklisting nouveau manually. If you want to use the nVidia proprietary drivers, you must not use nouveau, as the drivers interfere with each other. This can be prevented by removing nouveau, installing xf86-video-nouveau-blacklist from /extra, or blacklisting nouveau manually.
  
-<​note>​ 
 This part is entirely optional. Slackware 13.37 and above comes with xf86-video-nouveau,​ the open source nVidia graphics card drivers. If you are using this, you do not need the closed source proprietary nVidia drivers. However, if you wish to use the closed source drivers, then install the packages listed in this section before going on. This part is entirely optional. Slackware 13.37 and above comes with xf86-video-nouveau,​ the open source nVidia graphics card drivers. If you are using this, you do not need the closed source proprietary nVidia drivers. However, if you wish to use the closed source drivers, then install the packages listed in this section before going on.
  
Line 146: Line 164:
 </​note>​ </​note>​
  
-1Build and installlibvdpau ​(Now required to assist in building the newer nvidia-bumblebee packages)+<​note>​If you are using Slackware 14.1 or older, you will need to install libvdpau. Newer Slackware versions now ship libvdpau.
 <​code>​ <​code>​
 # cd ../libvdpau # cd ../libvdpau
Line 152: Line 170:
 # upgradepkg --install-new libvdpau-*.t?​z # upgradepkg --install-new libvdpau-*.t?​z
 </​code>​ </​code>​
 +</​note>​
  
-2. Build and install: nvidia-bumblebee+1. Build and install: nvidia-bumblebee
 <code sh> <code sh>
 # cd ../​nvidia-bumblebee # cd ../​nvidia-bumblebee
Line 163: Line 182:
 </​code>​ </​code>​
  
-3. Build and install: nvidia-kernel+2. Build and install: nvidia-kernel
 <code sh> <code sh>
 # cd ../​nvidia-kernel # cd ../​nvidia-kernel
Line 169: Line 188:
 # upgradepkg --install-new nvidia-kernel-*.t?​z # upgradepkg --install-new nvidia-kernel-*.t?​z
 </​code>​ </​code>​
-<​code>​ 
-# COMPAT32=yes ./​nvidia-kernel.SlackBuild # Only for 32-bit compatible binaries and libraries on an x86_64 based system. 
-</​code>​ 
-</​note>​ 
 ==== Post-Installation ==== ==== Post-Installation ====
 Excellent. Now we're ready to do some post-installation setup. The bumblebee package provided us with an rc.bumblebee script in /etc/rc.d where the other startup scripts are also located. Remember to make this script executable and, if you so desire, start it! Excellent. Now we're ready to do some post-installation setup. The bumblebee package provided us with an rc.bumblebee script in /etc/rc.d where the other startup scripts are also located. Remember to make this script executable and, if you so desire, start it!

In Other Languages
QR Code
QR Code howtos:hardware:nvidia_optimus (generated for current page)