Git Product home page Git Product logo

bumblebee's Introduction

Bumblebee Daemon

Bumblebee daemon is a rewrite of the original Bumblebee service, providing an elegant and stable means of managing Optimus hybrid graphics chipsets. 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.

Build Requirements

Source tarballs can be downloaded from https://github.com/Bumblebee-Project/Bumblebee/downloads

The following packages are dependencies for the build process:

  • pkg-config
  • glib-2.0 and development headers
  • libx11 and development headers
  • libbsd and development headers (if pidfile support is enabled, default yes)
  • help2man (optional, it is needed for building manual pages)

If you are building from git, you will also need:

  • autotools (2.68+ recommended)

Runtime dependencies

If you want to use optirun for running applications with the discrete nVidia card, you will also need:

  • At least one back-end for optirun:
  • Driver for nvidia graphics card: nouveau or the proprietary nvidia driver. Don't install it directly from nvidia.com as it will break 3D capabilities on the Intel graphics card and therefore affect the display of frames from the nvidia card.

If you want to make use of Power Management, you will need:

  • bbswitch
  • If you're brave and want to try the switcheroo method, install at least the optimus patch (merged in Linux 3.3). Note that suspend is not yet supported by this method.

Building

If you are building from git, you first need to run autoreconf -fi to generate the configure script.

Next, run the configure script to check for dependencies and populate the Makefile:

./configure

To set the default driver to nvidia and adjust the library and module paths for it, use ./configure like:

./configure CONF_DRIVER=nvidia CONF_DRIVER_MODULE_NVIDIA=nvidia-current \
  CONF_LDPATH_NVIDIA=/usr/lib/nvidia-current:/usr/lib32/nvidia-current \
  CONF_MODPATH_NVIDIA=/usr/lib/nvidia-current/xorg,/usr/lib/xorg/modules

For all available options, run:

./configure --help

After configuring, you can build the binaries with:

make

Installing System-wide and Packaging

You can build the binaries and set the system wide paths at configure time

./configure --prefix=/usr --sysconfdir=/etc
make

After building the binaries and bash completion script, it can be installed together with an udev rule (unless --without-udev-rules was passed) using make:

sudo make install

For packagers you need to add DESTDIR=$pkgdir

make install DESTDIR=$pkgdir

Example initscripts are available in the scripts/ directory. Currently, Upstart, systemd and Sys V initscripts are available.

Usage

The first time you install Bumblebee, the bumblebee group has to be created. Users who are allowed to use Bumblebee need to be added to the group:

sudo groupadd bumblebee
sudo gpasswd -a $USER bumblebee

To run Bumblebee after installing it system-wide, run:

sudo bumblebeed --daemon
optirun -- <application>

For more information, try --help on either of the two binaries.

Interesting Links

bumblebee's People

Contributors

lekensteyn avatar thulinma avatar samsagax avatar archangegabriel avatar amonakov avatar thefrozenfire avatar ralfjung avatar z0rc avatar ssaavedra avatar kroki avatar m42a avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.