Nvidia optimus, настройка и запуск bumblebee: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 37 промежуточных версий 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 через bumblebee:
 
1)Обновите систему и ядро до текущего [http://www.altlinux.org/Branches/p6 бранча].
{{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-un-def-alt0.M60P.1</pre>
<pre>3.4.27-std-def-alt0.M60P.1</pre>


3)Для запуска проприентарного драйвера nvidia удалим модуль ядра от свободного драйвера nouveau (обратите внимание на сборку ядра)
3) Для запуска проприетарного драйвера nvidia удалим модуль ядра от свободного драйвера nouveau (обратите внимание на сборку ядра):


<pre># apt-get remove kernel-modules-drm-nouveau-un-def</pre>
<pre># apt-get remove kernel-modules-drm-nouveau-std-def</pre>


и установим (если не установлены) проприетарный драйвер nvidia и модуль ядра для него
и установим (если не установлены) проприетарный драйвер nvidia и модуль ядра для него:


<pre># apt-get install kernel-modules-nvidia-un-def nvidia_glx_common</pre>
<pre># apt-get install kernel-modules-nvidia-std-def</pre>


4)Устанавливаем bbswitch для своего ядра и bumblebee
4) Устанавливаем bbswitch для своего ядра и bumblebee:


<pre># apt-get install kernel-modules-bbswitch-un-def bumblebee</pre>
<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 | grep VGA</pre>
<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)Создадим файл (от рут, можно через mc) /etc/X11/xorg.conf следующего содержания с указанием ранее полученного BusID
 
6) Создадим файл (от рута, можно через mc) в /etc/X11/xorg.conf.d следующего содержания с указанием ранее полученного BusID:


<pre> Section "Device"
<pre> Section "Device"
Строка 58: Строка 76:
EndSection </pre>
EndSection </pre>


7)Удаляем файл /etc/X11/xorg.conf.d/10-monitor.conf и желательно удалить компонент от альтератора alterator-x11 или не производить через него настройку дисплея.
----


8)Перезагружаем систему и проверяем работоспособность видеокарты nvidia
'''Для тех у кого артефакты при скроллинге, файл будет выглядеть так:'''


<pre>$ optirun glxinfo | grep OpenGL</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>


Можно запускать нужные приложения на видеокарте nvidia командой от пользователя
Также остается возможность запуска приложений через 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 прописать следующее:


Запущенные приложения без optirun будут работать на видеокарте intel при этом видеокарта от nvidia будет выключена.
<pre>primusrun %command%</pre>


P.S. Замечено что на 32-х разрядных системах bumblebee падает после отработки команды optirun, для повторного запуска команды optirun необходимо перезапустить сервис bumblebee
где %command% переменная (не надо ее менять на команду запуска игры), steam сам подставит нужную команду.


<pre># service bumblebeed start</pre>
==Запуск 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 Стим]


P.S. Лучшее энергосбережение и уменшение температуры чипов наблюдается на ядре un-def
== Примечания ==
<references/>


Тема на форуме [http://forum.altlinux.org/index.php/topic,28509.0.html]
[[Категория:Руководства]]
[[Категория:Руководства]]
{{Category navigation|title=Видеодрайвера|category=Видеодрайвера|sortkey={{SUBPAGENAME}}}}

Текущая версия от 07:52, 5 августа 2023

Данное руководство предназначено для счастливых обладателей ноутбуков с nvidia optimus на борту, которые используют дистрибутивы на базе бранча p8.

Примечание: Начиная с p9 bumblebee не поддерживается, всё должно работать без bumblebee.


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

Ссылки

Примечания

  1. На Sisyphus за 20140209 для Lenovo B570e этот шаг и создание секции xorg.conf оказались по факту необязательны
  2. см. вывод команды id и файл /etc/group