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

Материал из ALT Linux Wiki
(Отмена правки 41253, сделанной участником 188.244.222.212 (обс.))
(Отмена правки 41255, сделанной участником Barssc (обс.) - так информативность больше)
Строка 32: Строка 32:
5) Узнаем BusID видеокарт<ref>На Sisyphus за 20140209 для Lenovo B570e этот шаг и создание секции xorg.conf оказались по факту необязательны</ref>:
5) Узнаем BusID видеокарт<ref>На Sisyphus за 20140209 для Lenovo B570e этот шаг и создание секции xorg.conf оказались по факту необязательны</ref>:


<pre>$ lspci</pre>
<pre>$ lspci -k| grep -EA2 'VGA|3D' </pre>


<pre>00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
<pre>
00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
Subsystem: Dell Device 0802
Subsystem: Dell Device 0802
Kernel driver in use: i915
Kernel driver in use: i915
Строка 40: Строка 41:
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)
Subsystem: Dell Device 0802
Subsystem: Dell Device 0802
3b:00.0 Network controller: Intel Corporation Wireless 8265 / 8275 (rev 78)</pre>
</pre>


нас интересует BusID, относящийся к intel (00:02.0)
нас интересует BusID, относящийся к intel (00:02.0)
Строка 114: Строка 115:


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



Версия от 13:17, 11 февраля 2018

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

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 -k| grep -EA2 'VGA|3D' 
00:02.0 VGA compatible controller: Intel Corporation Device 591b (rev 04)
	Subsystem: Dell Device 0802
	Kernel driver in use: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation GP106M [GeForce GTX 1060 Mobile] (rev a1)
	Subsystem: Dell Device 0802

нас интересует BusID, относящийся к intel (00:02.0)

6) Создадим файл (от рута, можно через mc) /etc/X11/xorg.conf следующего содержания с указанием ранее полученного 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 start

Замечено что в ряде случаев сервис 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