Многие современные ноутбуки поставляются в конфигурации с гибридным видео - для офисных приложений используется интегрированное в чипсет видео, а для более "тяжёлого" в графическом плане софта - дискретная видеокарта. Наиболее часто такие конфигурации строятся на платформе nVidia Optimus - в этом случае интегрированный видеочип от Intel дополняется дискретным адаптером от nVidia. Так уж вышло, что я являюсь счастливым обладателем именно такого ноутбука.
Для пользователей Linux существуют два возможных пути использования гибридного видео от nVidia. Первый - "официальная" технология nVidia Prime. Её плюсы - она разрабатывается непосредственно компанией nVidia, достаточно стабильна и практически гарантированно работает на любом "железе". Основной минус, по крайней мере, для меня - относительное неудобство использования. Переключение между интегрированным и дискретным видеоадаптерами происходит на уровне сессий ОС, т.е. для того, чтобы запустить какое-либо приложение на дискретной видеокарте, нужно закрыть все приложения в пределах текущей сессии, выйти из неё и заново ввести логин и пароль. Это довольно долго, да и закрывать приложения (особенно, какую-нибудь IDE) обычно не очень хочется - у меня не SSD, так что стартуют они потом далеко не мгновенно.
Поэтому я в своё время выбрал второй вариант, и стал использовать "неофициальное" решение - Bumblebee Project. Bumblebee позволяет запускать отдельные приложения с использованием дискретной видеокарты nVidia в общей с "офисными" приложениями сессии ОС без необходимости их закрытия. Минусы Bumblebee - меньшая стабильность, потенциально меньшая производительность и ряд эпичных багов в прошлом. Помимо этого, проект достаточно давно не развивается, но его совместимости с актуальными версиями драйверов nVidia и операционными системами это пока что никак не мешает. В общем, в предыдущей версии Ubuntu установленный из официальных репозиториев Bumblebee практически 2 года отработал у меня в комплекте с официальными проприетарными драйверами nVidia без каких-либо проблем и сбоев.
Как многим известно, совсем недавно вышла новая Ubuntu LTS - 16.04 (Xenial Xerus). Систему я переставлял "с нуля" (с сохранением партиции с домашним каталогом), сама установка прошла достаточно быстро и гладко - помимо несущественных проблем с индикатором Wi-Fi-соединения всё сходу заработало нормально. Поработав пару дней на интегрированном видео, я решил поиграться в игрушки и, особо не задумываясь, установил из репозиториев Bumblebee и проприетарный драйвер nVidia (361.42). Весь софт поставился нормально, никаких сообщений об ошибках не было, но, после перезагрузки, я получил систему, работающую в low-graphics mode:
После "сноса" Bumblebee и проприетарного драйвера, я пошёл гуглить и нашёл достаточно детальный мануал на русскоязычном сайте Ubuntu (забавно, что сначала мне попался на глаза перевод этого мануала в англоязычном сообществе, а только потом - оригинал :) ). В мануале постулируется, что устанавливающаяся из стандартного репозитория Ubuntu 16.04 версия Bumblebee несовместима с драйвером nvidia-361 и предлагается использовать другую версию Bumblebee (из ppa). Тем не менее, мануал не помог - после установки всех пакетов, правки конфигурационных файлов (никаких ошибок при этом, по-прежнему, не возникло) и перезагрузки системы Ubuntu вошла в login loop - после ввода логина и пароля вместо рабочего стола снова появлялось окно ввода логина и пароля, и так до бесконечности. Следует отметить, что аналогичные проблемы описывают и другие пользователи Ubuntu в комментариях к мануалу, так что, судя по всему, он не сработал не только у меня. После этого проприетарный драйвер и Bumblebee были вновь "снесены", выходные закончились и в решении задачи реанимации гибридного видео под новой версией Убунты был сделан перерыв.
Через пару дней мне снова захотелось поиграться в игрушки, и, на этот раз, решение было найдено. Сначала у меня возникло предположение, что, если Bumblebee несовместим с конкретной версией драйвера nVidia, то имеет смысл попробовать поменять не Bumblebee, а проприетарный драйвер. "Откат" на nvidia-340 не помог (система опять "свалилась" в low-graphics mode), а вот апгрейд до nvidia-364 в соответствии с этим howto сработал. Итак, что нужно сделать:
- Добавить в sources list репозиторий и установить проприетарный драйвер nVidia 364.19:
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update
sudo apt-get install nvidia-364
- Установить и запустить Bumblebee (из основного репозитория Ubuntu - никаких ppa добавлять не надо):
sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
sudo systemctl enable bumblebeed
- Подкорректировать файл /etc/modules, добавив в него 2 строчки:
i915
bbswitch
- Переключиться на использование интегрированного видео:
sudo prime-select intel
- Подкорректировать конфиг Bumblebee (/etc/bumblebee/bumblebee.conf).
Строка 22:
Driver=nvidia
Строка 55:
KernelDriver=nvidia-364
Строка 58:
LibraryPath=/usr/lib/nvidia-364:/usr/lib32/nvidia-364
Строка 61:
XorgModulePath=/usr/lib/nvidia-364/xorg,/usr/lib/xorg/modules
- Перезагрузить компьютер.
После успешной перезагрузки проверяем работоспособность Bumblebee:
Дискретное видео работает, проблема решена!