nvidia-xrun (Русский)

From ArchWiki

Состояние перевода: На этой странице представлен перевод статьи Nvidia-xrun. Дата последней синхронизации: 16 октября 2019. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Nvidia-xrun — утилита, запускающая X сервер, используя дискретный графический процессор NVIDIA, на ноутбуках с поддержкой NVIDIA Optimus. Это решение предлагает полное использование GPU, а также повышенные совместимость и производительность.

X сервер работает либо с интегрированным, либо с дискретным графическим процессором, но не с обоими сразу. Для использования другой видеокарты переключитесь на отдельную виртуальную консоль и запустите еще один X сервер.

Установка

This article or section is out of date.

Reason: По состоянию на nvidia-xrun 0.4 форк с управлением питанием был объединён с основной ветвью и bbswitch больше не используется, в связи с чем могут последовать изменения в AUR-пакетах и конфигурации bbswitch (Discuss in Talk:Nvidia-xrun (Русский))

Установите:

Настройка

Установка корректного идентификатора шины

Примечание: Идентификатор шины в /etc/X11/nvidia-xorg.conf задаётся автоматически при установке пакета из AUR. Убедитесь, что задан правильный идентификатор, а в противном случае измените его вручную (корректный идентификатор шины можно получить с помощью команды lspci). В некоторых случаях придётся сконвертировать шестнадцатеричный формат вывода команды lspci в десятичный для /etc/X11/nvidia-xorg.conf, например, 3b:00.0 становится PCI:59:0:0.

Найдите ID шины вашего дисплея:

 $ lspci | grep -i nvidia | awk '{print $1}'

Выход будет аналогичен этому примеру: 01:00.0.

После чего создайте файл, например, /etc/X11/nvidia-xorg.conf.d/30-nvidia.conf, для установки правильного ID шины:

/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:1:0:0"
EndSection

Также можете изменить настройки NVIDIA, если возникли проблемы:

/etc/X11/nvidia-xorg.conf.d/30-nvidia.conf
Section "Screen"
    Identifier "nvidia"
    Device "nvidia"
    #  Option "AllowEmptyInitialConfiguration" "Yes"
    #  Option "UseDisplayDevice" "none"
EndSection

Автоматический запуск оконного менеджер

Для удобства можете создать файл ~/.nvidia-xinitrc для запуска openbox:

if [ $# -gt 0 ]; then
  $*
else
  openbox-session
  # Alternatively, you can also use xfce4:
  # xfce4-session
fi

Тогда не придётся указывать приложение, просто выполните команду:

$ nvidia-xrun

Использование bbswitch для управления картой NVIDIA

Когда карта NVIDIA не нужна, для отключения используется bbswitch. Скрипт nvidia-xrun автоматически позаботится о запуске оконного менеджера и включения карты NVIDIA. Для этого следует:

  • Загрузить модуль bbswitch при включении:
 # echo 'bbswitch ' > /etc/modules-load.d/bbswitch.conf
  • Отключить модуль nvidia при включении:
 # echo 'options bbswitch load_state=0 unload_state=1' > /etc/modprobe.d/bbswitch.conf 

После перезагрузки видеокарта NVIDIA будет отключена. Чтобы это увидеть, проверьте статус bbswitch:

 $ cat /proc/acpi/bbswitch  

Для принудительно включения или выключения видеокарты, выполните:

 # tee /proc/acpi/bbswitch <<<ON
 # tee /proc/acpi/bbswitch <<<OFF

Подробнее о bbswitch смотрите в Bumblebee-Project/bbswitch.

Использование

После загрузки системы войдите в пользователя с виртуальной консоли и выполните nvidia-xrun <приложение>.

Если способ выше не работает, переключитесь на неиспользуемую виртуальную консоль и попробуйте снова.

Как упоминалось ранее, запуск приложений напрямую с помощью nvidia-xrun <application> не работает как следует, поэтому лучше создать ~/.nvidia-xinitrc, как описано выше, и использовать nvidia-xrun для запуска оконного менеджера.

Решение проблем

Графический процессор NVIDIA не отключается или устанавливается по умолчанию

Если графический процессор NVIDIA по-прежнему не отключается или устанавливается по умолчанию, то придётся занести в чёрный список модули, приведённые ниже. Создайте этот файл и перезапустите систему:

/usr/lib/modprobe.d/nvidia-xrun.conf
blacklist nvidia
blacklist nvidia-drm
blacklist nvidia-modeset
blacklist nvidia-uvm
blacklist nouveau

Убедитесь, что DRM Kernel Mode Setting отключен. См. NVIDIA (Русский)#DRM kernel mode setting и Kernel mode setting (Русский) для получения более подробной информации.