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

Материал из ALT Linux Wiki
Нет описания правки
 
(не показано 6 промежуточных версий 2 участников)
Строка 1: Строка 1:
Данное руководство предназначено для счастливых обладателей ноутбуков с [http://www.nvidia.ru/object/optimus_technology_ru.html nvidia optimus] на борту, которые используют дистрибутивы на базе бранча p8. Начиная с p9 bumblebee не поддерживается, всё должно работать без bumblebee.
Данное руководство предназначено для счастливых обладателей ноутбуков с [http://www.nvidia.ru/object/optimus_technology_ru.html nvidia optimus] на борту, которые используют дистрибутивы на базе бранча p8.
 
{{Note | Начиная с p9 bumblebee не поддерживается, всё должно работать без bumblebee.}}


== PRIME ==
== PRIME ==
Если у вас современная видеокарта, которая поддерживается драйвером версии 435 или новее (посмотреть можно в /proc/driver/nvidia/version), то у вас есть поддержка технологии NVIDIA PRIME, Bumblebee не нужен и достаточно запускать программы при помощи
Это единственный способ (кроме автоматического выбора режима), который работает в Сизифе и в бренче p10
 
Если у вас современная видеокарта, которая поддерживается драйвером версии 435 или новее (посмотреть можно в '''/proc/driver/nvidia/version'''), то у вас есть поддержка технологии NVIDIA PRIME, достаточно запускать программы при помощи '''nvidia-prime-run''' (входит в пакет '''nvidia_glx_common''')
 
<pre>$ nvidia-prime-run имяпрограммы</pre>
<pre>$ nvidia-prime-run имяпрограммы</pre>
Например, при установленном пакете glxinfo можно запустить
Например, при установленном пакете glxinfo можно запустить
Строка 46: Строка 51:
нас интересует 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"
Строка 102: Строка 107:
=== проверка ===
=== проверка ===
8) Перезагружаем систему и проверяем работоспособность видеокарты nvidia:
8) Перезагружаем систему и проверяем работоспособность видеокарты nvidia:
<pre>$ optirun glxinfo | grep OpenGL</pre>
<pre>$ optirun glxinfo | grep OpenGL</pre>
 
должно получиться нечто подобное:
должно получится нечто подобное:
<pre>
 
OpenGL vendor string: NVIDIA Corporation
<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>:
Можно запускать нужные приложения на видеокарте nvidia командой от пользователя, входящего в группу xgrp<ref>см. вывод команды id и файл /etc/group</ref>:
<pre>$ optirun приложение</pre>
<pre>$ optirun приложение</pre>
Запущенные без optirun приложения будут работать на видеокарте intel, при этом видеокарта nvidia будет выключена.
Запущенные без optirun приложения будут работать на видеокарте intel, при этом видеокарта nvidia будет выключена.


P.S. Замечено на р6, что на 32-х разрядных системах bumblebee падает после отработки команды optirun, для повторного запуска команды optirun необходимо перезапустить сервис bumblebee:
P.S. На р6 замечено, что на 32-разрядных системах bumblebee падает после отработки команды optirun, для повторного запуска команды optirun необходимо перезапустить сервис bumblebee:
 
<pre># service bumblebeed restart</pre>
<pre># service bumblebeed start</pre>
Замечено, что в ряде случаев сервис bumblebeed не стартует автоматически при перезагрузке системы и требуется его включение в явном виде. Для проверки следует выполнить команду:
 
Замечено что в ряде случаев сервис bumblebeed не стартует автоматически при перезагрузке системы и требуется его включение в явном виде. Для проверки следует выполнить команду:
<pre># service bumblebeed status</pre>
<pre># service bumblebeed status</pre>
Если сервис не активен (вместо active выводится  unknown или что-подобное), то для включения сервиса нужно выполнить команду:
Если сервис не активен (вместо active выводится  unknown или что-подобное), то для включения сервиса нужно выполнить команду:
<pre># service bumblebeed enable</pre>
<pre># service bumblebeed enable</pre>
после чего имеет смысл перезагрузить систему.
после чего имеет смысл перезагрузить систему.


== Primus ==
== Primus ==
Строка 170: Строка 165:


== Ссылки ==
== Ссылки ==
* [http://forum.altlinux.org/index.php/topic,28509.0.html Тема на форуме]
*[[nvidia]]
* [[nvidia]]
*[[Optimus]]
* https://fedoraproject.org/wiki/Bumblebee
*[http://forum.altlinux.org/index.php/topic,28509.0.html Тема на форуме]
* http://nouveau.freedesktop.org/wiki/Optimus/
*[https://fedoraproject.org/wiki/Bumblebee Бамблби]
* http://steamcommunity.com/app/221410/discussions/6/846939854395110175
*[http://nouveau.freedesktop.org/wiki/Optimus/ Открытые драйверы]
*[http://steamcommunity.com/app/221410/discussions/6/846939854395110175 Стим]


== Примечания ==
== Примечания ==

Текущая версия от 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