Содержание
Технология 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 не используется, у нее отключается питания, за счет чего уменьшается энергопотребление, ноутбук слабее нагревается и кулеры меньше шумят.
Полный комплект 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 через 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, вы можете
- Написать об этом на форуме 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 |