Nvidia optimus, настройка и запуск bumblebee: различия между версиями
Barssc (обсуждение | вклад) Нет описания правки |
Дым (обсуждение | вклад) (→Ссылки) |
||
(не показано 36 промежуточных версий 13 участников) | |||
Строка 1: | Строка 1: | ||
Данное руководство предназначено для счастливых обладателей ноутбуков с [http://www.nvidia.ru/object/optimus_technology_ru.html nvidia optimus] на борту. | Данное руководство предназначено для счастливых обладателей ноутбуков с [http://www.nvidia.ru/object/optimus_technology_ru.html nvidia optimus] на борту, которые используют дистрибутивы на базе бранча p8. | ||
Рассмотрим процесс установки, настройки и запуска видеокарты nvidia | |||
1) | {{Note | Начиная с p9 bumblebee не поддерживается, всё должно работать без bumblebee.}} | ||
== PRIME == | |||
Это единственный способ (кроме автоматического выбора режима), который работает в Сизифе и в бренче p10 | |||
Если у вас современная видеокарта, которая поддерживается драйвером версии 435 или новее (посмотреть можно в '''/proc/driver/nvidia/version'''), то у вас есть поддержка технологии NVIDIA PRIME, достаточно запускать программы при помощи '''nvidia-prime-run''' (входит в пакет '''nvidia_glx_common''') | |||
<pre>$ nvidia-prime-run имяпрограммы</pre> | |||
Например, при установленном пакете glxinfo можно запустить | |||
<pre>$ nvidia-prime-run glxinfo | grep -i 'renderer.*string'</pre> | |||
, убедившись, какой 3D-ускоритель задействован. | |||
== Bumblebee == | |||
Рассмотрим процесс установки, настройки и запуска видеокарты nvidia посредством [http://bumblebee-project.org/ bumblebee]. | |||
=== установка === | |||
1) Обновляем систему и ядро до текущего [http://www.altlinux.org/Branches/p7 бранча]: | |||
<pre># apt-get update | <pre># apt-get update | ||
Строка 7: | Строка 23: | ||
# update-kernel</pre> | # update-kernel</pre> | ||
2)Узнаем версию установленного ядра | 2) Узнаем версию установленного ядра: | ||
<pre>$ uname -r</pre> | <pre>$ uname -r</pre> | ||
<pre>3.4.27- | <pre>3.4.27-std-def-alt0.M60P.1</pre> | ||
3)Для запуска | 3) Для запуска проприетарного драйвера nvidia удалим модуль ядра от свободного драйвера nouveau (обратите внимание на сборку ядра): | ||
<pre># apt-get remove kernel-modules-drm-nouveau- | <pre># apt-get remove kernel-modules-drm-nouveau-std-def</pre> | ||
и установим (если не установлены) проприетарный драйвер nvidia и модуль ядра для него | и установим (если не установлены) проприетарный драйвер nvidia и модуль ядра для него: | ||
<pre># apt-get install kernel-modules-nvidia- | <pre># apt-get install kernel-modules-nvidia-std-def</pre> | ||
4)Устанавливаем bbswitch для своего ядра и bumblebee | 4) Устанавливаем bbswitch для своего ядра и bumblebee: | ||
<pre># apt-get install kernel-modules-bbswitch- | <pre># apt-get install kernel-modules-bbswitch-std-def bumblebee</pre> | ||
5)Узнаем BusID видеокарт | === настройка === | ||
5) Узнаем BusID видеокарт<ref>На Sisyphus за 20140209 для Lenovo B570e этот шаг и создание секции xorg.conf оказались по факту необязательны</ref>: | |||
<pre>$ lspci | <pre>$ lspci</pre> | ||
<pre>00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) | <pre>00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) | ||
01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev ff)</pre> | 01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev ff)</pre> | ||
нас интересует BusID относящийся к intel (00:02.0) | нас интересует BusID, относящийся к intel (00:02.0) | ||
6)Создадим файл (от | 6) Создадим файл (от рута, можно через mc) в /etc/X11/xorg.conf.d следующего содержания с указанием ранее полученного BusID: | ||
<pre> Section "Device" | <pre> Section "Device" | ||
Строка 59: | Строка 76: | ||
EndSection </pre> | EndSection </pre> | ||
---- | |||
'''Для тех у кого артефакты при скроллинге, файл будет выглядеть так:''' | |||
<pre> | <pre>Section "Device" | ||
Identifier "Device1" | |||
Driver "intel" | |||
Option "AccelMethod" "uxa" | |||
VendorName "onboard" | |||
BusID "PCI:0:2:0" | |||
#обратите внимание на двоеточия и количество 0 | |||
EndSection | |||
Section "Monitor" | |||
Identifier "Monitor0" | |||
Option "DPMS" | |||
EndSection | |||
Section "Screen" | |||
Identifier "Screen0" | |||
Device "Device1" | |||
Monitor "Monitor0" | |||
DefaultDepth 24 | |||
SubSection "Display" | |||
Depth 24 | |||
EndSubSection | |||
EndSection | |||
</pre> | |||
7) Удаляем файл /etc/X11/xorg.conf.d/10-monitor.conf и желательно удалить компонент от альтератора alterator-x11 или не производить через него настройку дисплея. | |||
<pre>OpenGL vendor string: NVIDIA Corporation | === проверка === | ||
8) Перезагружаем систему и проверяем работоспособность видеокарты nvidia: | |||
<pre>$ optirun glxinfo | grep OpenGL</pre> | |||
должно получиться нечто подобное: | |||
<pre> | |||
OpenGL vendor string: NVIDIA Corporation | |||
OpenGL renderer string: GeForce GT 540M/PCIe/SSE2 | OpenGL renderer string: GeForce GT 540M/PCIe/SSE2 | ||
OpenGL version string: 4.3.0 NVIDIA 310.19 | OpenGL version string: 4.3.0 NVIDIA 310.19 | ||
OpenGL shading language version string: 4.30 NVIDIA via Cg compiler | OpenGL shading language version string: 4.30 NVIDIA via Cg compiler | ||
OpenGL extensions:</pre> | OpenGL extensions: | ||
</pre> | |||
Можно запускать нужные приложения на видеокарте nvidia командой от пользователя, входящего в группу xgrp<ref>см. вывод команды id и файл /etc/group</ref>: | |||
<pre>$ optirun приложение</pre> | |||
Запущенные без optirun приложения будут работать на видеокарте intel, при этом видеокарта nvidia будет выключена. | |||
P.S. На р6 замечено, что на 32-разрядных системах bumblebee падает после отработки команды optirun, для повторного запуска команды optirun необходимо перезапустить сервис bumblebee: | |||
<pre># service bumblebeed restart</pre> | |||
Замечено, что в ряде случаев сервис bumblebeed не стартует автоматически при перезагрузке системы и требуется его включение в явном виде. Для проверки следует выполнить команду: | |||
<pre># service bumblebeed status</pre> | |||
Если сервис не активен (вместо active выводится unknown или что-подобное), то для включения сервиса нужно выполнить команду: | |||
<pre># service bumblebeed enable</pre> | |||
после чего имеет смысл перезагрузить систему. | |||
== Primus == | |||
Для nvidia optimus собран [https://github.com/amonakov/primus primus], предлагающий некоторое улучшение производительности. | |||
=== установка === | |||
9) Устанавливаем primus: | |||
<pre># apt-get install primus</pre> | |||
=== проверка === | |||
Команда запуска приложений через primus: | |||
<pre>$ primusrun приложение</pre> | |||
Также остается возможность запуска приложений через VirtualGL: | |||
<pre>$ optirun приложение</pre> | <pre>$ optirun приложение</pre> | ||
Для отключения вертикальной синхронизации у primus: | |||
<pre>$ vblank_mode=0 primusrun приложение</pre> | |||
Для нормальной работы 32-х разрядных приложений и игр на 64-х разрядной системе через primus должны быть установлены следующие пакеты: i586-primus, i586-xorg-drv-intel, i586-xorg-dri-intel, i586-nvidia_glx, i586-nvidia_glx_common. | |||
Для запуска игр в steam на карте nvidia primus (особенно 32-х разрядный) обязателен к установке! Чтобы игра стартовала через primus необходимо в свойствах запуска игры в steam прописать следующее: | |||
<pre>primusrun %command%</pre> | |||
где %command% переменная (не надо ее менять на команду запуска игры), steam сам подставит нужную команду. | |||
==Запуск nvidia-settings с установленным bumblebee :== | |||
''' | |||
optirun nvidia-settings -c :8''' | |||
или | |||
''' | |||
primusrun nvidia-settings -c :8''' | |||
== Ссылки == | |||
*[[nvidia]] | |||
*[[Optimus]] | |||
*[http://forum.altlinux.org/index.php/topic,28509.0.html Тема на форуме] | |||
*[https://fedoraproject.org/wiki/Bumblebee Бамблби] | |||
*[http://nouveau.freedesktop.org/wiki/Optimus/ Открытые драйверы] | |||
*[http://steamcommunity.com/app/221410/discussions/6/846939854395110175 Стим] | |||
== Примечания == | |||
<references/> | |||
[[Категория:Руководства]] | [[Категория:Руководства]] | ||
{{Category navigation|title=Видеодрайвера|category=Видеодрайвера|sortkey={{SUBPAGENAME}}}} |
Текущая версия от 07:52, 5 августа 2023
Данное руководство предназначено для счастливых обладателей ноутбуков с nvidia optimus на борту, которые используют дистрибутивы на базе бранча p8.
PRIME
Это единственный способ (кроме автоматического выбора режима), который работает в Сизифе и в бренче p10
Если у вас современная видеокарта, которая поддерживается драйвером версии 435 или новее (посмотреть можно в /proc/driver/nvidia/version), то у вас есть поддержка технологии NVIDIA PRIME, достаточно запускать программы при помощи nvidia-prime-run (входит в пакет nvidia_glx_common)
$ nvidia-prime-run имяпрограммы
Например, при установленном пакете glxinfo можно запустить
$ nvidia-prime-run glxinfo | grep -i 'renderer.*string'
, убедившись, какой 3D-ускоритель задействован.
Bumblebee
Рассмотрим процесс установки, настройки и запуска видеокарты nvidia посредством bumblebee.
установка
1) Обновляем систему и ядро до текущего бранча:
# apt-get update # apt-get dist-upgrade # update-kernel
2) Узнаем версию установленного ядра:
$ uname -r
3.4.27-std-def-alt0.M60P.1
3) Для запуска проприетарного драйвера nvidia удалим модуль ядра от свободного драйвера nouveau (обратите внимание на сборку ядра):
# apt-get remove kernel-modules-drm-nouveau-std-def
и установим (если не установлены) проприетарный драйвер nvidia и модуль ядра для него:
# apt-get install kernel-modules-nvidia-std-def
4) Устанавливаем bbswitch для своего ядра и bumblebee:
# apt-get install kernel-modules-bbswitch-std-def bumblebee
настройка
5) Узнаем BusID видеокарт[1]:
$ lspci
00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 01:00.0 VGA compatible controller: NVIDIA Corporation GF108 [GeForce GT 540M] (rev ff)
нас интересует BusID, относящийся к intel (00:02.0)
6) Создадим файл (от рута, можно через mc) в /etc/X11/xorg.conf.d следующего содержания с указанием ранее полученного BusID:
Section "Device" Identifier "Device1" Driver "intel" VendorName "onboard" BusID "PCI:0:2:0" #обратите внимание на двоеточия и количество 0 EndSection Section "Monitor" Identifier "Monitor0" Option "DPMS" EndSection Section "Screen" Identifier "Screen0" Device "Device1" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
Для тех у кого артефакты при скроллинге, файл будет выглядеть так:
Section "Device" Identifier "Device1" Driver "intel" Option "AccelMethod" "uxa" VendorName "onboard" BusID "PCI:0:2:0" #обратите внимание на двоеточия и количество 0 EndSection Section "Monitor" Identifier "Monitor0" Option "DPMS" EndSection Section "Screen" Identifier "Screen0" Device "Device1" Monitor "Monitor0" DefaultDepth 24 SubSection "Display" Depth 24 EndSubSection EndSection
7) Удаляем файл /etc/X11/xorg.conf.d/10-monitor.conf и желательно удалить компонент от альтератора alterator-x11 или не производить через него настройку дисплея.
проверка
8) Перезагружаем систему и проверяем работоспособность видеокарты nvidia:
$ optirun glxinfo | grep OpenGL
должно получиться нечто подобное:
OpenGL vendor string: NVIDIA Corporation OpenGL renderer string: GeForce GT 540M/PCIe/SSE2 OpenGL version string: 4.3.0 NVIDIA 310.19 OpenGL shading language version string: 4.30 NVIDIA via Cg compiler OpenGL extensions:
Можно запускать нужные приложения на видеокарте nvidia командой от пользователя, входящего в группу xgrp[2]:
$ optirun приложение
Запущенные без optirun приложения будут работать на видеокарте intel, при этом видеокарта nvidia будет выключена.
P.S. На р6 замечено, что на 32-разрядных системах bumblebee падает после отработки команды optirun, для повторного запуска команды optirun необходимо перезапустить сервис bumblebee:
# service bumblebeed restart
Замечено, что в ряде случаев сервис bumblebeed не стартует автоматически при перезагрузке системы и требуется его включение в явном виде. Для проверки следует выполнить команду:
# service bumblebeed status
Если сервис не активен (вместо active выводится unknown или что-подобное), то для включения сервиса нужно выполнить команду:
# service bumblebeed enable
после чего имеет смысл перезагрузить систему.
Primus
Для nvidia optimus собран primus, предлагающий некоторое улучшение производительности.
установка
9) Устанавливаем primus:
# apt-get install primus
проверка
Команда запуска приложений через primus:
$ primusrun приложение
Также остается возможность запуска приложений через VirtualGL:
$ optirun приложение
Для отключения вертикальной синхронизации у primus:
$ vblank_mode=0 primusrun приложение
Для нормальной работы 32-х разрядных приложений и игр на 64-х разрядной системе через primus должны быть установлены следующие пакеты: i586-primus, i586-xorg-drv-intel, i586-xorg-dri-intel, i586-nvidia_glx, i586-nvidia_glx_common.
Для запуска игр в steam на карте nvidia primus (особенно 32-х разрядный) обязателен к установке! Чтобы игра стартовала через primus необходимо в свойствах запуска игры в steam прописать следующее:
primusrun %command%
где %command% переменная (не надо ее менять на команду запуска игры), steam сам подставит нужную команду.
Запуск nvidia-settings с установленным bumblebee :
optirun nvidia-settings -c :8
или
primusrun nvidia-settings -c :8