суббота, 21 января 2012 г.

NVIDIA Optimus в Linux

В современных ноутбуках с процессорами i3/i5/i7 для экономии заряда аккумулятора используется технология NVIDIA Optimus с дискретными видеокартами NVidia. Технология эта, конечно, замечательная, но реализована она только в операционной системе Windows 7. Те же, кто устанавливал на такие ноутбуки линукс, получали две работающие видеокарты и ни о какой экономии энергии аккумулятора мечтать уже не приходилось. Мало того, еще и температурные датчики давали куда более высокие показатели, нежели при работе Windows 7 на таком компьютере. Попытки владельцев ноутбуков с дискретными видеокартами с технологией NVIDIA Optimus отключить неиспользуемую видеокарту зачастую давали только один результат - черный экран.
Неофициально технология NVIDIA Optimus поддерживается и в Linux благодаря проекту Bumblebee. И вот разработчики порадовали нас новой реализацией своего проекта, а пользователей Ubuntu (Linux Mint) еще и появлением нового репозитория PPA, из которого установка всех необходимых пакетов стала также проста, как установка любого программного обеспечения из репозитория. Не буду описывать, что из себя представляет проект Bumblebee, лучше сразу перейду к практической части, то есть к установке.

Если вы до этого эксперементировали с установкой драйверов на NVidia, то необходимо удалить их, от них всё равно не было никакого прока, а для установки bumblebee они будут мешать, вызывая конфликт:

sudo apt-get purge nvidia-current
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates


Если же вы никаких экспериментов в драйверами NVidia не производили и в этом плане у вас система в "девственном" состоянии, то вышеуказанные действия производиь не надо и просто переходим к добавлению нового репозитория:

sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update


Разработчики еще требуют наличия в системе некоторых пакетов, но в Linux Mint они имеются по умолчанию и, думаю, что в Ubuntu тоже (нет возможности проверить). Чтобы убелиться в их наличии, просто выполните команду (эта же команда выполнит установку, если эти пакеты в системе отсутствуют):

sudo apt-get install virtualgl-libs:i386 libgl1-mesa-glx:i386 libc6:i386


И после этого устанавливаем bumblebee и другие необходимые пакеты, установка будет не сильно быстрой, так как будет добавляться новые модули в ядро системы:

sudo apt-get install acpi-call-tools acpi-call-source bbswitch-dkms bumblebee virtualgl


Собственно это и есть вся установка, действительно, всё стало очень просто, пользователям же других дистрибутивов линукса необходимо перейти на страницу с инструкцией  https://github.com/Bumblebee-Project/Bumblebee/wiki/Install-and-usage и собрать bumblebee из исходников.

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

sudo usermod -a -G bumblebee USER

где вместо USER ваш логин.

По умолчанию, все программы будут использовать более слабую видеокарту Intel, если вам нужно явно указать, что для выполнения программы надо использовать дискретную видеокарту NVidia, то для запуска этой программы используйте команду:

optirun ИМЯ_ПРОГРАММЫ

Пример выполнения glxpheres на дискретной видеокарте:

optirun glxspheres



Помощь по bumblebee можно получить командой bumblebee --help или man bumblebee, помощь по работе клиента: optirun --help или man optirun


И еще несколько слов о новом переключателе bbswitch. Если у вас всё правильно установлено и демон запускается при старте системы, то выполнение команды: sudo cat /proc/acpi/bbswitch сообщит вам, что по умолчанию дискретная видеокарта отключена. Включение и отключение вручную дискретной видеокарты с помощтю bbswitch выполняется соовествующими командами (см. скриншот).




P.S. У меня при отключенной дискретной видеокарте системные датчики температуры показывают температуру на 5-7 градусов ниже, нежели они показывали ранее без bumblebee, следовательно, нет шума от кулера, судорожно охлаждающего систему. Так что, если у вас ноутбук с технологией NVIDIA Optimus, то имеет смысл не только из-за экономии заряда аккумулятора использовать bumblebee, но и чтобы не заставлять своё железо работать на все 100%, когда, например, вам надо просто в нете посидеть или фильм посмотреть :)

