null

Восстанавливаем работоспособность Bumblebee в Ubuntu 16.04

Многие современные ноутбуки поставляются в конфигурации с гибридным видео - для офисных приложений используется интегрированное в чипсет видео, а для более "тяжёлого" в графическом плане софта - дискретная видеокарта. Наиболее часто такие конфигурации строятся на платформе 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:

Ubuntu 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 сработал. Итак, что нужно сделать:

  1. Добавить в sources list репозиторий и установить проприетарный драйвер nVidia 364.19:
    sudo add-apt-repository ppa:graphics-drivers/ppa
    sudo apt-get update
    sudo apt-get install nvidia-364
  2. Установить и запустить Bumblebee (из основного репозитория Ubuntu - никаких ppa добавлять не надо):
    sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic
    sudo systemctl enable bumblebeed
  3. Подкорректировать файл /etc/modules, добавив в него 2 строчки:
    i915
    bbswitch
  4. Переключиться на использование интегрированного видео:
    sudo prime-select intel
  5. Подкорректировать конфиг 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
  6. Перезагрузить компьютер.

После успешной перезагрузки проверяем работоспособность Bumblebee:

Дискретное видео работает!

Дискретное видео работает, проблема решена!

Коротко о себе:

Работаю ведущим программистом в компании Tune IT и ассистентом кафедры Вычислительной техники в Университете ИТМО .

Занимаюсь проектами, связанными с разработкой разного рода веб-приложений (порталы, CRM-системы, системы электронного документооборота), а также, в рамках научной работы на кафедре, изучаю возможности применения семантического анализа в задачах САПР.

Ничего не найдено. n is 0