Содержание
Технология 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 не используется, у нее отключается питания, за счет чего уменьшается энергопотребление, ноутбук слабее нагревается и кулеры меньше шумят.
 Одно из приложений обеспечивающего поддержку технологии NVIDIA Optimus на ноутбуках с операционными системами GNU/Linux предоставляет проект Bumblebee. Используя Bumblebee вы можете дать команду видеокарте Nvidia заняться процессом обработки изображения, которое потом будет выведено через карту Intel. Когда nvidia не используется, у нее отключается питания, за счет чего уменьшается энергопотребление, ноутбук слабее нагревается и кулеры меньше шумят.
Полный комплект 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 используя репозитории.
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
Установка описана в отдельной статье 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 через primusoptirun -b primus steam 
- Пример запуска steam через virtualgloptirun -b virtualgl steam 
- Пример запуска steam игры Counter-Strike: Condition Zerovblank_mode=0 optirun steam steam://rungameid/80 vblank_mode=0 - можно указывать по желанию, отключает вертикальную синхронизацию для увеличения производительности. Только хотим предупредить, что производительность увеличивается за счет снижения качества обработки, из-за чего могут возникать различные графические артефакты. 
- Пример запуска steam установленного в wineWINEPREFIX="/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 просто удалите его так как он не совместим с Optimussudo 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, вы можете
- Написать об этом на форуме http://forum.ubuntu.ru/index.php?topic=190100.0
- Присоединиться к каналу http://webchat.freenode.net/?channels=#bumblebee по IRC и сообщить об ошибке
- Или (если вас попросят после общения в канале IRC) выполнить следующую команду в терминале для создание отчета об ошибке (баг-репорт)sudo bumblebee-bugreport 
Ссылки
- Статья о Bumblebee на Ubuntu.com (англ.)
См.также
| 2021/01/06 19:47 | |
| 2015/04/22 07:29 | |
| 2017/05/21 17:15 | |
| 2021/01/06 19:47 | |
| 2014/06/04 14:11 | |
| 2018/12/28 20:11 | |
| 2014/06/04 14:39 | |
| 2014/06/20 17:56 | |
| 2014/06/20 17:58 | 
 
			 
	