Nvidia-xrun (Русский)
Nvidia-xrun — утилита, запускающая X сервер, используя дискретный графический процессор NVIDIA, на ноутбуках с поддержкой NVIDIA Optimus. Это решение предлагает полное использование GPU, а также повышенные совместимость и производительность.
X сервер работает либо с интегрированным, либо с дискретным графическим процессором, но не с обоими сразу. Для использования другой видеокарты переключитесь на отдельную виртуальную консоль и запустите еще один X сервер.
Установка
- nvidia
- bbswitch
-
nvidia-xrunAUR, nvidia-xrun-gitAUR
- или nvidia-xrun-pmAUR, если
bbswitch
не поддерживает ваше оборудование [1]
- или nvidia-xrun-pmAUR, если
-
Оконный менеджер, например, openbox или xfce4-session, так как запуск приложений напрямую с помощью
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 (Русский) для получения более подробной информации.