[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

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 revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
howtos:hardware:nvidia_optimus [2013/11/29 04:34 (UTC)] tommychowtos:hardware:nvidia_optimus [2014/10/09 07:03 (UTC)] – Added automated installer info. tommyc
Line 10: Line 10:
 You should also note the terminal commands used on this page. The code lines that begin with ''$'' refers to commands to be run by a regular user, and ''#'' refers to commands to be run as root or a user with sufficient privileges. You should also note the terminal commands used on this page. The code lines that begin with ''$'' refers to commands to be run by a regular user, and ''#'' refers to commands to be run as root or a user with sufficient privileges.
  
-Also please note the differences between Bumblebee and bumblebeedbumblebeed is the daemon for bumblebee.+Also please note the differences between Bumblebee and bumblebeebumblebee is the daemon for bumblebee.
 </note> </note>
  
Line 20: 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.
 +
 +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, provides SlackBuilds that mostly follow the [[http://www.slackbuilds.org/guidelines/|SlackBuilds.org]] requirements for Bumblebee on [[https://github.com/jgeboski/Bumblebee-SlackBuilds|github]]. 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.
 <code> <code>
-$ git clone https://github.com/jgeboski/Bumblebee-SlackBuilds.git+$ git clone https://github.com/whitewolf1776/Bumblebee-SlackBuilds.git
 $ cd Bumblebee-SlackBuilds $ cd Bumblebee-SlackBuilds
 </code> </code>
Line 29: Line 45:
 Or you can download the full tarball containing the SlackBuilds instead: Or you can download the full tarball containing the SlackBuilds instead:
 <code> <code>
-$ wget --content-disposition https://github.com/jgeboski/Bumblebee-SlackBuilds/tarball/master +$ wget --content-disposition https://github.com/whitewolf1776/Bumblebee-SlackBuilds/tarball/master 
-$ tar xf jgeboski-Bumblebee-SlackBuilds-<changing hexadecimal>    # Tab completion is helpful. +$ tar -xf whitewolf1776-Bumblebee-SlackBuilds-<changing hexadecimal>    # Tab completion is helpful. 
-$ cd jgeboski-Bumblebee-SlackBuilds+$ cd whitewolf1776-Bumblebee-SlackBuilds
 </code> </code>
 There is a README file, but you probably won't be reading it as you're reading this instead, so we're basically going to post it here. There is a README file, but you probably won't be reading it as you're reading this instead, so we're basically going to post it here.
  
-=== Getting the Dependencies === +=== Getting the Source Files === 
-The dependencies, as with all SlackBuilds, must be downloaded manually and placed into their respective directories. However the SLACKBUILDS.TXT file does give links for the downloads as well as their MD5SUMs to make sure the files were not corrupt. You can use the provided script to download them and check them against their MD5SUM for corruption, like this:+The source files, as with all SlackBuilds, must be downloaded manually and placed into their respective directories. Amongst the repos are a SLACKBUILDS.TXT file that does give links for the source files as well as their MD5SUMs to make sure the files were not corrupt. You can use the provided script to download them and check them against their MD5SUM for corruption, like this:
 <code sh> <code sh>
 ./download.sh ./download.sh
Line 50: Line 66:
  
 === Building and Installing Bumblebee's Core === === Building and Installing Bumblebee's Core ===
-1. Build and install: bbswitch (optional but highly recommended), libbsd and bumblebeed in order as you go.+1. Build and install: bbswitch (optional but highly recommended).
 <code> <code>
 # cd bbswitch # You don't actually need to ''cd'' as root, but who wants to ''su'' all the time? # cd bbswitch # You don't actually need to ''cd'' as root, but who wants to ''su'' all the time?
 # ./bbswitch.SlackBuild # ./bbswitch.SlackBuild
 # upgradepkg --install-new bbswitch-*.t?z # upgradepkg --install-new bbswitch-*.t?z
 +</code>
 +
 +2. Build and install: libbsd (required).
 +<code>
 # cd ../libbsd # cd ../libbsd
 # ./libbsd.SlackBuild # ./libbsd.SlackBuild
 # upgradepkg --install-new libbsd-*.t?z # upgradepkg --install-new libbsd-*.t?z
-# cd ../bumblebeed +</code> 
-# ./bumblebeed.SlackBuild+ 
 +3. Build and install: bumblebee (obviously required). 
 +<code> 
 +# cd ../bumblebee 
 +# ./bumblebee.SlackBuild
 # upgradepkg --install-new bumblebee-*.t?z # upgradepkg --install-new bumblebee-*.t?z
 </code> </code>
Line 71: Line 95:
  
 === VirtualGL === === VirtualGL ===
 +<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).
 +</note>
 1. Build and install: libjpeg-turbo (32-bit compatibility available) 1. Build and install: libjpeg-turbo (32-bit compatibility available)
 <code> <code>
Line 100: Line 127:
 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. 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.
  
-1. Rebuild mesa if you're using Slackware 14.0 or older+<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> <code>
 +# # For the old repository, one would have done:
 # cd ../mesa # cd ../mesa
 # ./mesa.SlackBuild # ./mesa.SlackBuild
 </code> </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:
-mesa does not have a COMPAT32 option because it is Slackware official package, but you can easily create the compat32 package after creating the original package by using:+
 <code> <code>
-# ./mesa-compat32.SlackBuild # located in the same directory as mesa.SlackBuild+# ./mesa-compat32.SlackBuild # Only in the old repository
 </code> </code>
 +</note>
  
-2. Build and install: primus+1. Build and install: primus
 <code> <code>
 # cd ../primus # cd ../primus
Line 128: Line 157:
  
 <note warning> <note warning>
-Some nvidia driver versions are incompatible with certain kernel versions. One example is nvidia's 319.32 driver and the 3.10.* kernel seriesIn order to use the official proprietary nvidia 319.32 driver with the 3.10.* kernel series, one had to apply this patch: http://sprunge.us/UaaH or use a newer version of the driver that does support the kernel version. You can also [[http://www.slackbuilds.org/faq/#version_update|follow the SlackBuilds.org guideline when newer version is out and the maintainer has not updated it]].+Some nvidia driver versions are incompatible with certain kernel versions and vice versa (some kernel versions are incompatible with some nvidia driver versions) for various reasonsA specific kernel configuration, a specific nvidia driver against a specific kernel version amongst other possibilitiesGenerally it is best to use the nvidia driver package provided along with the kernel packages provided by your Slackware version. You can also [[http://www.slackbuilds.org/faq/#version_update|follow the SlackBuilds.org guideline]] for manually updating a version of some software yourself
 </note> </note>
  
Line 159: Line 188:
 </note> </note>
 ==== Post-Installation ==== ==== Post-Installation ====
-Excellent. Now we're ready to do some post-installation setup. The bumblebeed package provided us with an rc.bumblebeed 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!
 <code> <code>
 # chmod +x /etc/rc.d/rc.bumblebeed # chmod +x /etc/rc.d/rc.bumblebeed
Line 170: Line 199:
 </code> </code>
  
-You can even go a step further by having bumblebeed stop with your system by adding the following lines to /etc/rc.d/rc.local_shutdown. You can create this file if it does not exist.+You can even go a step further by having bumblebee stop with your system by adding the following lines to /etc/rc.d/rc.local_shutdown. You can create this file if it does not exist.
 <code sh> <code sh>
 [ -x /etc/rc.d/rc.bumblebeed ] && /etc/rc.d/rc.bumblebeed stop [ -x /etc/rc.d/rc.bumblebeed ] && /etc/rc.d/rc.bumblebeed stop
Line 241: Line 270:
   * Bumblebee Project Wiki: [[https://github.com/Bumblebee-Project/Bumblebee/wiki]]   * Bumblebee Project Wiki: [[https://github.com/Bumblebee-Project/Bumblebee/wiki]]
   * For making this page possible: [[https://github.com/jgeboski/|jgeboski]]   * For making this page possible: [[https://github.com/jgeboski/|jgeboski]]
-  * SlackBuilds: https://github.com/jgeboski/Bumblebee-SlackBuilds+  * Original SlackBuilds: https://github.com/jgeboski/Bumblebee-SlackBuilds 
 +  * New SlackBuilds: https://github.com/whitewolf1776/Bumblebee-SlackBuilds
   * Originally written by [[wiki:user:tommyc | TommyC]]   * Originally written by [[wiki:user:tommyc | TommyC]]
  
 <!-- Please do not modify anything below, except adding new tags.--> <!-- Please do not modify anything below, except adding new tags.-->
 {{tag>howtos software hardware nvidia author_tommyc}} {{tag>howtos software hardware nvidia author_tommyc}}
 howtos:hardware:nvidia_optimus ()