23 июня 2018 г. в 22:30
NVIDIA Optimus без Bumblebee на Debian

Ранее я уже писал пост об установке Bumblebee, чтобы дискретная карта использовалась только для тяжелых задач, типа игр.

Плюсы: для обычных задач расходуется значительно меньше энергии, продлевая работу от батареи, ноутбук немного меньше греется.

Минусы: необходимо менять параметры запуска, вручную указывая ключевое слово optirun для нужных приложений, ну и могут возникать различные проблемы.

Например, после использования дискретной карты ноутбук может с какой-то вероятностью не выйти из спящего режима, или не суметь снова запустить карту. Или, как в моём случае, после очередного обновления current версия видеодрайвера отказалась работать, только legacy, хотя моя видеокарта (nvidia geforce 840m) ещё поддерживается.

Поэтому, раз аккумулятор уже старый и в автономном режиме ноут работает не дольше 10 минут, я решил отказаться от bumblebee, задействовав дискретную карту на постоянной основе.

Впринципе, способ уже описан в Debian wiki, но там неполная статья и на английском, потому решил сюда написать инструкцию.

1. Убедимся, что установлен пакет x11-xserver-utils

apt install x11-xserver-utils

2. Устанавливаем проприетарный видеодрайвер

apt install nvidia-driver

Или какой-то из разряда nvidia-legacy-???-driver. Если не уверены, какой нужен, утилита nvidia-detect подскажет.

3. Дальше необходимо создать файл /etc/X11/xorg.conf, в который поместить конфигурацию:

Section "Module"
    Load "modesetting"
EndSection

Section "Device"
    Identifier "nvidia"
    Driver "nvidia"
    BusID "PCI:X:Y:Z"
    Option "AllowEmptyInitialConfiguration"
EndSection

где параметры для BusID можно получить из вывода

lspci | grep -E "VGA|3D"

Например, у меня вывод:

04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 840M] (rev a2)

значит, BusID "PCI:4:0:0"

4. Так как у меня KDE, то используется экранный менеджер SDDM (аналогично и в LXQt), поэтому добавил в файл /usr/share/sddm/scripts/Xsetup строки:

xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto
xrandr --dpi 96

чтобы при запуске SDDM начинала использоваться дискретная карта вместо интегрированной.

Готово, вы прекрасны!

Для других экранных менеджеров, или в случае проблем можно почитать статью на arch wiki, там больше информации, чем в дебиановской.