-
Notifications
You must be signed in to change notification settings - Fork 143
Bumblebee Overview
This page tries to establish a design for Bumblebee. It's aimed at developers. Developers are encouraged to discuss the points below.
The installation is distinct from configuration because it has to be executed only once.
- clean the mess named bumblebee-enablecard and other unremoved files (a seperate script)
- uninstall previous Bumblebee versions
display driver installation (currently nvidia, nouveau as option for the future)- check for dependencies, but do not install these: virtualgl; nvidia/nouveau driver
- To avoid breaking the Intel display, the nvidia libraries need to be installed in a way they don't overwrite libGL from mesa.
- setup initscript that starts the daemon (
bumblebee -d
) - add a group which is allowed to use bumblebee and instruct users to add themselves to it (group:
bumblebee
)
- Xorg settings, a minimum file is provided:
-
ConnectedMonitor "DFP"
works fine for nvidia driver as VirtualGL is faking a CRT screen if needed. Nouvea driver doesn't need this option. -
BusID
setting, should be the PCI Bus ID of the nVidia card.
Most defaults are set to sane values known to work but they can be tweaked for better performance.
- VGL preferences (see also User's Guide for VirtualGL: 19 Advanced configuration)
-
VGL_COMPRESS
sets the compression method for framestransport possible values:yuv
,jpeg
,proxy
(VGL default),xv
(BB default),rgb
-
VGL_DISPLAY
sets the X display to be used (this display is started by Bumblebee) - Bumblebee-specific stuff:
-
ECO_MODE
- if not connected to a power supply, new programs do not use the nvidia card whenECO_MODE
is set to1
.
- should start X server on request
- Use a single X server for now, see issue 8
- Communication is made through a named pipe, current commands are "start" (start X), other commands cause the daemon to check whether the X server needs to be shut down
- enable/disable the card (currently it loads/unloads the drivers by default), the acpi-framework is able to handle the card's power with acpi_call module but is not enabled by default due to stability issues.
- load/ unload the drivers and unload any conflicting drivers.
- automatically shutdown X when unused for configurable seconds? (not implemented,
optirun
notifies the daemon when done) - initscript starts the bumblebee daemon which is located in
/usr/local/sbin/bumblebee
. - Options for
bumblebee
:-
--version
- prints the version on the first line. License and credits on the next lines -
-d
- this option is passed by the initscript to instruct starting a daemon -
--help
shows the possible options -
--status
shows whether the daemon is started or not (used in the initscript). Might be removed in the future. - If no options are passed, a informational message should be printed. Probably the possible options
-
-
/etc/bumblebee
was a file in 1.7.10 and before (PPA 2.2.0 and before), containing the version number like:Bumblebee Version: 2.2.0 Worst. Decision. Ever. From now on, we'll create a directory for storing configuration files. (
/etc/bumblebee/
) The version will be stored in the daemon file. -
/etc/bumblebee/xorg.conf.$DRIVER
is used when starting X
This should be distribution specific but there is some basic dependencies that should be met:
- VirtualGL is the key component. It can be found in binary packages for different distributions (deb and rpm) and can be compiled. It should be packed separately and set as a dependency of bumblebee.
- Driver modules and libraries. Nvidia kernel module and binary drivers. They should be packed in a way that don't interfere with the open LibGL needed to enable 3D acceleration on the intel card (Gallium 3D render engine). Nouveau driver works on Gallium 3D engine and will be set as default. In such case the packaging will be less painful.
- Bumblebee (yes, us!) can be packed easily using the configurable installer (See About the installer and packaging)