25 комментариев:

alexandr комментирует...

а после драйвер проприетарный установить на нвидиа можно? или только отркытый пользовать придется?

Nordbrother комментирует...

в чем проблема? На минте с гномом есть результат, а если на кде переходишь выдает вот это

user # cat /proc/acpi/bbswitch

cat: /proc/acpi/bbswitch: No such file or directory

Спасай, мне надо отключить дискретную, шум с ума сводит(

Dark_WarLord комментирует...

Огромное спасибо!! Аккумулятор сдыхающий за час с копейками - не айс! kubunta 11.10. Полёт отличный-без питания от сети можно протянуть 3,5 часа.

Аскер Аскеров комментирует...

Спасибо за статью. Очень помогло

Анонимный комментирует...

Вечер добрый.
Юзаю Acer aspire 5750g, поставил вообще без запинок и задоринок. Но что странно пропустил строчки с удалением драйвера, стоял проприетарный, а встало норм. Теперь думаю если Intel-овский драйвер не стоял, и NVidia проприетарный драйвер как говорится не дружит с Bumbelbee, то как происходит работа?О_о?
Спасибо за статью, помогла. Хоть и не до конца:)

Unknown комментирует...

2 BorMan
Я даже не знаю, что сказать, потому что я в своей системе изначально проприетарный драйвер не ставила, зная, что толку от Optimus от него не будет (мало того, черный экран был бы мне обеспечен, я это пробовала на тестах).
Ну, на вашем месте я бы удалила Bumbelbee, если есть такая необходимость, и начала бы процедуру установки с удаления хвостов NVidia

Анонимный комментирует...

Разобрался!
В Linux взяли на привычку все драйвера Intel видео адаптеров вставлять в ядро(Данная инфа упоминалась на каком то форуме, к сожалению сказать не помню на каком.). Так и у меня видюха встроенная Intel Hd 3000. А драйвер Nvidia, только вот сегодня удалил.
Так по общим коментам и инфе можно инструктаж целый по драйверам собрать:)
Еще раз спасибо данной теме:)

Unknown комментирует...

Да интеловские драйвера в ядре, можно сказать, по жизни. У меня предыдущий ноут был только с одной интеловской картой, так там сказу работало всё "искаропки", а этот когда с NVidia Optimus покупала, то знала, что технология Optimus на тот момент только в W7 поддерживалась, но активно шла разработка Bumbelbee. Верила я в них, что Bumbelbee допилят и будет Optimus тоже работать в линуксе :))

Illia комментирует...

Странно. Поставил на убунту 12.04, видеокарта 540-я. По началу все было хорошо. После нескольких перезагрузок ноут перестал включаться. Доходит до логотипа убунты и зависает или на черном экране или на сиреневом. Отключался только зажатием кнопки питания.
В рекавери режиме загружался, но с явными признаками, что видео работает в нештатном режиме (типа разрешения 800х600).
После полного удаления bumblebee все стало работать нормально.
Интересно, кто-то сталкивался с таким? Или просто сырая еще программа?

Unknown комментирует...

У меня в одно из обновлений ядра были проблемы с bumblebee. Я полностью удалила пакеты bumblebee, обновила ядро и установила bumblebee повторно. При последующих обновлениях больше подобных проблем не случалось

Анонимный комментирует...

Татьяна, здравствуйте!

Спасибо большое за статью! А как Вы думаете может ли ужиться bumblebee c linux-phc и pf-kernel?) Хочу попробовать объединить эти компоненты) У меня ноут Core i7, 540 карта, Оптимус. Хочу чтобы было отзывчиво, производительно и энергоэффективно) Что думаете?

Unknown комментирует...

Татьяна, Вы супер!!!
Всё просто и понятно написано.
Вера Ваша очень показательна. Я в своё время не верила и не советовала покупать девайсы с OPTIMUS, но самой именно такой ноут подарили.
Сколько я с ним боролась... А теперь всё просто, как дважды два!
У меня Ubuntu 12.04 Работает на 5. Спасибо.

