Из FAQ Bumblebee:
Bumblebee — решение, позволяющее задействовать NVIDIA Optimus в ноутбуках с GNU/Linux, что включает в себя два графических адаптера с двумя разными профилями энергопотребления, использующих общий фреймбуфер.
Примечание: Рассмотрите nvidia-xrun (Русский) или PRIME в качестве альтернативы, так как у Bumblebee присутствуют значительные проблемы с производительностью[1][2] и не планируется поддержка Vulkan[3].
This article or section needs expansion.
Bumblebee: Optimus для Linux
Optimus реализует технологию гибридной графики без аппаратного коммутатора. Интегрированная видеокарта выводит на экран,в то время,как дискретная видеокарта занимается рендерингом, который требует более высокой вычислительной мощности графического процессора. Технология NVIDIA Optimus дает большую производительность, сберегая при этом заряд батареи, подключая дискретный графический процессор, когда это требуется.
Bumblebee — программное решение, базирующееся на VirtualGL и драйверах ядра, позволяющее использовать дискретный GPU, не имеющий физического подключения к экрану.
Bumblebee реализует технологию Optimus в два шага:
- Дискретная видеокарта производит рендеринг на виртуальном дисплее, в то время как выводом на экран занимается интегрированная видеокарта.
- Дискретная видеокарта отключается от питания, когда ее вычислительная способность не требуется.
Установка
Перед установкой Bumblebee убедитесь, что поддержка NVIDIA Optimus включена в настройках BIOS, а дисплей подключён к интегрированной видеокарте.
Установите:
- bumblebee — Основной пакет, содержащий демон и клиентское ПО.
- mesa — Свободную реализацию спецификации OpenGL.
- Соответствующую версию драйвера NVIDIA, см. NVIDIA#Installation.
- Опционально установите xf86-video-intel — драйвер Xorg (Русский) для Intel.
Также включите репозиторий multilib для поддержки 32-битных приложений и установите:
- lib32-virtualgl — виртуальный дисплей для рендеринга в 32-битных приложениях.
- lib32-nvidia-utils или lib32-nvidia-340xx-utilsAUR (должен соответствовать версии обычного драйвера NVIDIA).
Чтобы использовать Bumblebee, необходимо добавить обычного пользователя в группу bumblebee:
# gpasswd -a user bumblebee
Также включите службу bumblebeed.service, перезагрузите систему и см. раздел #Использование.
Использование
Тестирование
Примечание: Для использования glxgears и glxspheres32, glxspheres64 требуется установить пакет mesa-demos
Протестируйте bumblebee:
$ optirun glxgears -info
Если это не сработало
- 64-битная система:
$ optirun glxspheres64
- 32-битная система:
$ optirun glxspheres32
Примечание: Если glxgears не запустилось,а glxspheresXX работает, используйте glxspheresXX во всех случаях
Запуск программ
$ optirun [options] application [application-options]
Для примера, запуск firefox с параметром ‘www.yandex.ru’:
$ optirun firefox www.yandex.ru
Для просмотра документации и всех опций optirun используйте следующую команду:
$ man optirun
Настройка
Вы можете настраивать bumblebee под свои нужды, редактируя /etc/bumblebee/bumblebee.conf
Оптимизация скорости
Использование VirtualGL в качестве ‘моста’
Bumblebee отрисовывает, используя дискретную видеокарту NVIDIA на виртуальном дисплее с помощью VirtualGL,а затем отрисовка происходит на ‘реальном’ дисплее, когда интегрированная видеокарта передает изображение на X Server. Для увеличения скорости передачи 'Виртуальный дисплей'->'X Server' можно использовать различные методы сжатия,вызывая optirun с опцией -c
$ optirun -c compress-method application [application-options]
Методы со сжатием:
jpegrgbyuv
Методы без сжатия
proxyxv
Таблица производительности с ASUS N550JV приложение для тестирования: unigine-heavenAUR:
| Command | FPS | Score | Min FPS | Max FPS |
|---|---|---|---|---|
| optirun unigine-heaven | 25.0 | 630 | 16.4 | 36.1 |
| optirun -c jpeg unigine-heaven | 24.2 | 610 | 9.5 | 36.8 |
| optirun -c rgb unigine-heaven | 25.1 | 632 | 16.6 | 35.5 |
| optirun -c yuv unigine-heaven | 24.9 | 626 | 16.5 | 35.8 |
| optirun -c proxy unigine-heaven | 25.0 | 629 | 16.0 | 36.1 |
| optirun -c xv unigine-heaven | 22.9 | 577 | 15.4 | 32.2 |
Для использования метода сжатия по-умолчанию выставьте переменную VGLTransport c параметром compress-method в /etc/bumblebee/bumblebee.conf:
/etc/bumblebee/bumblebee.conf
[...] [optirun] VGLTransport=proxy [...]
Использование Primus
Primus позволяет увеличить производительность и энергосбережение за счет неиспользования VirtualGL.
Преимущества Primus перед стандартным Optirun:
- уменьшенное использование дополнительных ресурсов (увеличена частота кадров) и оптимизированное решение (без сетевых процессов или процессов сжатия)
- отсутствие бага с преждевременным выключением GPU
- более стабильный,нежели
Optirun, а также более прост в отладке - дискретная видеокарта используется только для обработки OpenGL,вся остальная информация обрабатывается и хранится в интегрированном графическом процессоре
Примечание: Для использования primus понадобится пакет primus.
- Для запуска 32-битных приложений на 64-битной машине понадобится пакет lib32-primus (Должен быть подключен Multilib (Русский))
Пример запуска glxspheres32:
$ primusrun glxspheres32
Для запуска приложения с ипользованием VirtualGL используйте:
$ optirun -b primus glxspheres32
Энергосбережение
Для регулировки потребления энергии на десктопном ПК используется пакет bbswitch
Примечание: Bumblebee не умеет регулировать потребление энергии на ПК самостоятельно.
Для настройки включения и отключения видеокарты редактируйте опции load_state и unload_state. Подробнее смотрите BBSwitch-документация.
/etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=1
Некорректная инициализация запуска видеокарты NVIDIA
Если ваша видеокарта NVidia некорректно запускается после последнего выключения, то следует выставить опцию TurnCardOffAtExit=false в /etc/bumblebee/bumblebee.conf — видеокарта будет выключаться каждый раз после отключения демона bumblebee.
Для того,чтобы видеокарта NVidia постоянно работала,следует включить соответствующий сервис:
# systemctl enable nvidia-enable.service
/etc/systemd/system/nvidia-enable.service
[Unit] Description=Enable NVIDIA card DefaultDependencies=no [Service] Type=oneshot ExecStart=/bin/sh -c 'echo ON > /proc/acpi/bbswitch' [Install] WantedBy=shutdown.target
Для более подробного разбора всех возможностей Bumblebee посетите английскую ветку wiki: bumblebee
Решение проблем
[VGL] ERROR: Could not open display :8
Проблема заключается в VirtualGL, в этом случае можно использовать primus
$ optirun -b primus wine windows program.exe
Если использование драйвера NVIDIA решило проблему,то отредактируйте файл /etc/bumblebee/xorg.conf.nvidia и измените опцию ConnectedMonitor на CRT-0.
Xlib: extension «GLX» missing on display «:0.0»
Если вы установили видеодрайвер с сайта NVIDIA, то проделайте следующее:
1. Удалите драйвер:
# ./NVIDIA-Linux-*.run --uninstall
2. Удалите сгенерированный NVIDIA конфигурационный файл Xorg:
# rm /etc/X11/xorg.conf
3. Установите корректный видеодрайвер — см. раздел #Установка.
[ERROR]Cannot access secondary GPU: No devices detected
В некоторых случаях запуск optirun возвращает сообщение об ошибке вида:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected. [ERROR]Aborting because fallback start is disabled.
В этом случае вам следует переместить файл /etc/X11/xorg.conf.d/20-intel.conf куда-нибудь в другое место,а затем перезапустите the bumblebeed демона и это должно сработать. Если же вам нужны настройки модулей Intel, то соедините файл /etc/X11/xorg.conf.d/20-intel.conf c /etc/X11/xorg.conf.
Закомментируйте строку Drive в /etc/X11/xorg.conf.d/10-monitor.conf.
Если вы используете драйвер nouveau попробуйте поменять его на nvidia драйвер.
Вам требуется обозначить видеокарту (в конфигурационных файлах /etc/X11/xorg.conf.d), используя корректный BusID получив его выводом команды lspci;
Section "Device"
Identifier "nvidiagpu1"
Driver "nvidia"
BusID "PCI:0:1:0"
EndSection
NVIDIA(0): Failed to assign any connected display devices to X screen 0
Если консоль возвращает сообщения об ошибке вида:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to assign any connected display devices to X screen 0 [ERROR]Aborting because fallback start is disabled.
Вы должны поменять эту строку в /etc/bumblebee/xorg.conf.nvidia:
Option "ConnectedMonitor" "DFP"
На:
Option "ConnectedMonitor" "CRT"
Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!)
Добавьте rcutree.rcu_idle_gp_delay=1 в параметры ядра из конфигурации загрузчика (подробнее BBS post для примера).
Could not load GPU driver
Если консоль возвращает сообщения об ошибке вида:
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver
И вы пробуете загрузить модуль nvidia, но получаете это:
modprobe nvidia modprobe: ERROR: could not insert 'nvidia': Exec format error
Это происходит потому,что видеодрайвер не может синхронизироваться с ядром, к примеру,если вы установили последний драйвер nvidia, но не можете обновить ядро. Полное обновление системы поможет исправить эту проблему. Если проблема не ушла,то попробуйте вручную скомпилировать пакеты nvidia для своего ядра.
Потребуются: nvidia-dkms или скомпилированный nvidia из ABS.
NOUVEAU(0): [drm] failed to set drm interface version
Примите во внимание то,что nouveau драйвер в стадии тестирования. Как написано тут: here, лучшим выходом будет — установка официального драйвера nvidia.
/dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
Это можно решить, добавив в /etc/bumblebee/xorg.conf.nvidia несколько строк. (Подробнее тут):
Section "Screen"
Identifier "Default Screen"
Device "DiscreteNvidia"
EndSection
ERROR: ld.so: object ‘libdlfaker.so’ from LD_PRELOAD cannot be preloaded: ignored
Вы пытаетесь запустить 32-битное приложение. Решит проблему запуск приложения через primus
Fatal IO error 11 (Resource temporarily unavailable) on X server
Измените параметр KeepUnusedXServer в /etc/bumblebee/bumblebee.conf c false на true. Программа запустится в фоновом режиме и bumblebee не будет ‘видеть’ её.
The following AskUbuntu answer fixed it for me:
https://askubuntu.com/a/285638/47280
Basically, you need to edit /etc/bumblebee/xorg.conf.nvidia and uncomment the following line:
BusID "PCI:01:00:0"
In the config, it states that this is necessary for Ubuntu 13.04. This number refers to the BusID of your GPU, so if it’s different then go to the other answer for full instructions.
answered Jun 6, 2013 at 18:58
NickNick
4233 silver badges13 bronze badges
1
In /etc/bumblebee/xorg.conf.nvidia , uncomment
BusID "PCI:01:00:0"
and replace with
BusID "PCI:0x:00.0"
where x is the number that you see in ‘lspci’ list next to 3D controller, which should be your nvidia card
answered Nov 24, 2013 at 19:59
3
I found the following file:
/usr/share/X11/xorg.conf.d/10-nvidia-current-latitude-e6530.conf
I deleted it and optirun worked!
answered May 4, 2013 at 16:22
jasminesjasmines
10.4k16 gold badges84 silver badges108 bronze badges
Well I had same problem after upgrade and nothing I found helped. I had newest version (3.2.1) installed, because I re-added ppa after upgrade and updated bumblebee.
I did one stupid thing though: I removed ppa with ppa-purge and removed bumblebee. Then I added ppa and installed bumblebee again. And magically it started working (at least after reboot). I can’t really tell you why though…
answered May 9, 2013 at 10:04
kordakorda
3993 silver badges13 bronze badges
After latest round of updates with apt, optirun errors with:
[ 2327.515114] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
[ 2327.515197] [ERROR]Aborting because fallback start is disabled.
Previously everything had been working with both bumblebee and primusrun w/ 319 drivers.
Some system info:
Linux Mint 14 64bit
Nvidia 630m gpu
current info after upddate
chippey@chipmunk-laptop ~ $ uname -a
Linux chipmunk-laptop 3.7.0-7-generic #15-Ubuntu SMP Sat Dec 15 16:34:25 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
chippey@chipmunk-laptop ~ $ optirun --debug -vv glxspheres
[ 1807.713465] [DEBUG]Reading file: /etc/bumblebee/bumblebee.conf
[ 1807.713964] [INFO]Configured driver: nvidia
[ 1807.714262] [DEBUG]optirun version 3.2.1 starting...
[ 1807.714290] [DEBUG]Active configuration:
[ 1807.714298] [DEBUG] bumblebeed config file: /etc/bumblebee/bumblebee.conf
[ 1807.714305] [DEBUG] X display: :8
[ 1807.714311] [DEBUG] LD_LIBRARY_PATH: /usr/lib/nvidia-319:/usr/lib32/nvidia-319
[ 1807.714318] [DEBUG] Socket path: /var/run/bumblebee.socket
[ 1807.714324] [DEBUG] Accel/display bridge: auto
[ 1807.714330] [DEBUG] VGL Compression: proxy
[ 1807.714336] [DEBUG] VGLrun extra options:
[ 1807.714343] [DEBUG] Primus LD Path: /usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
[ 1807.714385] [DEBUG]Using auto-detected bridge virtualgl
[ 1807.734976] [INFO]Response: No - error: [XORG] (EE) No devices detected.
[ 1807.735015] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
[ 1807.735029] [DEBUG]Socket closed.
[ 1807.735065] [ERROR]Aborting because fallback start is disabled.
[ 1807.735075] [DEBUG]Killing all remaining processes.
chippey@chipmunk-laptop ~ $ cat /var/log/Xorg.8.log
[ 2327.497]
X.Org X Server 1.13.4
Release Date: 2013-04-17
[ 2327.497] X Protocol Version 11, Revision 0
[ 2327.497] Build Operating System: Linux 2.6.24-32-xen x86_64 Ubuntu
[ 2327.497] Current Operating System: Linux chipmunk-laptop 3.7.0-7-generic #15-Ubuntu SMP Sat Dec 15 16:34:25 UTC 2012 x86_64
[ 2327.497] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.7.0-7-generic root=UUID=d4f758df-f3e7-45bf-a963-8191bf9a786a ro quiet splash vt.handoff=7
[ 2327.497] Build Date: 08 May 2013 02:37:22PM
[ 2327.497] xorg-server 2:1.13.4~git20130508+server-1.13-branch.10c42f57-0ubuntu0ricotz~quantal (For technical support please see http://www.ubuntu.com/support)
[ 2327.497] Current version of pixman: 0.28.2
[ 2327.497] Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
[ 2327.497] Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 2327.497] (==) Log file: "/var/log/Xorg.8.log", Time: Sun May 12 00:16:04 2013
[ 2327.497] (++) Using config file: "/etc/bumblebee/xorg.conf.nvidia"
[ 2327.497] (++) Using config directory: "/etc/bumblebee/xorg.conf.d"
[ 2327.497] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[ 2327.498] (==) ServerLayout "Layout0"
[ 2327.498] (==) No screen section available. Using defaults.
[ 2327.498] (**) |-->Screen "Default Screen Section" (0)
[ 2327.498] (**) | |-->Monitor "<default monitor>"
[ 2327.498] (==) No device specified for screen "Default Screen Section".
Using the first device section listed.
[ 2327.498] (**) | |-->Device "DiscreteNvidia"
[ 2327.498] (==) No monitor specified for screen "Default Screen Section".
Using a default monitor configuration.
[ 2327.498] (**) Option "AutoAddDevices" "false"
[ 2327.498] (**) Option "AutoAddGPU" "false"
[ 2327.498] (**) Not automatically adding devices
[ 2327.498] (==) Automatically enabling devices
[ 2327.498] (**) Not automatically adding GPU devices
[ 2327.498] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[ 2327.498] Entry deleted from font path.
[ 2327.498] (WW) The directory "/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType" does not exist.
[ 2327.498] Entry deleted from font path.
[ 2327.498] (==) FontPath set to:
/usr/share/fonts/X11/misc,
/usr/share/fonts/X11/100dpi/:unscaled,
/usr/share/fonts/X11/75dpi/:unscaled,
/usr/share/fonts/X11/Type1,
/usr/share/fonts/X11/100dpi,
/usr/share/fonts/X11/75dpi,
built-ins
[ 2327.498] (++) ModulePath set to "/usr/lib/nvidia-319/xorg,/usr/lib/xorg/modules"
[ 2327.498] (==) |-->Input Device "<default pointer>"
[ 2327.498] (==) |-->Input Device "<default keyboard>"
[ 2327.498] (==) The core pointer device wasn't specified explicitly in the layout.
Using the default mouse configuration.
[ 2327.498] (==) The core keyboard device wasn't specified explicitly in the layout.
Using the default keyboard configuration.
[ 2327.498] (II) Loader magic: 0x7fcd4c314d00
[ 2327.498] (II) Module ABI versions:
[ 2327.498] X.Org ANSI C Emulation: 0.4
[ 2327.498] X.Org Video Driver: 13.1
[ 2327.498] X.Org XInput driver : 18.0
[ 2327.498] X.Org Server Extension : 7.0
[ 2327.499] (II) config/udev: Adding drm device (/dev/dri/card0)
[ 2327.500] (--) PCI: (0:1:0:0) 10de:0de9:144d:c0d1 rev 161, Mem @ 0xf6000000/16777216, 0xe0000000/268435456, 0xf0000000/33554432, I/O @ 0x0000e000/128, BIOS @ 0x????????/524288
[ 2327.501] (II) Open ACPI successful (/var/run/acpid.socket)
[ 2327.501] Initializing built-in extension Generic Event Extension
[ 2327.501] Initializing built-in extension SHAPE
[ 2327.501] Initializing built-in extension MIT-SHM
[ 2327.501] Initializing built-in extension XInputExtension
[ 2327.501] Initializing built-in extension XTEST
[ 2327.501] Initializing built-in extension BIG-REQUESTS
[ 2327.501] Initializing built-in extension SYNC
[ 2327.501] Initializing built-in extension XKEYBOARD
[ 2327.501] Initializing built-in extension XC-MISC
[ 2327.501] Initializing built-in extension SECURITY
[ 2327.501] Initializing built-in extension XINERAMA
[ 2327.501] Initializing built-in extension XFIXES
[ 2327.501] Initializing built-in extension RENDER
[ 2327.501] Initializing built-in extension RANDR
[ 2327.501] Initializing built-in extension COMPOSITE
[ 2327.501] Initializing built-in extension DAMAGE
[ 2327.501] Initializing built-in extension MIT-SCREEN-SAVER
[ 2327.501] Initializing built-in extension DOUBLE-BUFFER
[ 2327.501] Initializing built-in extension RECORD
[ 2327.501] Initializing built-in extension DPMS
[ 2327.501] Initializing built-in extension X-Resource
[ 2327.501] Initializing built-in extension XVideo
[ 2327.501] Initializing built-in extension XVideo-MotionCompensation
[ 2327.501] Initializing built-in extension SELinux
[ 2327.501] Initializing built-in extension XFree86-VidModeExtension
[ 2327.501] Initializing built-in extension XFree86-DGA
[ 2327.501] Initializing built-in extension XFree86-DRI
[ 2327.501] Initializing built-in extension DRI2
[ 2327.501] (II) LoadModule: "glx"
[ 2327.501] (II) Loading /usr/lib/nvidia-319/xorg/libglx.so
[ 2327.509] (II) Module glx: vendor="NVIDIA Corporation"
[ 2327.509] compiled for 4.0.2, module version = 1.0.0
[ 2327.509] Module class: X.Org Server Extension
[ 2327.509] (II) NVIDIA GLX Module 319.17 Thu Apr 25 21:41:50 PDT 2013
[ 2327.509] Loading extension GLX
[ 2327.509] (II) LoadModule: "nvidia"
[ 2327.509] (II) Loading /usr/lib/nvidia-319/xorg/nvidia_drv.so
[ 2327.509] (II) Module nvidia: vendor="NVIDIA Corporation"
[ 2327.509] compiled for 4.0.2, module version = 1.0.0
[ 2327.509] Module class: X.Org Video Driver
[ 2327.509] (II) LoadModule: "mouse"
[ 2327.509] (II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
[ 2327.510] (II) Module mouse: vendor="X.Org Foundation"
[ 2327.510] compiled for 1.12.99.903, module version = 1.7.2
[ 2327.510] Module class: X.Org XInput Driver
[ 2327.510] ABI class: X.Org XInput driver, version 18.0
[ 2327.510] (II) LoadModule: "kbd"
[ 2327.510] (WW) Warning, couldn't open module kbd
[ 2327.510] (II) UnloadModule: "kbd"
[ 2327.510] (II) Unloading kbd
[ 2327.510] (EE) Failed to load module "kbd" (module does not exist, 0)
[ 2327.510] (II) NVIDIA dlloader X Driver 319.17 Thu Apr 25 21:23:57 PDT 2013
[ 2327.510] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[ 2327.510] (--) using VT number 8
[ 2327.510] (EE) No devices detected.
[ 2327.510] (==) Matched intel as autoconfigured driver 0
[ 2327.510] (==) Matched intel as autoconfigured driver 1
[ 2327.510] (==) Matched vesa as autoconfigured driver 2
[ 2327.510] (==) Matched modesetting as autoconfigured driver 3
[ 2327.510] (==) Matched fbdev as autoconfigured driver 4
[ 2327.510] (==) Assigned the driver to the xf86ConfigLayout
[ 2327.510] (II) LoadModule: "intel"
[ 2327.510] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[ 2327.510] (II) Module intel: vendor="X.Org Foundation"
[ 2327.510] compiled for 1.13.2.902, module version = 2.21.6
[ 2327.510] Module class: X.Org Video Driver
[ 2327.510] ABI class: X.Org Video Driver, version 13.1
[ 2327.510] (II) LoadModule: "vesa"
[ 2327.510] (II) Loading /usr/lib/xorg/modules/drivers/vesa_drv.so
[ 2327.510] (II) Module vesa: vendor="X.Org Foundation"
[ 2327.510] compiled for 1.13.0, module version = 2.3.2
[ 2327.510] Module class: X.Org Video Driver
[ 2327.510] ABI class: X.Org Video Driver, version 13.0
[ 2327.510] (II) LoadModule: "modesetting"
[ 2327.510] (WW) Warning, couldn't open module modesetting
[ 2327.510] (II) UnloadModule: "modesetting"
[ 2327.510] (II) Unloading modesetting
[ 2327.510] (EE) Failed to load module "modesetting" (module does not exist, 0)
[ 2327.510] (II) LoadModule: "fbdev"
[ 2327.511] (II) Loading /usr/lib/xorg/modules/drivers/fbdev_drv.so
[ 2327.511] (II) Module fbdev: vendor="X.Org Foundation"
[ 2327.511] compiled for 1.12.99.903, module version = 0.4.3
[ 2327.511] Module class: X.Org Video Driver
[ 2327.511] ABI class: X.Org Video Driver, version 13.0
[ 2327.511] (II) LoadModule: "mouse"
[ 2327.511] (II) Loading /usr/lib/xorg/modules/input/mouse_drv.so
[ 2327.511] (II) Module mouse: vendor="X.Org Foundation"
[ 2327.511] compiled for 1.12.99.903, module version = 1.7.2
[ 2327.511] Module class: X.Org XInput Driver
[ 2327.511] ABI class: X.Org XInput driver, version 18.0
[ 2327.511] (II) LoadModule: "kbd"
[ 2327.511] (WW) Warning, couldn't open module kbd
[ 2327.511] (II) UnloadModule: "kbd"
[ 2327.511] (II) Unloading kbd
[ 2327.511] (EE) Failed to load module "kbd" (module does not exist, 0)
[ 2327.511] (II) NVIDIA dlloader X Driver 319.17 Thu Apr 25 21:23:57 PDT 2013
[ 2327.511] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[ 2327.511] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
i810-dc100, i810e, i815, i830M, 845G, 854, 852GM/855GM, 865G, 915G,
E7221 (i915), 915GM, 945G, 945GM, 945GME, Pineview GM, Pineview G,
965G, G35, 965Q, 946GZ, 965GM, 965GME/GLE, G33, Q35, Q33, GM45,
4 Series, G45/G43, Q45/Q43, G41, B43, B43, Clarkdale, Arrandale,
Sandybridge Desktop (GT1), Sandybridge Desktop (GT2),
Sandybridge Desktop (GT2+), Sandybridge Mobile (GT1),
Sandybridge Mobile (GT2), Sandybridge Mobile (GT2+),
Sandybridge Server, Ivybridge Mobile (GT1), Ivybridge Mobile (GT2),
Ivybridge Desktop (GT1), Ivybridge Desktop (GT2), Ivybridge Server,
Ivybridge Server (GT2), Haswell Desktop (GT1), Haswell Desktop (GT2),
Haswell Desktop (GT2+), Haswell Mobile (GT1), Haswell Mobile (GT2),
Haswell Mobile (GT2+), Haswell Server (GT1), Haswell Server (GT2),
Haswell Server (GT2+), Haswell SDV Desktop (GT1),
Haswell SDV Desktop (GT2), Haswell SDV Desktop (GT2+),
Haswell SDV Mobile (GT1), Haswell SDV Mobile (GT2),
Haswell SDV Mobile (GT2+), Haswell SDV Server (GT1),
Haswell SDV Server (GT2), Haswell SDV Server (GT2+),
Haswell ULT Desktop (GT1), Haswell ULT Desktop (GT2),
Haswell ULT Desktop (GT2+), Haswell ULT Mobile (GT1),
Haswell ULT Mobile (GT2), Haswell ULT Mobile (GT2+),
Haswell ULT Server (GT1), Haswell ULT Server (GT2),
Haswell ULT Server (GT2+), Haswell CRW Desktop (GT1),
Haswell CRW Desktop (GT2), Haswell CRW Desktop (GT2+),
Haswell CRW Mobile (GT1), Haswell CRW Mobile (GT2),
Haswell CRW Mobile (GT2+), Haswell CRW Server (GT1),
Haswell CRW Server (GT2), Haswell CRW Server (GT2+),
ValleyView PO board
[ 2327.511] (II) VESA: driver for VESA chipsets: vesa
[ 2327.511] (II) FBDEV: driver for framebuffer: fbdev
[ 2327.511] (++) using VT number 8
[ 2327.511] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
[ 2327.511] (WW) xf86OpenConsole: setsid failed: Operation not permitted
[ 2327.511] (II) intel(0): SNA compiled: xserver-xorg-video-intel 2:2.21.6+git20130502.5637c173-0ubuntu0sarvatt~quantal (Robert Hooker <sarvatt@ubuntu.com>)
[ 2327.512] (WW) Falling back to old probe method for vesa
[ 2327.512] (WW) Falling back to old probe method for fbdev
[ 2327.512] (II) Loading sub module "fbdevhw"
[ 2327.512] (II) LoadModule: "fbdevhw"
[ 2327.512] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[ 2327.512] (II) Module fbdevhw: vendor="X.Org Foundation"
[ 2327.512] compiled for 1.13.4, module version = 0.0.2
[ 2327.512] ABI class: X.Org Video Driver, version 13.1
[ 2327.512] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
[ 2327.512] (EE) intel(0): Failed to become DRM master.
[ 2327.512] (II) UnloadModule: "intel"
[ 2327.512] (EE) Screen(s) found, but none have a usable configuration.
[ 2327.512]
Fatal server error:
[ 2327.512] no screens found
[ 2327.512] (EE)
Please consult the The X.Org Foundation support
at http://wiki.x.org
for help.
[ 2327.512] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
[ 2327.512] (EE)
[ 2327.512] Server terminated with error (1). Closing log file
chippey@chipmunk-laptop ~ $ tail -100 /var/log/syslog
May 11 23:44:24 chipmunk-laptop LMU[3409]: 3409 DAEMONIZE: setting umask 0
May 11 23:44:24 chipmunk-laptop LMU[3409]: 3409 DAEMONIZE: session parent exiting
May 11 23:44:24 chipmunk-laptop LMU[3409]: exiting and supressing hooks: 0
May 11 23:44:24 chipmunk-laptop LMU[3410]: 3410 DAEMONIZE: session new session leader
May 11 23:44:24 chipmunk-laptop LMU[3410]: 3410 DAEMONIZE: tty disconnect parent exiting
May 11 23:44:24 chipmunk-laptop LMU[3411]: 3411 DAEMONIZE: tty disconnect child
May 11 23:44:24 chipmunk-laptop LMU[3411]: 3411 DAEMONIZE: closing file descriptors
May 11 23:44:24 chipmunk-laptop LMU[3411]: 3411 Execing /opt/Autodesk/Adlm/R7/bin/LMU
May 11 23:44:24 chipmunk-laptop LMU[3411]: 3411 with argument: LMU
May 11 23:44:24 chipmunk-laptop LMU[3411]: 3411 with argument: /var/tmp/LMU3321
May 11 23:44:26 chipmunk-laptop LMU[3410]: exiting and supressing hooks: 0
May 11 23:44:26 chipmunk-laptop kernel: [ 429.051529] ptrace of pid 3411 was attempted by: LMU (pid 3416)
May 11 23:49:51 chipmunk-laptop bumblebeed[3278]: Received Terminated signal.
May 11 23:49:51 chipmunk-laptop bumblebeed[3631]: /usr/sbin/bumblebeed 3.2.1 started
May 11 23:49:51 chipmunk-laptop kernel: [ 753.748015] bbswitch: disabling discrete graphics
May 11 23:49:51 chipmunk-laptop kernel: [ 753.763080] pci 0000:01:00.0: Refused to change power state, currently in D0
May 11 23:49:51 chipmunk-laptop kernel: [ 753.763866] pci 0000:01:00.0: power state changed by ACPI to D3cold
May 11 23:49:57 chipmunk-laptop kernel: [ 759.451298] bbswitch: enabling discrete graphics
May 11 23:49:57 chipmunk-laptop kernel: [ 759.608824] pci 0000:01:00.0: power state changed by ACPI to D0
May 11 23:49:57 chipmunk-laptop kernel: [ 759.625341] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=none,decodes=none:owns=none
May 11 23:49:57 chipmunk-laptop kernel: [ 759.625431] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 319.17 Thu Apr 25 22:45:49 PDT 2013
May 11 23:49:57 chipmunk-laptop acpid: client connected from 3649[0:1001]
May 11 23:49:57 chipmunk-laptop acpid: 1 client rule loaded
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE) No devices detected.
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (WW) Warning, couldn't open module modesetting
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE) Failed to load module "modesetting" (module does not exist, 0)
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (WW) xf86OpenConsole: setsid failed: Operation not permitted
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (WW) Falling back to old probe method for vesa
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (WW) Falling back to old probe method for fbdev
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE) intel(0): Failed to become DRM master.
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE) Screen(s) found, but none have a usable configuration.
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE)
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: [XORG] (EE)
May 11 23:49:57 chipmunk-laptop bumblebeed[3631]: X did not start properly
May 11 23:52:42 chipmunk-laptop bumblebeed[3631]: Received Terminated signal.
May 11 23:52:42 chipmunk-laptop bumblebeed[3758]: /usr/sbin/bumblebeed 3.2.1 started
May 11 23:52:42 chipmunk-laptop kernel: [ 925.162452] bbswitch: disabling discrete graphics
May 11 23:52:42 chipmunk-laptop kernel: [ 925.175406] pci 0000:01:00.0: Refused to change power state, currently in D0
May 11 23:52:42 chipmunk-laptop kernel: [ 925.176251] pci 0000:01:00.0: power state changed by ACPI to D3cold
May 11 23:52:53 chipmunk-laptop kernel: [ 935.580169] bbswitch: enabling discrete graphics
May 11 23:52:53 chipmunk-laptop kernel: [ 935.738612] pci 0000:01:00.0: power state changed by ACPI to D0
May 11 23:52:53 chipmunk-laptop kernel: [ 935.755221] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=none,decodes=none:owns=none
May 11 23:52:53 chipmunk-laptop kernel: [ 935.755308] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 319.17 Thu Apr 25 22:45:49 PDT 2013
May 11 23:52:53 chipmunk-laptop acpid: client 3649[0:1001] has disconnected
May 11 23:52:53 chipmunk-laptop acpid: client connected from 3774[0:1001]
May 11 23:52:53 chipmunk-laptop acpid: 1 client rule loaded
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) No devices detected.
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Warning, couldn't open module modesetting
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Failed to load module "modesetting" (module does not exist, 0)
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) xf86OpenConsole: setsid failed: Operation not permitted
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Falling back to old probe method for vesa
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Falling back to old probe method for fbdev
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) intel(0): Failed to become DRM master.
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Screen(s) found, but none have a usable configuration.
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE)
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: [XORG] (EE)
May 11 23:52:53 chipmunk-laptop bumblebeed[3758]: X did not start properly
May 12 00:00:01 chipmunk-laptop CRON[3837]: (root) CMD (/usr/lib/prey/prey.sh >/var/log/prey.log)
May 12 00:07:25 chipmunk-laptop acpid: client 3774[0:1001] has disconnected
May 12 00:07:25 chipmunk-laptop acpid: client connected from 3942[0:1001]
May 12 00:07:25 chipmunk-laptop acpid: 1 client rule loaded
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) No devices detected.
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Warning, couldn't open module modesetting
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Failed to load module "modesetting" (module does not exist, 0)
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) xf86OpenConsole: setsid failed: Operation not permitted
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Falling back to old probe method for vesa
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Falling back to old probe method for fbdev
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) intel(0): Failed to become DRM master.
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Screen(s) found, but none have a usable configuration.
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE)
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: [XORG] (EE)
May 12 00:07:25 chipmunk-laptop bumblebeed[3758]: X did not start properly
May 12 00:16:04 chipmunk-laptop acpid: client 3942[0:1001] has disconnected
May 12 00:16:04 chipmunk-laptop acpid: client connected from 4013[0:1001]
May 12 00:16:04 chipmunk-laptop acpid: 1 client rule loaded
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) No devices detected.
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Warning, couldn't open module modesetting
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Failed to load module "modesetting" (module does not exist, 0)
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) xf86OpenConsole: setpgid failed: Operation not permitted
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) xf86OpenConsole: setsid failed: Operation not permitted
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Falling back to old probe method for vesa
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (WW) Falling back to old probe method for fbdev
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) intel(0): [drm] failed to set drm interface version: Permission denied [13].
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) intel(0): Failed to become DRM master.
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Screen(s) found, but none have a usable configuration.
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE)
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE) Please also check the log file at "/var/log/Xorg.8.log" for additional information.
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: [XORG] (EE)
May 12 00:16:04 chipmunk-laptop bumblebeed[3758]: X did not start properly
May 12 00:17:01 chipmunk-laptop CRON[4022]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
May 12 00:20:01 chipmunk-laptop CRON[4040]: (root) CMD (/usr/lib/prey/prey.sh >/var/log/prey.log)
chippey@chipmunk-laptop ~ $ cat /etc/bumblebee/bumblebee.conf
# Configuration file for Bumblebee. Values should **not** be put between quotes
## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d
## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/x86_64-linux-gnu/primus:/usr/lib/i386-linux-gnu/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false
# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
# bbswitch - new in BB 3, recommended if available
# switcheroo - vga_switcheroo method, use at your own risk
# none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods
## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-319
PMMethod=auto
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia-319:/usr/lib32/nvidia-319
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia-319/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
chippey@chipmunk-laptop ~ $ cat /etc/bumblebee/xorg.conf.nvidia
Section "ServerLayout"
Identifier "Layout0"
Option "AutoAddDevices" "false"
Option "AutoAddGPU" "false"
EndSection
Section "Device"
Identifier "DiscreteNvidia"
Driver "nvidia"
VendorName "NVIDIA Corporation"
# If the X server does not automatically detect your VGA device,
# you can manually set it here.
# To get the BusID prop, run `lspci | egrep 'VGA|3D'` and input the data
# as you see in the commented example.
# This Setting may be needed in some platforms with more than one
# nvidia card, which may confuse the proprietary driver (e.g.,
# trying to take ownership of the wrong device). Also needed on Ubuntu 13.04.
# BusID "PCI:01:00:0"
# Setting ProbeAllGpus to false prevents the new proprietary driver
# instance spawned to try to control the integrated graphics card,
# which is already being managed outside bumblebee.
# This option doesn't hurt and it is required on platforms running
# more than one nvidia graphics card with the proprietary driver.
# (E.g. Macbook Pro pre-2010 with nVidia 9400M + 9600M GT).
# If this option is not set, the new Xorg may blacken the screen and
# render it unusable (unless you have some way to run killall Xorg).
Option "ProbeAllGpus" "false"
Option "NoLogo" "true"
Option "UseEDID" "false"
Option "UseDisplayDevice" "none"
EndSection
I use Arch Linux with the zen kernel. After doing system upgrades my dual GPU setup broke. I use bumblebee to handle dual GPUs.
When I run optirun glxgears I get the following output:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
[ERROR]Aborting because fallback start is disabled.
When I try opening the Nvidia-settings panel I get the following output:
ERROR: Unable to load info from any available system
My current Nvidia driver version is 495.44
And here is my bumblebee config if that helps:
/etc/bumblebee/bumblebee.conf
# Configuration file for Bumblebee. Values should **not** be put between quotes
## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=nvidia
# Directory with a dummy config file to pass as a -configdir to secondary X
XorgConfDir=/etc/bumblebee/xorg.conf.d
## Client options. Will take effect on the next optirun executed.
[optirun]
# Acceleration/ rendering bridge, possible values are auto, virtualgl and
# primus.
Bridge=auto
# The method used for VirtualGL to transport frames between X servers.
# Possible values are proxy, jpeg, rgb, xv and yuv.
VGLTransport=proxy
# List of paths which are searched for the primus libGL.so.1 when using
# the primus bridge
PrimusLibraryPath=/usr/lib/primus:/usr/lib32/primus
# Should the program run under optirun even if Bumblebee server or nvidia card
# is not available?
AllowFallbackToIGC=false
# Driver-specific settings are grouped under [driver-NAME]. The sections are
# parsed if the Driver setting in [bumblebeed] is set to NAME (or if auto-
# detection resolves to NAME).
# PMMethod: method to use for saving power by disabling the nvidia card, valid
# values are: auto - automatically detect which PM method to use
# bbswitch - new in BB 3, recommended if available
# switcheroo - vga_switcheroo method, use at your own risk
# none - disable PM completely
# https://github.com/Bumblebee-Project/Bumblebee/wiki/Comparison-of-PM-methods
## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia
PMMethod=bbswitch
# colon-separated path to the nvidia libraries
LibraryPath=/usr/lib/nvidia:/usr/lib32/nvidia:/usr/lib:/usr/lib32
# comma-separated path of the directory containing nvidia_drv.so and the
# default Xorg modules path
XorgModulePath=/usr/lib/nvidia/xorg,/usr/lib/xorg/modules
XorgConfFile=/etc/bumblebee/xorg.conf.nvidia
## Section with nouveau driver specific options, only parsed if Driver=nouveau
[driver-nouveau]
KernelDriver=nouveau
PMMethod=auto
XorgConfFile=/etc/bumblebee/xorg.conf.nouveau
If I’m missing something please let me know!
Thanks!
Содержание
Технология Optimus
Технологии Optimus была создана для оптимизации энергопотребления и увеличения времени работы ноутбука от батареи. Принцип работы технологии Optimus очень прост. Ноутбуки оснащаются двумя видеокартами: intel и nvidia. При использовании ресурсоёмких приложений или игр Nvidia «забирает» на себя работу по обработке изображения, результаты которые передает Intel для дальнейшего их вывода на экран. Когда вся работа с тяжелыми графическими приложениями завершена, видеокарта Nvidia выключается. И дальше обработкой изображения и его выводом занимается только видеокарта Intel.
В Windows поддержка технологии Optimus очень хорошо реализована и пользователю не надо думать когда стоит включать видеокарту Nvidia, т.к. она сама определяет когда нужна её «помощь» и включается. А вот в линуксе не все так просто. Nvidia не обеспечила линукс полной поддержкой данной технологии. Поэтому необходимо устанавливать и использовать дополнительные приложения, и включать видеокарту nvidia вручную при необходимости.
Поддержка технологии Optimus в основном началась с видеокарт серии 4ххМ (M = mobile мобильная). Если в вашем ноутбуке установлены 2 видеокарты: одна карта nvidia серии 4ххМ и новее и вторая карта intel, то скорее всего ваш ноутбук поддерживает технологию Optimus. Наличие видеокарт можно посмотреть в терминале командой:
lspci -vnn | grep '''[030[02]]'
Более точно ответить на вопрос «поддерживает ли ноутбук технологию Optimus» можно только посмотрев его техническую документацию.
Проект Bumblebee
Одно из приложений обеспечивающего поддержку технологии NVIDIA Optimus на ноутбуках с операционными системами GNU/Linux предоставляет проект Bumblebee. Используя Bumblebee вы можете дать команду видеокарте Nvidia заняться процессом обработки изображения, которое потом будет выведено через карту Intel. Когда nvidia не используется, у нее отключается питания, за счет чего уменьшается энергопотребление, ноутбук слабее нагревается и кулеры меньше шумят.
Данное wiki не рассказывает всех деталей установки и использовании bumblebee. Например, не рассматривается установка и использование bumblebee с открытым драйвером. Поэтому если вы хотите узнать больше информации, то можете посетить официальную англоязычную страницу wiki.
Полный комплект Bumblebee состоит из следующих компонентов:
-
bumblebee — основной пакет проекта bumblebee, содержит в себе команду optirun
-
bumblebee-nvidia — обеспечивает поддержку проприетарного драйвера nvidia
-
virtualgl — Бэкенд VirtualGL
-
virtualgl-libs — необходимые библиотеки для работы virtualgl
-
virtualgl-libs-ia32 — обеспечивает установку 32 битных библиотек для запуска 32 битных приложений через VirtualGL бэкенд
-
primus — Бэкенд Primus
-
primus-libs — необходимые библиотеки для работы primus
-
primus-libs-ia32 — обеспечивает установку 32 битных библиотек для запуска 32 битных приложений через Primus бэкенд
Bumblebee использует один из двух бэкендов для вывода изображения: virtualgl или primus. Самым первым появился virtualgl, который первоначально был задуман для использования передачи изображения по сети. Поэтому вывод изображения через virtualgl трудоёмкий (скопировать изображение, сжать, отправить по сети и вывести на монитор), но не смотря на это virtualgl более стабильный.
Затем был создан Primus, который использует более «прямой» подход для вывода изображения, копируя изображение прямо на вторую видеокарту. Из-за чего в теории использование Primus должно дать прирост производительности по сравнению с virtualgl, так как Primus не выполняет «лишних» действий.
Установка
В Ubuntu 12.04 установка bumblebee выполняется из стороннего репозитория. А вот начиная с Ubuntu 14.04 для установки bumblebee не обязательно использовать сторонние репозитории, все необходимые пакеты уже имеются в официальных репозиториях Ubuntu. Устанавливать проприетарный драйвер nVidia и bumblebee желательно одновременно.
В настоящее время пакет bumblebee поставляется совместно с primus. Чтобы установить virtualg необходимо подключать сторонний репозиторий или скачивать и устанавливать deb-пакеты с сайта http://sourceforge.net/projects/virtualgl/. Про установку bumblebee одновременно с primus и virtualg также рассказывается в разделе Установка драйвера nvidia и полного комплекта bumblebee используя репозитории.
Проекты Bumblebee и Nvidia Prime не совместимы между собой. Поэтому, чтобы правильно установить проприетарный драйвер nVidia и Bumblebee, удалите nvidia-prime или удостоверьтесь в его отсутствии:
sudo apt-get purge nvidia-prime
Также во время выполнения описанных ниже команд нельзя выполнять перезагрузку и выключать компьютер! Желательно сразу последовательно выполнить все шаги установки!
Ubuntu 12.04
Чтобы установить Bumblebee и проприетарный драйвер nVidia вам нужно открыть терминал Ctrl+Alt+T и выполнить следующее:
-
Обновить Ubuntu до 12.04.5:
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install --install-recommends linux-generic-lts-trusty xserver-xorg-lts-trusty libgl1-mesa-glx-lts-trusty
-
Добавить репозиторий с обновленным Bumblebee ppa:neon1ks/bumblebee:
sudo add-apt-repository ppa:neon1ks/bumblebee sudo apt-get update
-
Установить проприетарный драйвер nvidia 340.xx и bumblebee:
sudo apt-get install --install-recommends nvidia-340 nvidia-settings bumblebee bumblebee-nvidia primus
-
По желанию можно также установить пакет virtualgl:
sudo apt-get install --install-recommends virtualgl
Ubuntu 14.04
-
Обновить Ubuntu
sudo apt-get update sudo apt-get dist-upgrade
-
Добавить репозиторий с обновленным Bumblebee ppa:neon1ks/bumblebee:
sudo add-apt-repository ppa:neon1ks/bumblebee sudo apt-get update
-
Установить проприетарный драйвер nvidia 346 и bumblebee:
sudo apt-get install --install-recommends nvidia-346 nvidia-settings bumblebee bumblebee-nvidia primus
Можно вместо nvidia-346 указать драйвер nvidia-340, только использовать надо ядро 3.13 или 3.16 (на ядре 3.19 драйвер nvidia-340 не работает)
По желанию можно также установить пакет virtualgl:sudo apt-get install --install-recommends virtualgl
-
Если умеете, можете отредактировать конфиг. файл /etc/bumblebee/bumblebee.conf .
Ubuntu 16.04
Отключите в настройках текстового редактора gedit, функцию создания резервной копии перед сохранением. Если вы используете другой редактор, то удостоверьтесь, что он не делает резервные копии.
Установка описана в отдельной статье Bumblebee в Ubuntu 16.04 Xenial Xerus.
Установка или обновление драйвера nvidia из репозитория
Для обновления драйвера nvidia, просто установите новый драйвер поверх старого. Старый драйвер удалится автоматически.
-
Установленную версию драйвера можно узнать в меню настройках видеокарты NVIDIA:
optirun nvidia-settings -c :8
или выполнив команду
dpkg -l | grep "NVIDIA binary driver"
-
Для установки или обновления драйвера nvidia необходимо использовать сторонние репозитории ppa:graphics-drivers/ppa и ppa:neon1ks/bumblebee:
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-add-repository ppa:neon1ks/bumblebee sudo apt-get update sudo apt-get install --install-recommends nvidia-XXX nvidia-settings bumblebee bumblebee-nvidia primus sudo apt-get --purge autoremove
в примере XXX необходимо заменить на версию драйвера, например, nvidia-346. Список доступных драйверов можно посмотреть по ссылке https://launchpad.net/~graphics-drivers/+archive/ubuntu/ppa.
-
В заключение перезагружаем ноутбук.
Использование
Чтобы запустить приложение, используя видеокарту NVIDIA, откройте терминал и выполните команду:
optirun [options] <application> [application-parameters]
-
Пример запуска steam без дополнительных options (Если установлен virtualgl, то вывод изображения по умолчанию осуществляется через него)
optirun steam
-
Пример запуска steam через primus
optirun -b primus steam
-
Пример запуска steam через virtualgl
optirun -b virtualgl steam
-
Пример запуска steam игры Counter-Strike: Condition Zero
vblank_mode=0 optirun steam steam://rungameid/80
vblank_mode=0 — можно указывать по желанию, отключает вертикальную синхронизацию для увеличения производительности. Только хотим предупредить, что производительность увеличивается за счет снижения качества обработки, из-за чего могут возникать различные графические артефакты.
-
Пример запуска steam установленного в wine
WINEPREFIX="/home/user/.wine" optirun wine "/home/user/.wine/drive_c/Program Files/Steam/Steam.exe" -no-dwrite 2>/dev/null
здесь необходимо заменить user на имя вашего пользователя; -no-dwrite — используется, если steam не отображает текст; 2>/dev/null — это вывод потока ошибок (STDERR) в /dev/null, указывать не обязательно, но иногда помогает избавиться от подтормаживаний; после запуска steam — можно запускать там игры.
Дополнительные функции
-
Для получения списка доступных опций введите в терминале Ctrl+Alt+T:
optirun --help
-
Чтобы попасть в меню настройки видеокарты NVIDIA введите:
optirun nvidia-settings -c :8
-
Чтобы узнать активна или нет видеокарта NVIDIA введите:
optirun --status
-
Есть ещё один способ узнать активна ли видеокарта Nvidia в данный момент:
cat /proc/acpi/bbswitch
Если при выполнении команды получаете пустой вывод — значит имеется проблема, не работает bbswitch, а из-за него и сам bumblebee. Один из вариантов решения проблемы: установить другое ядро Linux. Пример установки ядра можно посмотреть в решении ошибки: Could not load GPU driver.
Устранение неисправностей
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected. [ERROR]Aborting because fallback start is disabled.
-
Ошибка «Cannot access secondary GPU» Если ваша карта не работает через optirun и при запуске приложения получаете ошибку
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected. [ERROR]Aborting because fallback start is disabled.
то вам нужно в настройках указать правильный BusID вашей Nvidia-карты. Выполните в терминале:
lspci | egrep 'VGA|3D'
Пример вывода данной команды:
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) 01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 630M] (rev ff)
Заменив все точки на двоеточия — номера впереди будут обозначать BusID видеокарт, в примере получаем следующий BusID для карты nvidia:
BusID 01:00:0
Дальше правим конфиг. файл xorg.conf.nvidia
sudo gedit /etc/bumblebee/xorg.conf.nvidia
В конфиг. файле приведен закомментированный пример указания BusID, по данному примеру указываем строчкой ниже правильный BusID (если номер BusID примера является правильным, то можно просто данную строчку раскомментировать, убрав ‘#’) В результате получится примерно следующее (в вашем случае номера могут быть другими):
# BusID "PCI:02:00:0" BusID "PCI:01:00:0"Если же вы используете свободный драйвер, то вместо xorg.conf.nvidia надо править xorg.conf.nouveau
sudo gedit /etc/bumblebee/xorg.conf.nouveau
В заключение перезагружаем ноут.
[ERROR]Cannot access secondary GPU - error: Could not load GPU driver [ERROR]Aborting because fallback start is disabled.
-
Данная ошибка возникает, если в системе не установлены заголовочные файлы ядра. В качестве решения предлагаем поискать и установить linux-headers для используемого в системе ядра в программе synaptic. Если же вы устанавливали ядро Linux вручную, доустановите заголовочный файл ядра или удалите установленное вами ядро.
-
Также ошибку Could not load GPU driver можно попробовать решить установкой другой версии ядра Linux. Например, в Ubuntu 14.04 можно установить linux 3.16 из 14.10 (Utopic) следующей командой:
sudo apt-get install --install-recommends linux-generic-lts-utopic xserver-xorg-lts-utopic libgl1-mesa-glx-lts-utopic libegl1-mesa-drivers-lts-utopic
Bumblebee status: Error (3.2.1): [XORG] (EE) Server terminated successfully (0). Closing log file.
-
Начиная с ubuntu 13.10 появился баг https://bugs.launchpad.net/ubuntu/+source/bumblebee/+bug/1230008, после выполнения любой программы через optirun или primusrun, команда
optirun --status
выдает ошибку
Bumblebee status: Error (3.2.1): [XORG] (EE) Server terminated successfully (0). Closing log file.
Но при этом, приложения всё равно будут запускаться через optirun. В качестве временного решения можно перезагружать демон bumblebeed
sudo service bumblebeed restart
Данный баг исправлен в последних версиях bumblebee
Failed to open VDPAU backend libvdpau_nvidia.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
-
Если при выполнении команды (или любой другой):
optirun nvidia-settings -c :8
вы получаете предупреждение:
Failed to open VDPAU backend libvdpau_nvidia.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога
то можно выполнить следующие команды (пример показан в случае драйвера nvidia-331, при использовании другой версии драйвера — замените «nvidia-331» на соответствующее вам значение):
sudo ln -s /usr/lib/nvidia-331/vdpau/libvdpau_nvidia.so.1 /usr/lib/libvdpau_nvidia.so sudo chmod u+s /usr/lib/libvdpau_nvidia.so
Если вы будете обновлять драйвер, то не забудьте после его обновления выполнить команду:
sudo rm /usr/lib/libvdpau_nvidia.so
и повторить приведенные выше действия.
Удаление
-
Если вы хотите полностью удалить Bumblebee со своего компьютера выполните следующие команды в терминале:
-
Удаление Bumblebee:
sudo apt-get purge bumblebee*
-
Можно удалить конфиги:
rm -r /etc/bumblebee
-
Удаление более не используемых пакетов:
sudo apt-get --purge autoremove
-
-
Чтобы удалить драйвер Nvidia:
-
sudo apt-get purge nvidia-*
-
sudo apt-get --purge autoremove
-
Поддержка
Часто задаваемые вопросы
-
В: Можно ли использовать только видеокарту Nvidia?
-
О: Нет. Видеокарта Nvidia отвечает только за обработку графических данных, выводом занимается видеокарта Intel.
-
В: У меня не работают эффекты рабочего стола (куб, вязкие окна).
-
О: Если у вас создался файл /etc/X11/xorg.conf при использовании nvidia-xconfig просто удалите его так как он не совместим с Optimus
sudo rm /etc/X11/xorg.conf
-
В: После установки bumblebee расход энергии остался такой же, как и до установки.
-
О: Убедитесь, что в параметрах загрузки ядра не стоят следующие функции.
noacpi, pci=noacpi, acpi=off
Чтобы проверить настройки ядра введите в терминале следующую команду
cat /proc/cmdline
-
В: В сведениях о системе — графика — неизвестно. Это нормально?
-
О: Вполне, вопрос напрямую не связан с bumblebee, просто нужно установить пакет mesa-utils. Откройте терминал и выполните команду
sudo apt-get install mesa-utils
и перезагрузите компьютер. После этого в сведениях о системе у вас появится Intel Sandy bridge (или иное название связанное с Intel). У всех обладателей видеокарт Intel в системе-графика стоит неизвестно до установки данного пакета.
Отправка багов и отчетов
Если вы столкнулись с какими-то трудностями, при использовании bumblebee, вы можете
-
Или (если вас попросят после общения в канале IRC) выполнить следующую команду в терминале для создание отчета об ошибке (баг-репорт)
sudo bumblebee-bugreport
Ссылки
См.также
Содержание
- Bumblebee
- Bumblebee: Optimus for Linux
- Installation
- Usage
- General usage
- Configuration
- Optimizing speed
- Using VirtualGL as bridge
- Primusrun
- Pvkrun
- Power management
- Default power state of NVIDIA card using bbswitch
- Enable NVIDIA card during shutdown
- Enable NVIDIA card after waking from suspend
- Multiple monitors
- Outputs wired to the Intel chip
- Output wired to the NVIDIA chip
- Multiple NVIDIA graphics cards or NVIDIA Optimus
- Troubleshooting
- [VGL] ERROR: Could not open display :8
- Xlib: extension «GLX» missing on display «:0.0»
- [ERROR]Cannot access secondary GPU: No devices detected
- NVIDIA(0): Failed to assign any connected display devices to X screen 0
- Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!)
- Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0))
- Could not load GPU driver
- NOUVEAU(0): [drm] failed to set drm interface version
- [ERROR]Cannot access secondary GPU — error: X did not start properly
- /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
- ERROR: ld.so: object ‘libdlfaker.so’ from LD_PRELOAD cannot be preloaded: ignored
- Fatal IO error 11 (Resource temporarily unavailable) on X server
- Video tearing
- Bumblebee cannot connect to socket
- Running X.org from console after login (rootless X.org)
- Using Primus causes a segmentation fault
- Primusrun mouse delay (disable VSYNC)
- Primus issues under compositing window managers
- Problems with bumblebee after resuming from standby
- Optirun does not work, no debug output
- Broken power management with kernel 4.8
- Lockup issue (lspci hangs)
- Discrete card always on and acpi warnings
- Screen 0 deleted because of no matching config section
- Erratic, unpredictable behaviour
- Discrete card always on and nvidia driver cannot be unloaded
- Discrete card is silently activated when EGL is requested by some application
- Framerate drops to 1 FPS after a fixed period of time
- Application cannot record screen
Bumblebee
Bumblebee is an effort to make NVIDIA Optimus enabled laptops work in GNU/Linux systems. Such feature involves two graphics cards with two different power consumption profiles plugged in a layered way sharing a single framebuffer.
Bumblebee: Optimus for Linux
Optimus Technology is a hybrid graphics implementation without a hardware multiplexer. The integrated GPU manages the display while the dedicated GPU manages the most demanding rendering and ships the work to the integrated GPU to be displayed. When the laptop is running on battery supply, the dedicated GPU is turned off to save power and prolong the battery life. It has also been tested successfully with desktop machines with Intel integrated graphics and an nVidia dedicated graphics card.
Bumblebee is a software implementation comprising two parts:
- Render programs off-screen on the dedicated video card and display it on the screen using the integrated video card. This bridge is provided by VirtualGL or primus (read further) and connects to a X server started for the discrete video card.
- Disable the dedicated video card when it is not in use (see the #Power management section)
It tries to mimic the Optimus technology behavior; using the dedicated GPU for rendering when needed and power it down when not in use. The present releases only support rendering on-demand, automatically starting a program with the discrete video card based on workload is not implemented.
Installation
Before installing Bumblebee, check your BIOS and activate Optimus (older laptops call it «switchable graphics») if possible (BIOS does not have to provide this option). If neither «Optimus» or «switchable» is in the BIOS, still make sure both GPUs will be enabled and that the integrated graphics (igfx) is initial display (primary display). The display should be connected to the onboard integrated graphics, not the discrete graphics card. If integrated graphics had previously been disabled and discrete graphics drivers installed, be sure to remove /etc/X11/xorg.conf or the conf file in /etc/X11/xorg.conf.d related to the discrete graphics card.
- bumblebee — The main package providing the daemon and client programs.
- mesa — An open-source implementation of the OpenGL specification.
- An appropriate version of the NVIDIA driver, see NVIDIA#Installation.
- Optionally install xf86-video-intel — Intel Xorg driver.
For 32-bit application support, enable the multilib repository and install:
- lib32-virtualgl — A render/display bridge for 32 bit applications.
- lib32-nvidia-utils or lib32-nvidia-340xx-utilsAUR (match the version of the regular NVIDIA driver).
In order to use Bumblebee, it is necessary to add your regular user to the bumblebee group:
Also enable bumblebeed.service . Reboot your system and follow #Usage.
Usage
Install mesa-utils and use glxgears to test if if Bumblebee works with your Optimus system:
If it fails, try the following commands:
If the window with animation shows up, Optimus with Bumblebee is working.
General usage
For example, start Windows applications with Optimus:
For another example, open NVIDIA Settings panel with Optimus:
For a list of all available options, see optirun(1) .
Configuration
You can configure the behaviour of Bumblebee to fit your needs. Fine tuning like speed optimization, power management and other stuff can be configured in /etc/bumblebee/bumblebee.conf
Optimizing speed
One disadvantage of the offscreen rendering methods is performance. The following table gives a raw overview of a Lenovo ThinkPad T480 in an eGPU setup with NVIDIA GTX 1060 6GB and unigine-heaven AUR benchmark (1920×1080, max settings, 8x AA):
| Command | Display | FPS | Score | Min FPS | Max FPS |
|---|---|---|---|---|---|
| optirun unigine-heaven | internal | 20.7 | 521 | 6.9 | 26.6 |
| primusrun unigine-heaven | internal | 36.9 | 930 | 15.3 | 44.1 |
| unigine-heaven | internal in Nvidia-xrun | 51.3 | 1293 | 8.4 | 95.6 |
| unigine-heaven | external in Nvidia-xrun | 56.1 | 1414 | 8.4 | 111.9 |
Using VirtualGL as bridge
Bumblebee renders frames for your Optimus NVIDIA card in an invisible X Server with VirtualGL and transports them back to your visible X Server. Frames will be compressed before they are transported — this saves bandwidth and can be used for speed-up optimization of bumblebee:
To use another compression method for a single application:
The method of compress will affect performance in the GPU/CPU usage. Compressed methods will mostly load the CPU. However, uncompressed methods will mostly load the GPU.
Here is a performance table tested with ASUS N550JV laptop and benchmark app unigine-heaven AUR :
| Command | FPS | Score | Min FPS | Max FPS |
|---|---|---|---|---|
| optirun unigine-heaven | 25.0 | 630 | 16.4 | 36.1 |
| optirun -c jpeg unigine-heaven | 24.2 | 610 | 9.5 | 36.8 |
| optirun -c rgb unigine-heaven | 25.1 | 632 | 16.6 | 35.5 |
| optirun -c yuv unigine-heaven | 24.9 | 626 | 16.5 | 35.8 |
| optirun -c proxy unigine-heaven | 25.0 | 629 | 16.0 | 36.1 |
| optirun -c xv unigine-heaven | 22.9 | 577 | 15.4 | 32.2 |
To use a standard compression for all applications, set the VGLTransport to compress-method in /etc/bumblebee/bumblebee.conf :
You can also play with the way VirtualGL reads back the pixels from your graphic card. Setting VGL_READBACK environment variable to pbo should increase the performance. Compare the following:
PBO should be faster:
The default value is sync:
Primusrun
primusrun (from primus ) is becoming the default choice, because it consumes less power and sometimes provides better performance than optirun / virtualgl . It may be run separately, but it does not accept options as optirun does. Setting primus as the bridge for optirun provides more flexibility.
For 32-bit applications support on 64-bit machines, install lib32-primus (multilib must be enabled).
You can either run it separately:
Or as a bridge for optirun. The default configuration sets virtualgl as the bridge. Override that on the command line:
Alternatively, set Bridge=primus in /etc/bumblebee/bumblebee.conf and you will not have to specify it on the command line.
Pvkrun
pvkrun from the package primus_vk is a drop-in replacement for primusrun that enables to run Vulkan-based applications. A quick check can be done with vulkaninfo from vulkan-tools .
Power management

The goal of the power management feature is to turn off the NVIDIA card when it is not used by Bumblebee any more. If bbswitch (for linux ) or bbswitch-dkms (for linux-lts or custom kernels) is installed, it will be detected automatically when the Bumblebee daemon starts. No additional configuration is necessary. However, bbswitch is for Optimus laptops only and will not work on desktop computers. So, Bumblebee power management is not available for desktop computers, and there is no reason to install bbswitch on a desktop. (Nevertheless, the other features of Bumblebee do work on some desktop computers.)
To manually turn the card on or off using bbswitch, write into /proc/acpi/bbswitch:
Default power state of NVIDIA card using bbswitch
The default behavior of bbswitch is to leave the card power state unchanged. bumblebeed does disable the card when started, so the following is only necessary if you use bbswitch without bumblebeed.
Set load_state and unload_state module options according to your needs (see bbswitch documentation).
To run bbswitch without bumblebeed on system startup, do not forget to add bbswitch to /etc/modules-load.d , as explained in Kernel module#systemd.
Enable NVIDIA card during shutdown
On some laptops, the NVIDIA card may not correctly initialize during boot if the card was powered off when the system was last shutdown. Therefore the Bumblebee daemon will power on the GPU when stopping the daemon (e.g. on shutdown) due to the (default) setting TurnCardOffAtExit=false in /etc/bumblebee/bumblebee.conf . Note that this setting does not influence power state while the daemon is running, so if all optirun or primusrun programs have exited, the GPU will still be powered off.
When you stop the daemon manually, you might want to keep the card powered off while still powering it on on shutdown. To achieve the latter, add the following systemd service (if using bbswitch ):
Then enable the nvidia-enable.service unit.
Enable NVIDIA card after waking from suspend
The bumblebee daemon may fail to activate the graphics card after suspending. A possible fix involves setting bbswitch as the default method for power management in /etc/bumblebee/bumblebee.conf :
If the above fix fails, try the following command:
To rescan the PCI bus automatically after a suspend, create a script as described in Power management#Hooks in /usr/lib/systemd/system-sleep.
Multiple monitors
Outputs wired to the Intel chip
If the port (DisplayPort/HDMI/VGA) is wired to the Intel chip, you can set up multiple monitors with xorg.conf. Set them to use the Intel card, but Bumblebee can still use the NVIDIA card. One example configuration is below for two identical screens with 1080p resolution and using the HDMI out.
You need to probably change the BusID for both the Intel and the NVIDIA card.
The BusID is 0:2:0. Note that lspci outputs hexadecimal values, but Xorg expects decimal values.
Output wired to the NVIDIA chip
On some notebooks, the digital Video Output (HDMI or DisplayPort) is hardwired to the NVIDIA chip. If you want to use all the displays on such a system simultaneously, the easiest solution is to use intel-virtual-output, a tool provided in the xf86-video-intel driver set, as of v2.99. It will allow you to extend the existing X session onto other screens, leveraging virtual outputs to work with the discrete graphics card. Usage is as follows:
If this command alone does not work, you can try running it with optirun to enable the discrete graphics and allow it to detect the outputs accordingly. This is known to be necessary on Lenovo’s Legion Y720.
If no target displays are parsed on the commandline, intel-virtual-output will attempt to connect to any local display. The detected displays will be manageable via any desktop display manager such as xrandr or KDE Display. The tool will also start bumblebee (which may be left as default install). See the Bumblebee wiki page for more information.
When run in a terminal, intel-virtual-output will daemonize itself unless the -f switch is used. Games can be run on the external screen by first exporting the display export DISPLAY=:8 , and then running the game with optirun game_bin , however, cursor and keyboard are not fully captured. Use export DISPLAY=:0 to revert back to standard operation.
If intel-virtual-output does not detect displays, or if a no VIRTUAL outputs on «:0» message is obtained, then create:
which does exist by default, and:
See [3] for further configurations to try. If the laptop screen is stretched and the cursor is misplaced while the external monitor shows only the cursor, try killing any running compositing managers.
If you do not want to use intel-virtual-output, another option is to configure Bumblebee to leave the discrete GPU on and directly configure X to use both the screens, as it will be able to detect them.
As a last resort, you can run 2 X Servers. The first will be using the Intel driver for the notebook’s screen. The second will be started through optirun on the NVIDIA card, to show on the external display. Make sure to disable any display/session manager before manually starting your desktop environment with optirun. Then, you can log in the integrated-graphics powered one.
Disabling screen blanking
You can disable screen blanking when using intel-virtual-output with xset by setting the DISPLAY environment variable appropriately (see DPMS for more info):
Multiple NVIDIA graphics cards or NVIDIA Optimus
If you have multiple NVIDIA graphics cards (eg. when using an eGPU with a laptop with another built in NVIDIA graphics card) or NVIDIA Optimus, you need to make a minor edit to /etc/bumblebee/xorg.conf.nvidia . If this change is not made the daemon may default to using the internal NVIDIA card.
First, determine the BusID of the external card:
In this case, the BusID is 0b:00.0 .
Now edit /etc/bumblebee/xorg.conf.nvidia and add the following line to Section «Device» :
Troubleshooting
[VGL] ERROR: Could not open display :8
There is a known problem with some wine applications that fork and kill the parent process without keeping track of it (for example the free to play online game «Runes of Magic»).
This is a known problem with VirtualGL. As of bumblebee 3.1, so long as you have it installed, you can use Primus as your render bridge:
If this does not work, an alternative walkaround for this problem is:
If using NVIDIA drivers a fix for this problem is to edit /etc/bumblebee/xorg.conf.nvidia and change Option ConnectedMonitor to CRT-0 .
Xlib: extension «GLX» missing on display «:0.0»
If you tried to install the NVIDIA driver from NVIDIA website, this is not going to work.
- Uninstall that driver in the similar way:
- Remove the Xorg configuration file generated by NVIDIA:
- (Re)install the correct NVIDIA driver: See #Installation.
[ERROR]Cannot access secondary GPU: No devices detected
In some instances, running optirun will return:
In this case, you will need to move the file /etc/X11/xorg.conf.d/20-intel.conf to somewhere else, restart the bumblebeed daemon and it should work. If you do need to change some features for the Intel module, a workaround is to merge /etc/X11/xorg.conf.d/20-intel.conf to /etc/X11/xorg.conf .
It could be also necessary to comment the driver line in /etc/X11/xorg.conf.d/10-monitor.conf .
If you are using the nouveau driver you could try switching to the nvidia driver.
You might need to define the NVIDIA card somewhere (e.g. file /etc/bumblebee/xorg.conf.nvidia ), using the correct BusID according to lspci output:
Observe that the format of lspci output is in HEX, while in xorg it is in decimals. So if the output of lspci is, for example, 0a:00.0 the BusID should be PCI:10:0:0 .
NVIDIA(0): Failed to assign any connected display devices to X screen 0
If the console output is:
If the following line in /etc/bumblebee/xorg.conf.nvidia does not exist, you can add it to the «Device» section:
If it does already exist, you can try changing it to:
After that, restart the Bumblebee service to apply these changes.
Failed to initialize the NVIDIA GPU at PCI:1:0:0 (GPU fallen off the bus / RmInitAdapter failed!)
Add rcutree.rcu_idle_gp_delay=1 to the kernel parameters of the bootloader configuration (see also the original BBS post for a configuration example).
Failed to initialize the NVIDIA GPU at PCI:1:0:0 (Bumblebee daemon reported: error: [XORG] (EE) NVIDIA(GPU-0))
You might encounter an issue when after resume from sleep, primusrun or optirun command does not work anymore. there are two ways to fix this issue — reboot your system or execute the following command:
And try to test if primusrun or optirun works.
If the above command did not help, try finding your NVIDIA card’s bus ID:
For example, above command showed 01:00.0 so we use following commands with this bus ID:
Could not load GPU driver
If the console output is:
and if you try to load the nvidia module:
This could be because the nvidia driver is out of sync with the Linux kernel, for example if you installed the latest nvidia driver and have not updated the kernel in a while. A full system update , followed by a reboot into the updated kernel, might resolve the issue. If the problem persists you should try manually compiling the nvidia packages against your current kernel, for example with nvidia-dkms or by compiling nvidia from the ABS.
NOUVEAU(0): [drm] failed to set drm interface version
Consider switching to the official nvidia driver. As commented here, nouveau driver has some issues with some cards and bumblebee.
[ERROR]Cannot access secondary GPU — error: X did not start properly
Set the «AutoAddDevices» option to «true» in /etc/bumblebee/xorg.conf.nvidia (see here):
/dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
This could be worked around by appending following lines in /etc/bumblebee/xorg.conf.nvidia (see here):
ERROR: ld.so: object ‘libdlfaker.so’ from LD_PRELOAD cannot be preloaded: ignored
You probably want to start a 32-bit application with bumblebee on a 64-bit system. See the «For 32-bit. » section in #Installation. If the problem persists or if it is a 64-bit application, try using the primus bridge.
Fatal IO error 11 (Resource temporarily unavailable) on X server
Change KeepUnusedXServer in /etc/bumblebee/bumblebee.conf from false to true . Your program forks into background and bumblebee do not know anything about it.
Video tearing
Video tearing is a somewhat common problem on Bumblebee. To fix it, you need to enable vsync. It should be enabled by default on the Intel card, but verify that from Xorg logs. To check whether or not it is enabled for NVIDIA, make sure nvidia-settings is installed and run:
X Server XVideo Settings -> Sync to VBlank and OpenGL Settings -> Sync to VBlank should both be enabled. The Intel card has in general less tearing, so use it for video playback. Especially use VA-API for video decoding (e.g. mplayer-vaapi and with -vsync parameter).
Refer to Intel#Tearing on how to fix tearing on the Intel card.
If it is still not fixed, try to disable compositing from your desktop environment. Try also disabling triple buffering.
Bumblebee cannot connect to socket
You might get something like:
If you are already in the bumblebee group ( groups | grep bumblebee ), you may try removing the socket /var/run/bumblebeed.socket .
Another reason for this error could be that you have not actually turned on both GPUs in your BIOS, and as a result, the Bumblebee daemon is in fact not running. Check the BIOS settings carefully and be sure Intel graphics (integrated graphics — may be abbreviated in BIOS as something like igfx) has been enabled or set to auto, and that it is the primary GPU. Your display should be connected to the onboard integrated graphics, not the discrete graphics card.
If you mistakenly had the display connected to the discrete graphics card and Intel graphics was disabled, you probably installed Bumblebee after first trying to run NVIDIA alone. In this case, be sure to remove the /etc/X11/xorg.conf or /etc/X11/xorg.conf.d/20-nvidia.conf configuration files. If Xorg is instructed to use NVIDIA in a configuration file, X will fail.
Running X.org from console after login (rootless X.org)
Using Primus causes a segmentation fault
In some instances, using primusrun instead of optirun will result in a segfault. This is caused by an issue in code auto-detecting faster upload method, see FS#58933.
The workaround is skipping auto-detection by manually setting PRIMUS_UPLOAD environment variable to either 1 or 2, depending on which one is faster on your setup.
Primusrun mouse delay (disable VSYNC)
For primusrun , VSYNC is enabled by default and as a result, it could make mouse input delay lag or even slightly decrease performance. Test primusrun with VSYNC disabled:
If you are satisfied with the above setting, create an alias (e.g. alias primusrun=»vblank_mode=0 primusrun» ).
| VSYNC enabled | FPS | Score | Min FPS | Max FPS |
|---|---|---|---|---|
| FALSE | 31.5 | 793 | 22.3 | 54.8 |
| TRUE | 31.4 | 792 | 18.7 | 54.2 |
Primus issues under compositing window managers
Since compositing hurts performance, invoking primus when a compositing WM is active is not recommended.[4] If you need to use primus with compositing and see flickering or bad performance, synchronizing primus’ display thread with the application’s rendering thread may help:
This makes primus display the previously rendered frame.
Problems with bumblebee after resuming from standby
In some systems, it can happens that the nvidia module is loaded after resuming from standby. One possible solution for this is to install the acpi_call and acpi package.
Optirun does not work, no debug output
Users are reporting that in some cases, even though Bumblebee was installed correctly, running
gives no output at all, and the glxgears window does not appear. Any programs that need 3d acceleration crashes:
Apparently it is a bug of some versions of virtualgl. So a workaround is to install primus and lib32-primus and use it instead:
By default primus locks the framerate to the vrate of your monitor (usually 60 fps), if needed it can be unlocked by passing the vblank_mode=0 environment variable.
Usually there is no need to display more frames han your monitor can handle, but you might want to for benchmarking or to have faster reactions in games (e.g., if a game need 3 frames to react to a mouse movement with vblank_mode=0 the reaction will be as quick as your system can handle, without it will always need 1/20 of second).
You might want to edit /etc/bumblebee/bumblebee.conf to use the primus render as default. If after an update you want to check if the bug has been fixed just use optirun -b virtualgl .
See this forum post for more information.
Broken power management with kernel 4.8

If you have a newer laptop (BIOS date 2015 or newer), then Linux 4.8 might break bbswitch (bbswitch issue 140) since bbswitch does not support the newer, recommended power management method. As a result, the GPU may fail to power on, fail to power off or worse.
As a workaround, add pcie_port_pm=off to your Kernel parameters.
Alternatively, if you are only interested in power saving (and perhaps use of external monitors), remove bbswitch and rely on Nouveau runtime power-management (which supports the new method).
Lockup issue (lspci hangs)
See NVIDIA Optimus#Lockup issue (lspci hangs) for an issue that affects new laptops with a GTX 965M (or alike).
Discrete card always on and acpi warnings
Add acpi_osi=Linux to your Kernel parameters. See [6] and [7] for more information.
Screen 0 deleted because of no matching config section
Modify the configuration as follows:
Erratic, unpredictable behaviour
If Bumblebee starts/works in a random manner, check that you have set your Network configuration#Local network hostname resolution (details here).
Discrete card always on and nvidia driver cannot be unloaded
Make sure nvidia-persistenced.service is disabled and not currently active. It is intended to keep the nvidia driver running at all times [8], which prevents the card being turned off.
Discrete card is silently activated when EGL is requested by some application
If the discrete card is activated by some program (e.g. mpv with its GPU backend), it might stays on. The problem might be libglvnd which is loading the nvidia drivers and activating the card.
To disable this set environment variable __EGL_VENDOR_LIBRARY_FILENAMES (see documentation) to only load mesa configuration file:
nvidia-utils (and its branches) is installing the configuration file at /usr/share/glvnd/egl_vendor.d/10_nvidia.json which has priority and causes libglvnd to load the nvidia drivers and enable the card.
The other solution is to avoid installing the configuration file provided by nvidia-utils .
Framerate drops to 1 FPS after a fixed period of time
With the nvidia 440.36 driver, the DPMS setting is enabled by default resulting in a timeout after a fixed period of time (e.g. 10 minutes) which causes the frame rate to throttle down to 1 FPS. To work around this, add the following line to the «Device» section in /etc/bumblebee/xorg.conf.nvidia
Application cannot record screen
Using Bumblebee, applications cannot access the screen to identify and record it. This happens, for example, using obs-studio with NVENC activated. To solve this, disable the bridging mode with optirun -b none command .
Источник
Translation(s): English — Français — Italiano — español — Русский — Brasileiro
Contents
-
Проект Bumblebee
-
Установка
- Из репозитория
- Сборка из исходного кода
- После установочные действия
- Использование
- Управление электропитанием
- IRC
-
Как сообщить об ошибке/проблемах
- Общие вопросы
- Справочные материалы
-
Установка
Bumblebee нацелен на обеспечение поддержки ноутбуков с технологией NVIDIA Optimus для дистрибутивов GNU/Linux. С помощью Bumblebee, вы можете использовать графический адаптер NVIDIA для отрисовки графики, которая будет отображаться с помощью встроенного графического адаптера Intel.
Инструкции на этой странице относится к Debian Wheezy и новее. Debian Squeeze и предыдущие выпуски не поддерживаются.
Для пользователей более новых версий, чем Wheezy, пакеты Bumblebee доступны непосредственно из репозиториев Debian, в соответствии с разделом Установка. Таким образом, установка bumblebee или bumblebee-nvidia, и primus стала еще проще.
Для пользователей Wheezy, пакеты Bumblebee доступны в wheezy-backports. Следуйте инструкциям на этой странице, чтобы добавить бэкпорт-репозитории в ваш sources.list (убедитесь, что вы также добавили wheezy-backports’ contrib репозиторий в sources.list, например deb http://YOURMIRROR.debian.org/debian wheezy-backports main contrib non-free), затем установите bumblebee или bumblebee-nvidia и primus. Обратитесь к разделу Установка ниже.
Установка
Из репозитория
Пользователи более новых версий, чем Wheezy, могут установить все это непосредственно из официальных репозиториев.
Пользователям, желающим использовать свободный драйвер nouveau:
sudo apt-get install bumblebee primus
Пользователям, желающим использовать проприетарный драйвер nvidia (потребуется активировать разделы contrib и non-free в sources.list):
sudo apt-get install bumblebee-nvidia primus
Пользователи 64-разрядной систем, которые желают воспользоваться преимуществами Bumblebee с бэкендом primus при запуске 32-разрядных приложений, также захотят установить primus-libs:i386. Это потребует наличие поддержки Multiarch.
sudo dpkg —add-architecture i386 && sudo apt-get update && sudo apt-get install bumblebee-nvidia primus primus-libs:i386
Пользователи Wheezy могут установить все это непосредственно из бэкпортов:
sudo apt-get install -t wheezy-backports bumblebee primus
- -или-
sudo apt-get install -t wheezy-backports bumblebee-nvidia primus
- -или-
sudo dpkg —add-architecture i386 && sudo apt-get update && sudo apt-get install -t wheezy-backports bumblebee-nvidia primus primus-libs:i386
Примечание wheezy-backports больше не добавляет новые xserver-xorg-video-intel пакеты, которые нужны для новых видеокарт intel. If you find yourself stuck with the fbdev or vesa driver then you’ll need to upgrade to a newer version.
Важно: Если вы выберете установку bumblebee-nvidia и зависимые пакеты драйвера nvidia, то вы увидете предупреждение о том, что нужно создать файл xorg.conf, для использования проприетарного драйвера. Это приглашение относится только к не-Оптимус пользователей, т.е. у кого одна видеокарта Nvidia. НЕ разрешайте debconf создавать файл xorg.conf, и НЕ запускайте 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.)
Сборка из исходного кода
Обратитесь к Bumblebee/ManualInstall. Эти инструкции приведены только для исторической справки и не рекомендуются к использованию, так как пакеты уже доступны в репозиториях.
После установочные действия
Чтобы использовать optirun, вы должны добавить вашего пользователя в группу bumblebee.
sudo adduser $USER bumblebee
Где $USER соответствует вашему имени в системе. Не забудьте выйти из и снова зайти в систему чтобы изменения вступили в силу.
Если у вас есть sudo и он сконфигурирован для вашего пользователя, т.е. пользователь является членом группы sudo, то этот шаг не обязателен (пакет bumblebee, использует скрипт postinst, который автоматически добавляет пользователей группы sudo в группу bumblebee). Возможно поэтому Bumblebee работает «из коробки» в Ubuntu, но не работает в Debian, т.к. в Ubuntu sudo установлен по умолчанию, а в Debian нет. Уточнение, sudo не нужен для использования bumblebee; он просто делает не нужной добавления пользователя в группу bumblebee.
Использование
Для запуска приложения с помощью дискретного адаптера NVIDIA запустите в терминале:
-
$ optirun [options] <application> [application-parameters]
Пример:
-
$ optirun glxgears -info
Для получения списка опций для optirun откройте страницу руководства с помощью man optirun или запустите:
-
$ optirun —help
Управление электропитанием
Основная цель этого проекта заключается не только в том, чтобы сделать возможным использование дискретного графического адаптера для отрисовки графики, но и для того, чтобы активировать умное управление электропитанием дискретной графики в состоянии неактивности. Мы используем либо bbswitch (модуль) либо vga_switcheroo (модуль ядра, экспериментальный).
Пакет bbswitch имеется в репозиториях Debian и устанавливается автоматически, при установке Bumblebee.
Начиная с версии Bumblebee 3.0, данная функция включена по умолчанию, используется bbswitch. Это позволяет автоматически управлять электропитанием, без каких-либо требований к конфигурации. Если управление электропитанием не функционирует на вашем ноутбуке, перейдите на страницу Управление электропитанием (PM) и помогите нам улучшить Bumblebee.
IRC
Если у вас есть какие-либо вопросы, присоединяйтесь к нам на #bumblebee в сети Freenode.
Как сообщить об ошибке/проблемах
Прежде всего: Если вы с столкнулись с какой-либо проблемой, прочтите статью Поиск и устранение неполадок. Если ваша проблема не решена, вы можете присоединиться к нам на IRC канал #bumblebee и попросить помочь (рекомендуется). См. также http://wiki.Bumblebee-Project.org/Reporting-Issues
На вопрос о создании отчета об ошибке, выполните команду sudo bumblebee-bugreport в терминале
Общие вопросы
— Если optirun возвращает следующую ошибку: [ERROR]Cannot access secondary GPU — error: Could not load GPU driver
Вам необходимо отредактировать файл конфигурации /etc/bumblebee/bumblebee.conf используя предпочитаемый текстовый редактор и изменить параметр «KernelDriver=nvidia» на «KernelDriver=nvidia-current», затем перезапустить, к примеру, демон bumblebee.
sudo service bumblebeed restart
(Обратитесь к Debian Bug 717687 для получения краткого объяснения)
— Если optirun возвращает следующую ошибку: [ERROR]Cannot access secondary GPU — error: [XORG] (EE) No devices detected
Вам необходимо указать идентификатор шины графического адаптера (далее — BusID) вручную, в файле /etc/bumblebee/xorg.conf.nvidia. Чтобы узнать необходимый BusID, запустите команду lspci | egrep ‘VGA|3D’ в терминале. Обратитесь к комментариям в этом файле для получения дальнейших инструкций.
— 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.
— Если optirun выдает ошибку и dmesg сообщает о том, что шина вашего графического адаптера отключилась, выдав «fallen off the bus» на ядре Linux >= 3.10, придерживайтесь более старой версии ядра (<= 3.9), или добавьте rcutree.rcu_idle_gp_delay=1 в командную строку grub (в файле /etc/default/grub), затем выполните update-grub и reboot) в качестве временного исправления.
Это известная проблема и предположительно связана с проприетарным драйвером NVIDIA. Обратитесь к гит-репозиторию Bumblebee
-
issue #455.
Справочные материалы
-
Bumblebee
-
https://github.com/Bumblebee-Project/Bumblebee/wiki/Install-and-usage
-
NvidiaGraphicsDrivers
-
http://Bumblebee-Project.org/
CategoryHardware
Contents
- Bumblebee Project
-
Installation
- Setup for 12.04
- Setup for 14.04 and later
- Advanced Setups
- Usage
- Power Management
-
Updating drivers
- Update to nvidia-319 driver
- CUDA
- Uninstall PPA
-
Troubleshooting
- «Cannot access secondary GPU» error
- Error running 32-bit applications on a 64-bit system
- Reporting bugs/problems
- IRC
- Social Media
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. Bumblebee is officially supported by Ubuntu in 14.04 newer. However, all releases are supported by the Bumblebee Project community from Ubuntu version 12.04 up to 14.04.
Installation
Setup for 12.04
You need to open your terminal and enter the commands below.
If on 12.04.5, replace linux-headers-generic with linux-headers-generic-lts-trusty.
-
Enable the Universe and Multiverse repositories in order to allow the bumblebee and nvidia packages to be installed:
sudo add-apt-repository ppa:bumblebee/stable sudo apt-get update
-
Install Bumblebee using the default proprietary nvidia driver for 12.04:
sudo apt-get install bumblebee bumblebee-nvidia virtualgl linux-headers-generic
- Reboot.
Setup for 14.04 and later
You need to open your terminal and enter the commands below.
-
Enable the Universe and Multiverse repositories in order to allow the bumblebee and nvidia packages to be installed:
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
- Reboot.
Advanced Setups
For advanced users, if you do not want to use the proprietary nvidia driver or 32-bit libraries (for example, if you are only interested in power savings), you can do a custom installation:
sudo apt-get install --no-install-recommends bumblebee
Depending on your needs, also install:
-
bumblebee-nvidia: proprietary nvidia driver support (if installed, become default over nouveau).
-
virtualgl: VirtualGL as backend.
-
virtualgl-libs-ia32: 32bit support for VirtualGL on 64bit system, necessary to run 32bit app through optirun.
-
primus: primus/primusrun as backend (virtualgl Stays default, you need to run optirun -b primus <app>).
-
primus-libs-ia32: 32bit support for primus/primurun on 64bit system, necessary to run 32bit app through optirun.
Usage
To run your application with the discrete NVIDIA card run in the terminal:
optirun [options] <application> [application-parameters]
For example:
optirun firefox
For a list of options for optirun execute:
optirun --help
Normally you do not use optirun for your window manager, installations, or other non-graphic, resource intensive programs. The optirun command is mainly used for graphic demanding programs (ex. games).
Power Management
A primary goal of this project is to not only enable use of the discrete GPU (dGPU) 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) to do this in Bumblebee.
Since Bumblebee 3.0, this feature is enabled by default, using bbswitch. This allow automatic power management, without any manual configuration required.
If Power Management doesn’t work on your laptop, please go to this Power Management (PM) page and help to improve Bumblebee.
Updating drivers
The Bumblebee project recommends you install drivers only through APT and not drivers provided by nvidia.com directly. With that said, whenever you update your drivers through supported repositories, you need to setup the correct config values in /etc/bumblebee/bumblebee.conf. See also this FAQ on github.
Update to nvidia-319 driver
To update to the latest update of 319.x driver, you need to install it through apt:
sudo apt-get install nvidia-319-updates nvidia-settings-319-updates
Then you need to edit /etc/bumblebee/bumblebee.conf and set:
Driver=nvidia KernelDriver=nvidia-319-updates LibraryPath=/usr/lib/nvidia-319-updates:/usr/lib32/nvidia-319-updates XorgModulePath=/usr/lib/nvidia-319-updates/xorg,/usr/lib/xorg/modules
by running either:
optirun nvidia-settings
or:
optirun -b none nvidia-settings -c
CUDA
There is sometimes confusion about CUDA. You don’t need Bumblebee to run CUDA. Follow the How-to to get CUDA working under Ubuntu.
There is however a new feature (—no-xorg option for optirun) in Bumblebee 3.2, which makes it possible to run CUDA / OpenCL applications that does not need the graphics rendering capabilities.
Uninstall PPA
If you’re unsatisfied with Bumblebee, you can remove it.
sudo apt-get install ppa-purge sudo ppa-purge ppa:bumblebee/stable
If you want to keep some programs from the bumblebee repository, you can also suffice by removing Bumblebee only (including its dependencies):
sudo apt-get purge bumblebee sudo apt-get --purge autoremove
Troubleshooting
«Cannot access secondary GPU» error
In LTS 12.04.5 and later, if your card seems to be inaccessible:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected.
you need to edit the /etc/bumblebee/xorg.conf.nvidia (or /etc/bumblebee/xorg.conf.nouveau if using the noveau driver) and specify the correct BusID by following the instructions therein.
Error running 32-bit applications on a 64-bit system
If you’re using a 64-bit system and 32-bit applications fail to run because libGL.so.1 is not found, then your system is probably not correctly configured to use the 32-bit Mesa GL libraries. To fix this:
-
Ensure that the package libgl1-mesa-glx:i386 is installed.
You can run the following command to check that:apt-cache policy libgl1-mesa-glx:i386
- Do one of the following:
-
Reinstall bumblebee-nvidia by running the following command in a terminal:
sudo apt-get install --reinstall bumblebee-nvidia
This is the easiest solution.
- Configure the system to correctly use the 32-bit Mesa GL libraries.
-
Open a terminal and run:
sudo update-alternatives --config i386-linux-gnu_gl_conf
Something like this will be displayed:
Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/lib/nvidia-331/alt_ld.so.conf 8604 auto mode 1 /usr/lib/i386-linux-gnu/mesa/ld.so.conf 500 manual mode 2 /usr/lib/nvidia-331-prime/alt_ld.so.conf 8603 manual mode 3 /usr/lib/nvidia-331/alt_ld.so.conf 8604 manual mode Press enter to keep the current choice[*], or type selection number:
- Select the option /usr/lib/i386-linux-gnu/mesa/ld.so.conf
In the above case, you would enter 1.
-
Run:
sudo ldconfig
-
-
Reporting bugs/problems
First, if you have any problem, please read http://wiki.Bumblebee-Project.org/Troubleshooting. If your issue is not solved, it is recommended to join the #bumblebee IRC channel to ask for help. See also http://wiki.Bumblebee-Project.org/Reporting-Issues.
If you’re asked to create a bugreport, run the next command in a terminal:
sudo bumblebee-bugreport
IRC
Please join #bumblebee channel on Freenode if you wish to help testing and creating the installer.
Follow us on: Facebook, Twitter and Google+.
CategoryHardware
