Differences between revisions 1 and 54 (spanning 53 versions)
Revision 1 as of 2012-01-17 13:57:21
Size: 5868
Editor: PeterWu
Comment:
Revision 54 as of 2017-08-13 20:43:41
Size: 8593
Editor: Diego Alonso
Comment: added spanish translation link
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#language en
~-[[DebianWiki/EditorGuide#translation|Translation(s)]]: English - [[fr/Bumblebee|Français]] - [[it/Bumblebee|Italiano]] - [[es/Bumblebee|español]] - [[ru/Bumblebee|Русский]] - [[pt_BR/Bumblebee|Brasileiro]]-~
----
Line 2: Line 5:
Bumblebee aims to provide support for NVIDIA Optimus laptops for GNU/Linux
<<TableOfContents(3)>>

Bumblebee aims to provide support for [[http://www.nvidia.com/object/optimus_technology.html|NVIDIA Optimus]] laptops for GNU/Linux
Line 6: Line 12:
The instructions on this page have been made for Debian 6 Squeeze. Debian 5
L
enny is not supported.
The instructions on this page applies to Debian Wheezy and newer. Debian Squeeze and prior are not supported.
Line 9: Line 14:
== Requirements == '''For Sid and Jessie users''', Bumblebee packages are available directly from the Debian repositories, head down to the [[#Installation|Installation]] section. In summary, it's as simple as installing {{{bumblebee}}} or {{{bumblebee-nvidia}}}, and {{{primus}}}.
Line 11: Line 16:
 * source tarball from https://github.com/Bumblebee-Project/Bumblebee/downloads
 * Build dependencies: {{{
sudo apt-get install build-essential pkg-config help2man libx11-dev libbsd-dev
}}}
 * [[http://sourceforge.net/projects/virtualgl/files/VirtualGL/|Virtual GL]]
 * A video driver (nouveau or nvidia, see below)
 * [[https://github.com/Bumblebee-Project/bbswitch|bbswitch]] (kernel module for Power Management, see below)

=== bbswitch ===
It's recommended to install this kernel module using DKMS such that it survives
kernel upgrades. The [[https://launchpad.net/~bumblebee/+archive/testing/+packages?field.name_filter=bbswitch|bbswitch-dkms package from Ubuntu]]
is compatible with Debian and can also be used.

=== Driver choice ===

NVIDIA Optimus graphics card are very recent, the [[http://packages.debian.org/xserver-xorg-video-nouveau|nouveau]]
package supplied with Squeeze is very old. For nouveau, kernel 3.1 and up is recommended
because of the firmware. If you're using Squeeze, the easiest way is to use
the NVIDIA proprietary driver.

==== NVIDIA blob ====
To install the nvidia proprietary driver, you will have to install the
[[http://packages.debian.org/nvidia-glx|nvidia-glx]] and
[[http://packages.debian.org/nvidia-kernel-dkms]] packages. If using Squeeze, the
backports repository [[https://wiki.debian.org/Backports|needs to be enabled]].
Make sure APT has ''non-free'' and ''contrib'' sources (consult the [[DebianMan:5/sources.list|sources.list(5)]] man page for help on doing this).

After refreshing the package lists using `sudo apt-get update`, install the NVIDIA drivers with: {{{
sudo apt-get install -t squeeze-backports nvidia-glx linux-headers-$(uname -r) nvidia-kernel-dkms
}}}
(remove {{{-t squeeze-backports}}} if you are not using Squeeze)

The following command is '''very''' important, if you skip it you will loose
3D acceleration. Restore Mesa as the default GL library since the primary
display is running on the Intel graphics card: {{{
sudo update-alternatives --set glx /usr/lib/mesa-diverted
}}}
'''For Wheezy users''', Bumblebee packages are available from [[http://backports.debian.org/Instructions/|wheezy-backports]]. Follow the steps listed on that page to add backports to your sources.list (but make sure that you also add wheezy-backports' contrib repository as well to your sources.list, e.g. {{{deb http://YOURMIRROR.debian.org/debian wheezy-backports main contrib non-free}}}), and then install {{{bumblebee}}} or {{{bumblebee-nvidia}}}, and {{{primus}}}. Refer to the [[#Installation|Installation]] section below.
Line 51: Line 20:
=== Compiling ===
Configure the source tree, it can be as simple as {{{./configure}}} if you
use nouveau and want to install Bumblebee to {{{/usr}}} with the configuration
directory at {{{/usr/local/etc/bumblebee}}}.
=== From repository ===
Line 56: Line 22:
If you use the proprietary nvidia driver, set the correct driver paths:
{{{
./configure CONF_DRIVER_MODULE_NVIDIA=nvidia-current \
  CONF_LDPATH_NVIDIA=/usr/lib/nvidia:/usr/lib32/nvidia \
  CONF_MODPATH_NVIDIA=/usr/lib/nvidia,/usr/lib/xorg/modules
}}}
Sid and Jessie users can install everything directly from the official repositories.
Line 63: Line 24:
Append {{{--sysconfdir=/etc}}} if you wish to have configuration files available
at {{{/etc/bumblebee}}}.
For users who would like to use the free nouveau driver:
Line 66: Line 26:
Continue with building and installing files.
{{{
make
sudo make install
}}}
{{{sudo apt-get install bumblebee primus}}}
Line 72: Line 28:
=== Startup script ===
To make the bumblebee daemon (bumblebeed) start on boot, install an
init script: {{{
sudo install -m755 scripts/sysvinit/bumblebeed /etc/init.d/
sudo update-rc.d bumblebeed defaults
}}}
For users who would like to use the proprietary nvidia driver (again, requires contrib and non-free enabled in your sources.list):
Line 79: Line 30:
=== Groups ===
For security reasons, the use of Bumblebee is restricted to a
certain group. By default, this group is {{{bumblebee}}}, which
must be created: {{{
sudo groupadd
}}}
{{{sudo apt-get install bumblebee-nvidia primus}}}
Line 86: Line 32:
Users who are allowed to use Bumblebee must be added (replace `$USER`
accordingly): {{{
sudo usermod -a -G bumblebee $USER
}}}
Group settings are re-read after login so re-login to get started.
Users running a 64-bit system who want to take advantage of Bumblebee with the primus backend when running 32-bit applications will also want to install {{{primus-libs:i386}}}. This requires [[Multiarch|Multiarch]] support.

{{{sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install bumblebee-nvidia primus primus-libs:i386}}}

Wheezy users can install everything directly from backports.

{{{sudo apt-get install -t wheezy-backports bumblebee primus}}}
 -or-
{{{sudo apt-get install -t wheezy-backports bumblebee-nvidia primus}}}
 -or-
{{{sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install -t wheezy-backports bumblebee-nvidia primus primus-libs:i386}}}

'''Note''' wheezy-backports does ''not'' contain the newer {{{xserver-xorg-video-intel}}} package that is needed by newer intel cards. If you find yourself stuck with the fbdev or vesa driver then you'll need to upgrade to jessie or sid.

'''Warning:''' If you choose to install bumblebee-nvidia and the dependent nvidia driver packages, during postinst, you will see a debconf prompt warning you that you need to create a xorg.conf file in order to use the proprietary nvidia driver. '''This prompt only applies to non-Optimus users''', i.e. single Nvidia GPU systems. Do '''NOT''' allow debconf to create a xorg.conf file, and do '''NOT''' run nvidia-xconfig! (This prompt always appears when you install nvidia packages through the repositories, and it currently does not detect Optimus/bumblebee users. See DebianBug:735049 for a brief explanation.)

Alternatively, Wheezy, Jessie, and Sid users can install everything from an external repository (which was setup before bumblebee packages were made available in the official repositories). Check [[http://suwako.nomanga.net/]] for details.

=== Compiling from source ===

Refer to [[Bumblebee/ManualInstall]]. These instructions are provided for historical reference only and are not recommended now that packages are available through the repositories.


== Post-installation ==

You must add your user to the {{{bumblebee}}} group in order to use optirun, i.e.

{{{sudo adduser $USER bumblebee}}}

where $USER corresponds to your username. Don't forget to log out and log back in for this to take effect.

If you have {{{sudo}}} configured for your current user, i.e. your user is a member of the {{{sudo}}} group, this step is not needed (the bumblebee package postinst script takes care of adding sudo users to the bumblebee group automatically). This is likely to be the reason why Bumblebee works out of the box in Ubuntu, but not in Debian, with the same initial setup, i.e. Ubuntu has sudo installed by default; Debian does not. To clarify, sudo is not needed to use bumblebee; it simply makes adding your user to the bumblebee group unnecessary.
Line 97: Line 71:
 $ `optirun firefox`  $ `optirun glxgears -info`
Line 99: Line 73:
For a list of options for `optirun` run: For a list of options for `optirun` open the manpage with `man optirun` or run:
Line 105: Line 79:
Since Bumblebee 3.0, this feature is enabled by default, using [[https://github.com/Bumblebee-Project/bbswitch|bbswitch]]. This allow automatic power management, without any configuration needs. If Power Management doesn't work on your laptop, please go to this [[https://github.com/Bumblebee-Project/Bumblebee/wiki/Power-Management|Power Management (PM)]] page and help to improve Bumblebee. bbswitch is packaged in Debian and is automatically installed when choosing to install bumblebee through the repositories.

Since Bumblebee 3.0, this feature is enabled by default, using [[https://github.com/Bumblebee-Project/bbswitch|bbswitch]]. This allow automatic power management, without any configuration needs. If Power Management doesn't work on your laptop, please go to this [[http://wiki.Bumblebee-Project.org/Power-Management|Power Management (PM)]] page and help to improve Bumblebee.
Line 111: Line 87:
First of all: If you have any problem, please read the article [[https://github.com/Bumblebee-Project/Bumblebee/wiki/Troubleshooting|Troubleshooting]]. If your issue is not solved, you can join the [[http://webchat.freenode.net/?channels=#bumblebee|#bumblebee]] IRC channel to ask for help (recommended). See also
https://github.com/Bumblebee-Project/Bumblebee/wiki/Reporting-Issues
First of all: If you have any problem, please read the article [[http://wiki.Bumblebee-Project.org/Troubleshooting|Troubleshooting]]. If your issue is not solved, you can join the [[http://webchat.freenode.net/?channels=#bumblebee|#bumblebee]] IRC channel to ask for help (recommended). See also
http://wiki.Bumblebee-Project.org/Reporting-Issues
Line 116: Line 92:
== Uninstall ==
If you're unsatisfied with Bumblebee, you can remove it by running {{{sudo make uninstall}}} from the source directory.
=== Common issues ===
- If optirun returns the following error:
{{{[ERROR]Cannot access secondary GPU - error: Could not load GPU driver}}}
Line 119: Line 96:
== Social Media ==
Follow us on: [[http://www.facebook.com/pages/Bumblebee-Project/292915584089408|Facebook]] and [[https://twitter.com/#!/Team_Bumblebee|Twitter]].
You must edit /etc/bumblebee/bumblebee.conf using your preferred editor as root, and change "!KernelDriver=nvidia" to "!KernelDriver=nvidia-current", then restart the bumblebee daemon, i.e.

{{{ sudo service bumblebeed restart }}}

(Refer to Debian Bug DebianBug:717687 for a brief explanation.)

- If optirun returns the following error:
{{{[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected}}}

You may have to set the BusID manually, in /etc/bumblebee/xorg.conf.nvidia. To get the BusID, run `lspci | egrep 'VGA|3D'` in a terminal. Refer to the comments in that file for further instructions.

- If optirun returns the following error (DebianBug:756522):
{{{[ERROR]Cannot access secondary GPU - error: [XORG] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied}}}

You have to append the following section to {{{/etc/bumblebee/xorg.conf.nvidia}}}:

{{{
Section "Screen"
    Identifier "Default Screen"
    Device "DiscreteNvidia"
EndSection
}}}

You might also try downgrading libdrm from 2.4.58 to 2.4.56. That might fix the {{{Permission denied}}} errors in Jessie.

- If optirun errors out and {{{dmesg}}} reports that your GPU has "fallen off the bus" on Linux >= 3.10, either stick with an older [[http://snapshot.debian.org/package/linux/|kernel version (<= 3.9)]], or add {{{rcutree.rcu_idle_gp_delay=1}}} to your grub command line (in /etc/default/grub, then run {{{update-grub}}} and {{{reboot}}}) as a workaround.

This is a known problem upstream and suspected to be an issue with the proprietary nvidia driver. Refer to Bumblebee github [[https://github.com/Bumblebee-Project/Bumblebee/issues/455#issuecomment-22497464|issue #455]].
Line 123: Line 126:
 * https://wiki.ubuntu.com/Bumblebee  * UbuntuWiki:Bumblebee
Line 125: Line 128:
 * http://wiki.debian.org/NvidiaGraphicsDrivers  * NvidiaGraphicsDrivers
 * http://Bumblebee-Project.org/
 * http://suwako.nomanga.net/

Translation(s): English - Français - Italiano - español - Русский - Brasileiro


Bumblebee Project

Bumblebee aims to provide support for NVIDIA Optimus laptops for GNU/Linux distributions. Using Bumblebee, you can use your NVIDIA card for rendering graphics which will be displayed using the Intel card.

The instructions on this page applies to Debian Wheezy and newer. Debian Squeeze and prior are not supported.

For Sid and Jessie users, Bumblebee packages are available directly from the Debian repositories, head down to the Installation section. In summary, it's as simple as installing bumblebee or bumblebee-nvidia, and primus.

For Wheezy users, Bumblebee packages are available from wheezy-backports. Follow the steps listed on that page to add backports to your sources.list (but make sure that you also add wheezy-backports' contrib repository as well to your sources.list, e.g. deb http://YOURMIRROR.debian.org/debian wheezy-backports main contrib non-free), and then install bumblebee or bumblebee-nvidia, and primus. Refer to the Installation section below.

Installation

From repository

Sid and Jessie users can install everything directly from the official repositories.

For users who would like to use the free nouveau driver:

sudo apt-get install bumblebee primus

For users who would like to use the proprietary nvidia driver (again, requires contrib and non-free enabled in your sources.list):

sudo apt-get install bumblebee-nvidia primus

Users running a 64-bit system who want to take advantage of Bumblebee with the primus backend when running 32-bit applications will also want to install primus-libs:i386. This requires Multiarch support.

sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install bumblebee-nvidia primus primus-libs:i386

Wheezy users can install everything directly from backports.

sudo apt-get install -t wheezy-backports bumblebee primus

  • -or-

sudo apt-get install -t wheezy-backports bumblebee-nvidia primus

  • -or-

sudo dpkg --add-architecture i386 && sudo apt-get update && sudo apt-get install -t wheezy-backports bumblebee-nvidia primus primus-libs:i386

Note wheezy-backports does not contain the newer xserver-xorg-video-intel package that is needed by newer intel cards. If you find yourself stuck with the fbdev or vesa driver then you'll need to upgrade to jessie or sid.

Warning: If you choose to install bumblebee-nvidia and the dependent nvidia driver packages, during postinst, you will see a debconf prompt warning you that you need to create a xorg.conf file in order to use the proprietary nvidia driver. This prompt only applies to non-Optimus users, i.e. single Nvidia GPU systems. Do NOT allow debconf to create a xorg.conf file, and do NOT run nvidia-xconfig! (This prompt always appears when you install nvidia packages through the repositories, and it currently does not detect Optimus/bumblebee users. See 735049 for a brief explanation.)

Alternatively, Wheezy, Jessie, and Sid users can install everything from an external repository (which was setup before bumblebee packages were made available in the official repositories). Check http://suwako.nomanga.net/ for details.

Compiling from source

Refer to Bumblebee/ManualInstall. These instructions are provided for historical reference only and are not recommended now that packages are available through the repositories.

Post-installation

You must add your user to the bumblebee group in order to use optirun, i.e.

sudo adduser $USER bumblebee

where $USER corresponds to your username. Don't forget to log out and log back in for this to take effect.

If you have sudo configured for your current user, i.e. your user is a member of the sudo group, this step is not needed (the bumblebee package postinst script takes care of adding sudo users to the bumblebee group automatically). This is likely to be the reason why Bumblebee works out of the box in Ubuntu, but not in Debian, with the same initial setup, i.e. Ubuntu has sudo installed by default; Debian does not. To clarify, sudo is not needed to use bumblebee; it simply makes adding your user to the bumblebee group unnecessary.

Usage

To run your application with the discrete NVIDIA card run in the terminal:

  • $ optirun [options] <application> [application-parameters]

Example:

  • $ optirun glxgears -info

For a list of options for optirun open the manpage with man optirun or run:

  • $ optirun --help

Power Management

A primary goal of this project is to not only enable use of the discrete GPU for rendering, but also to enable smart power management of the dGPU when it's not in use. We're using either bbswitch (a module) or vga_switcheroo (kernel module, experimental) to do this in Bumblebee.

bbswitch is packaged in Debian and is automatically installed when choosing to install bumblebee through the repositories.

Since Bumblebee 3.0, this feature is enabled by default, using bbswitch. This allow automatic power management, without any configuration needs. If Power Management doesn't work on your laptop, please go to this Power Management (PM) page and help to improve Bumblebee.

IRC

If you have any questions, feel free to join #bumblebee on Freenode.

Reporting bugs/problems

First of all: If you have any problem, please read the article Troubleshooting. If your issue is not solved, you can join the #bumblebee IRC channel to ask for help (recommended). See also http://wiki.Bumblebee-Project.org/Reporting-Issues

When asked to create a bugreport, run the sudo bumblebee-bugreport command in a terminal

Common issues

- If optirun returns the following error: [ERROR]Cannot access secondary GPU - error: Could not load GPU driver

You must edit /etc/bumblebee/bumblebee.conf using your preferred editor as root, and change "KernelDriver=nvidia" to "KernelDriver=nvidia-current", then restart the bumblebee daemon, i.e.

 sudo service bumblebeed restart 

(Refer to Debian Bug 717687 for a brief explanation.)

- If optirun returns the following error: [ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected

You may have to set the BusID manually, in /etc/bumblebee/xorg.conf.nvidia. To get the BusID, run lspci | egrep 'VGA|3D' in a terminal. Refer to the comments in that file for further instructions.

- If optirun returns the following error (756522): [ERROR]Cannot access secondary GPU - error: [XORG] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied

You have to append the following section to /etc/bumblebee/xorg.conf.nvidia:

Section "Screen"
    Identifier "Default Screen"
    Device "DiscreteNvidia"
EndSection

You might also try downgrading libdrm from 2.4.58 to 2.4.56. That might fix the Permission denied errors in Jessie.

- If optirun errors out and dmesg reports that your GPU has "fallen off the bus" on Linux >= 3.10, either stick with an older kernel version (<= 3.9), or add rcutree.rcu_idle_gp_delay=1 to your grub command line (in /etc/default/grub, then run update-grub and reboot) as a workaround.

This is a known problem upstream and suspected to be an issue with the proprietary nvidia driver. Refer to Bumblebee github issue #455.

References


CategoryHardware