Unknown комментирует...

:)))
А я знала, что ведется работа над bumblebee, так что осознано купила ноут с Optimus, потому что верила, что они сделают эту поддержку. Поначалу приходилось собирать из исходников самостоятельно, ну, а теперь действительно все просто, так же просто, как всё для убунту.

Unknown комментирует...

М-да )) Надо было мне заглянуть на сайт совместимости железа с Ubuntu прежде чем опрометчиво покупать 17" Samsung с технологией Nvidia Optimus (((
Только вроде бы решишь проблему, как приходят обновления, после установки которых экран рассинхронизируется еще при загрузке (( А без обновлений я себе как-то не представляю Линукс. Позарился на дюймы ))

Unknown комментирует...

Разве проблема с Оптимус не решена? Все теперь работает, не то что было год назад

Unknown комментирует...

Разве проблема с Оптимус не решена? Все теперь работает, не то что было год назад

Рудик комментирует...

Спасибо большое! Вроде помогло!)

Рудик комментирует...

Татьяна, я люблю Вас!! Ещё раз спасибо!!!

Unknown комментирует...

Все поставил-толку ноль в glxspheres показывает 60fps bbswitch в ручную не переключаеться! пишет что отказанно в доступе пользователя прописывал в usermod писал что такого пользователя нет
У меня ноут hp pavilion g6 видио Gforce520m и intel

Unknown комментирует...

Нет, проблема не решена. Проблема решится, когда выйдет официальный драйвер с поддержкой оптимуса. Почему я так категоричен? Да потому что вся суть оптимуса в автоматическом переключении карт. СЕйчас поставил bumblebee 3.1 и с ним primus. производительность реально выше, чем через virtualgl. Например в Counter-Strike: Source fps поднялся с 80 до 150 на выскоих настройках (и производительность оказалась на уровне винды) а про glxspheres я вообще молчу, более чем в 2 раза поднялся fps. если у кого с примусом дает 60 fps то отключите вертикальную синхронизацию vblank_mode=0 primusrun

Так что, проблема решена лишь частично и еще на стадии решения. Но то, что есть сейчас - это лучшее.

Василий комментирует...

костыль это не доделаный. Да, карточку включаем, выключаем... а вывод видео на внешние мониторы(телевизоры)? Чтобы раскрутить hdmi надо куча шаманства и результат - костыль с кучей ограничений. Про DVI даже упоминаний не встречал. Конечно, спасибо огромное людям за "шмеля", но если есть выбор, не берите системы с оптимус - вместо удовольствия от пользования, один головняк

Unknown комментирует...

привет уважаемому сообществу.
моя конфигурация dell5110 + Ubuntu 12.10
Все работает как хорошие швейцерские часы. Удовлетворен на 90%. Одно но это расход батареи за счет одновременного использования двух видео карт. Протитал про шмеля, впечатлило. Но есть один вопрос. Я в работе ИСПОЛЬЗУЮ СРАЗУ ДВА МОНИТОРА. То есть я использую родной ноутбучный монитор 1366*786 и подключаю внешний монитор 1920*1080. И оба монитора работают со своими родными разрешениями. Очень удобно. Мой воспрос такой: кто работал с двумя мониторами после установки шмеля bumblebee? Отпишитесь пожалуйста у кого есть такой опыт. Заранее благодарю algol99

Unknown комментирует...

Никаких проблем нет, у меня точно так же к ноуту подключен телевизор по HDMI со своим разрешением, считайте тот же второй монитор

Анонимный комментирует...

Помогите, плиз!... У меня при установки bumblebee не нашлись пакеты acpi-call-tools и acpi-call-source. Что делать? Как быть?
Ноутбук Dell Inspiron n5110

Unknown комментирует...

Это нормально для последних версий убунту и убунтуподобных, просто уберите эти ракеты из команды установки и устанавливайте только те пакет на которые не ругается система. Всё будет работать

Отправить комментарий