Установка Nvidia Prime в Ubuntu

Сейчас большинство ноутбуков продается с гибридной графикой.
В данной статье пойдет речь про связку Intel + Nvidia.

Разберу установку Nvidia Prime, которая позволяет при выборе видеокарты Intel, отключать питание дискретной карты Nvidia, обеспечивая снижение энергопотребления и более тихую работу системы охлаждения.

О технологии Nvidia Optimus.

NVIDIA Optimus - технология, созданная компанией NVIDIA для продления срока работы компьютера от аккумулятора. Технология в основном используется в мобильных компьютерах и ноутбуках. Nvidia Optimus использует дискретный GPU для рендеринга когда это необходимо, и отключает питание дискретного GPU когда он не используется.

Начиная с Ubuntu 13.10 и Ubuntu 12.04.3 - появился новый пакет nvidia-prime , предоставляющий официальную поддержку технологии Nvidia Optimus.

Nvidia Prime позволяет выбрать, какую видеокарту использовать: дискретную Nvidia или встроенную Intel.

И начиная с версии 0.5 nvidia-prime при выборе видеокарты Intel отключает питание дискретной карты Nvidia, обеспечивая снижение энергопотребления и более тихую работу системы охлаждения.

Есть еще проект BumbleBee, обеспечивающий работу Nvidia Optimus в Ubuntu.

Подготовка к установке Nvidia Prime в Ubuntu.

Сама установка Nvidia Prime очень простая.
Но нужно перед установкой выполнить определенные действия, чтобы Nvidia Prime заработала в Ubuntu.


Если у вас установлен BumbleBee, то его нужно удалить обязательно.

Проекты Bumblebee и Nvidia Prime не совместимы между собой. Поэтому, чтобы правильно установить проприетарный драйвер Nvidia вместе с Nvidia Prime, нужно удалить Bumblbee.

Для правильного удаления bumblebee из Ubuntu выполните следующие команды в терминале:

Удаляем bumblebee и пакет  bbswitch-dkms:
sudo apt-get purge bumblebee* bbswitch-dkms

sudo apt-get autoremove
Отключить репозиторий bumblebee:
sudo apt-add-repository -r ppa:bumblebee/stable
sudo apt-get update
Установить пакет bbswitch-dkms:
sudo apt-get install bbswitch-dkms

Теперь BumbleBee удален из системы.


Если у Вас Ubuntu 14.10 и выше.  

Можете приступать к установке Nvidia Prime.


Если у Вас Ubuntu 14.04. 

Очень важно!
После установки Nvidia Prime и выборе видеокарты nvidia, вы получите черный экран.

Это баг ubuntu: описание бага на ланчпаде

В общем, убунтовцы сломали два пакета  ubuntu-drivers-common и nvidia-common, ничего не починили до сих пор.

В результате чего, что бы вы не делали, то на видеокарте nvidia вы не загрузитесь.

Итак, решение этой проблемы следующее:
Нужно вернуть старые версии пакетов ubuntu-drivers-common и nvidia-common:
sudo apt-get install ubuntu-drivers-common=1:0.2.91.4 nvidia-common=1:0.2.91.4

И запретить их обновление в системе:
sudo apt-mark hold ubuntu-drivers-common nvidia-common

Обязательно перегрузиться, вот теперь можно приступать к установке Nvidia Prime.


Если у Вас Ubuntu 12.04.

Нужно установить новые версии ядра и графического стека (если они у вас не установлены), выполнив команду:
sudo apt-get install linux-generic-lts-saucy xserver-xorg-lts-saucy linux-headers-generic-lts-saucy

Кроме того, при открытии настроек (nvidia-settings) видеокарты Nvidia будет падать ошибка, чтобы исправить это, нужно установить следующий пакет:
sudo apt-get install gtk2-engines-pixbuf:i386

Вот, в принципе и всё. Теперь можно приступить к установке Nvidia Prime.

Установка Nvidia Prime в Ubuntu.

Правильнее устанавливать самый последний драйвер, доступный для вашей модели видеокарты Nvidia.

Давайте определим версию последнего драйвера для нашей модели видеокарты.

Сперва узнаем модель нашей видеокарты.
Чтобы узнать модель видеокарты Nvidia, выполните следующую команду:
lspci -k | grep -E "VGA|3D"
Будут показаны обе видеокарты, смотрим на строчку с Nvidia и видим версию нашей видеокарты:


Теперь мы знаем модель нашей видеокарты идём на официальный сайт nvidia:

Выбираем модель нашей  видеокарты и жмем поиск:


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

Увидели актуальную версию видеодрайвера. Также здесь можно почитать "Особенности выпуска".

Подключаем в систему репозиторий, в котором собирают пакеты последний драйверов для Ubuntu:
sudo apt-add-repository ppa:xorg-edgers/ppa
sudo apt-get update
Ставим драйвер последней версии, настройки и пакет nvidia-prime:
sudo apt-get install nvidia-346 nvidia-settings nvidia-prime

Вместо nvidia-346 нужно выбрать версию, которая была показана на странице поиска с официального сайта nvidia.
То есть, если на сайте будет версия 350, то надо будет устанавливать nvidia-350.

После установки драйверов, настоятельно рекомендую удалить данный репозиторий (если захотим обновить драйвера, то просто опять подключить его).
Для удаления репозитория выполните следующую команду:
sudo apt-add-repository --remove -y ppa:xorg-edgers/ppa
sudo apt-get update

Всё. Теперь установлены последний драйвера nvidia и nvidia prime.

Переключение видеокарт.

Открываем Nvidia Settings (Настройки) и переходим на вкладку Prime Profiles, где можно выбирать видеокарту:


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

Также можно делать переключение видеокарт в терминале.

Для того чтобы проверить, какая видеокарта работает:
prime-select query


Для того, чтобы выбрать видеокарту nvidia, нужно ввести следующую команду:
sudo prime-select nvidia

Для того, чтобы выбрать видеокарту intel, нужно ввести следующую команду:
sudo prime-select intel

Проверил FPS на двух версиях драйверов на Ubuntu 14.04.

Это на 331 версии, которая доступна в репозитории Ubuntu.


А это на самых последней версии драйверов:


На последних драйверах чуть-чуть больше вышло.

Вот и всё.

Поделиться:

Если у Вас возникли вопросы.

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

53 коммент. :

  1. Странное руководство. Что за баг в Ubuntu 14.04 ? Его же уже исправили =)

    ОтветитьУдалить
    Ответы
    1. Пофиксили? Хм.. а у меня вот есть такая проблема

      Удалить
    2. Люди в комментах отписывались к этому багу, что осталась проблема и спасает только даунгрейд версии пакетов. Это второй косяк серьезный у убунтовцев за последнее время на LTS релизе.
      По идее они все силы бросили на убунту для телефонов...

      Удалить
    3. Понятно. Спасибо за статью.

      Удалить
    4. У меня вообще пакет nvidia-common не установлен. А ubuntu-drivers-common имеет версию 0.2.91.7.

      nvidia-prime работает замечательно. Ubuntu 14.04.2 64 bit (ядро 3.16)

      Удалить
    5. Не совсем замечательно, при использовании тачпада происходят зависания, поэтому использую мышь.

      Удалить
  2. Спасибо большое за данную публикацию, это решение проблемы которую я описывал на аске)))

    ОтветитьУдалить
    Ответы
    1. Пожалуйста. Я целый вечер промучился, чтобы завести на 14.04 нвидиа :). У Вас получилось?

      Удалить
    2. Пока не пробовал, через час где то буду испытывать, но думаю получится)) Как сделаю, отпишусь

      Удалить
    3. Обязательно отпишитесь :).

      Удалить
  3. Все норм работает вроде)

    ОтветитьУдалить
    Ответы
    1. Если задействована nvidia в nvidia-setting то она работает постоянно во всех приложениях?

      Удалить
  4. В один прекрасный момент все упало на 14.04 Также промучившись, я свалил на, тогда еще бету, 14.10
    Из моих наблюдений:
    Я всегда был сторонником Bumblebee, считал, что это удобней, запустил приложение и все, не надо перелогиниваться в сессию. Но бамблби не работал у меня на 14.10, сидел на прайм. Когда удалось завести бамблби, стало очевидным, что прайм был лучше :) На самом деле проще весь вывод направить через нвидиа при помощи Прайм, чем бороться с подводными камнями бамблби(игру в стиме никак не удавалось запустить без танцев с бубном например).
    Бабмбли больше не развивается как проект, если не ошибаюсь, последние коммиты были году так в 12ом...
    При активной карте нвидиа, если пользоваться тачпадом, периодически зависает все к чертям. Помогает выход в tty и возврат в графическое окружение обратно(Ctrl Alt F7). О таком баге я читал, не знаю, пофикшено или нет, не интересовался

    ОтветитьУдалить
    Ответы
    1. еще добавлю, что с ядрами 3.18+ получаем черный экран, прям совсем черный, даже без подсветки монитора) но звук стартанушвей убунты есть

      Удалить
    2. Спасибо большое за информацию. Надо будет почитать на счет тачпада.
      У меня не зависает, правда.

      На счет ядра, то я всегда против того, чтобы обновлять самостоятельно ядро :).
      На сколько помню, то сейчас вроде 3.16 версия ядра на Ubuntu 14.10.

      Удалить
    3. Ссылка на баг
      https://bugs.launchpad.net/xorg-server/+bug/1220426

      Удалить
    4. Почитал мельком, судя по всему, починили, но пакета с фиксом в убунтурепах официальных нет(если я все правильно понял). Может xorg-edgers включили в свои пакеты этот патч?

      Удалить
  5. Перенес часть информации отсюда в wiki http://help.ubuntu.ru/wiki/nvidia-prime
    И в конце добавил ссылку на эту страницу.

    ОтветитьУдалить
    Ответы
    1. Отлично, посмотрел. Рад, что моя информация оказалась полезной.

      На форуме была проблема у человека "The system is running in low-graphics mode", у меня была проблема такая, когда я в попытках починить черный экран, менял xorg конфигурацию.

      Можно человеку посоветовать:
      Снести все дрова,
      sudo apt-get purge nvidia-346 nvidia-settings nvidia-prime
      вместо nvidia-346 ту версию что ставили, удалить.
      Потом удалить конфигурации xorg, их используют только драйвера нвидиа:
      sudo rm /etc/X11/xorg.conf*

      Ну и установить драйвера нвидиа и прайм по новой.

      Удалить
    2. Здраствуйте Эдуард. У меня тоже проявилась эта проблема в Ubuntu 14.04.3 с драйвером nvidia-352 (352.63), решил проблему так:

      % sudo apt-get purge nvidia-352 nvidia-settings nvidia-prime

      % sudo rm /etc/X11/xorg.conf*

      % sudo apt-mark unhold ubuntu-drivers-common nvidia-common

      % sudo apt-get update && sudo apt-get dist-upgrade

      % sudo apt-get install nvidia-352 nvidia-settings nvidia-prime

      только после этих действий заработал драйвер Nvidia ;)

      Эти команды ломают систему 14.04.3:
      % sudo apt-get install ubuntu-drivers-common=1:0.2.91.4 nvidia-common=1:0.2.91.4
      % sudo apt-mark hold ubuntu-drivers-common nvidia-common

      PS. Ноутбук ASUS N55SF (GeForce GT555M 2GB)

      Удалить
    3. Спасибо ALEXANDER.Собственно столкнулся с проблемой накрытия системы и вылечил по вашему примеру. Система вообще отказывалась загружаться.Пришлось заходить под раньшим ядром с ошибкой и вводить команды которые вы привели в пример. После этого всё пошло.

      Удалить
    4. Да забыл указать свой ноут - Acer Aspire E 15.Intel Core i5/ Geforce 840M.

      Удалить
    5. Этот комментарий был удален автором.

      Удалить
    6. АНДРЕЙ рад что вам помогло ;)

      Удалить
  6. Анонимный3 марта 2015 г., 8:00

    Как сделать чтоб переключение было автоматом, а не вручную??

    ОтветитьУдалить
  7. На моём ноутбуке отлично работает такая и только такая схема: Установка Ubuntu 14.04.1- Обновление системы- Перезагрузка- Установка драйверов Nvidia с помощью Менеджера обновлений (System settings- Software & Updates- Additional Drivers)- Перезагрузка- Выбор нужного видеоадаптера в Nvidia Settings. Все остальные попытки установить через консоль успехом не увенчались. Видеокарта 740м.

    ОтветитьУдалить
  8. Напишите пожалуйста про установку драйвера АМД

    ОтветитьУдалить
  9. У кого получилось запустить в отдельных иксах, под Nvidia, с изображением... Только Intel запускается с картинкой...

    ОтветитьУдалить
  10. Для моего драйвера 334 нет репозитория. Установил 331

    ОтветитьУдалить
  11. Здраствуйте. У меня по вашей статье все получилось Ubuntu 14.04 (Intel / Nvidia Geforce 740m). Только одна проблема появилась - после переключения на карту Nvidia нет соответствия между яркостью экрана и OSD-линейкой яркости, т.е. она регулируется но "сама по себе". На Intel все работает корректно. Это когда нажимать клавишу Fn+Яркость вниз или вверх.
    Ничего не подскажете ?

    ОтветитьУдалить
    Ответы
    1. И да, при работе с тачпада все зависает - помогает только Ctrl+Alt+F7

      Удалить
    2. На счет тачпада вот баг:
      https://bugs.launchpad.net/xorg-server/+bug/1220426

      До сих пор подтверждается. Решение здесь одно, отключать тачпад и пользоваться мышкой.
      Поставьте индикатор:
      http://www.linuxrussia.com/2013/08/touchpad-indicator-ubuntu.html
      Когда переключаетесь на нвидиа, то отключайте тачпад.

      По поводу яркости. Что значит неадекватно себя ведет??

      Удалить
    3. Не совсем понял по поводу яркости. На полном ползунке неполная яркость или как именно не соответствует?

      Удалить
    4. Зравствуйте, извините за отсутствие . Яркость регулируется и полоса двигается, только не правильно. Т.е. когда увеличиваю яркость полоса-индикатор быстро достигает 100% хотя яркость изменяется несущественно. Если продолжать увеличивать яркость (Fn+яркость вверх) то яркость будет увеличиваться, а полоса остается на месте, так как она быстро добежала до конца. То же самое и при снижении яркости. Полоса быстро добегает до 0%, и только потом яркость плавно все же снижается.
      Как-то так

      Удалить
    5. Здесь трудно сказать в чем дело.
      И как правило зависит от версии драйверов и версии ядра линукса.
      Порой было, что на одной версии ядра линукс у меня регулируется яркость, потом обновляется ядро и яркость не регулируется. Сейчас уже такого не встречаю бага, но раньше было.

      Здесь явно нужно кучу форумов читать и репортов по багам на ланчпаде. Сам с такой ошибкой не сталкивался.

      Если хотите более точно выставлять яркость, то вот я писал, как из консоле это делать, можете также sh скрипт сделать для разных уровней свой sh:
      http://www.linuxrussia.com/2013/11/backlight-ubuntu-laptop.html
      найти свой вендор можно командой:
      grep acpi_video /var/log/Xorg.0.log

      Удалить
    6. Пока, все же удалил драйвера на нвидиа и пользуюсь интел. Просто часто использую тачпад, а баг уже столько времени так и остается. :)
      Ну а вам спасибо за такой информативный сайт и за скорую помощь. Удачи.

      Удалить
  12. Для быстрого переключения кар есть еще indicator-prime. Иконка выводится в системный трей.

    sudo add-apt-repository ppa:nilarimogard/webupd8
    sudo apt-get update
    sudo apt-get install prime-indicator

    Перезагрузка.

    ОтветитьУдалить
  13. Анонимный3 мая 2015 г., 17:06

    Баг с черным окном уже исправили?

    ОтветитьУдалить
  14. Доброго времени суток! ;) Кто нибудь знает как установить CUDA 7.0 в Ubuntu 14.04.2 LTS amd64? Драйвера были установлены по данному how-to. Очень хочется попробовать CUDA в Python через модуль PyCUDA, а за одно и pyrit/oclHashCat/etc.. ASUS N55SF/8GB RAM/GeForce GT555M 2GB

    ОтветитьУдалить
    Ответы
    1. Попробуйте вот этот гайд:
      http://www.r-tutor.com/gpu-computing/cuda-installation/cuda7.0-ubuntu

      Удалить
    2. Эдуард поставил по этому гайду на чистую систему. Появились проблемы.. Система стартует через раз, все зависает еще на заставке убунту.. жму кнопку питания система вырубается. после повторного включения запускается, но появился горизонтальный тиринг(( драйвера nvidia версия 346.46 тянуться из репов вместе c CUDA.. если поставить CUDA после операций из вашего гайда то система не стартует вообще.. похоже я просто не отключил репозитории xorg-edgers. cuda переустанавливает драйвер(стоял 349 воткнулся 346 из репов nvidia). Думаю попробовать установить из .run файла может так получится?
      Скомпилировал SDK с примерами каждая программа валится в корку(( дальше если не получится попробую версию 6.5

      Удалить
    3. Я бы рад помочь с Cuda, но я никогда не ставил, мне без необходимости это всё. Извиняюсь, но к сожалению не подскажу ничем в данном вопросе.
      На счет cuda посоветовал бы вот в этой ветки на офф форуме убунты пообщаться, думаю там советы дадут люди, которые этим всем делом занимались:
      http://forum.ubuntu.ru/index.php?topic=221862.0

      Удалить
    4. Уже читаю)) Спасибо за советы и за статьи ;)

      Удалить
  15. Эдвард, спасибо за статью, вот эта часть:
    "Нужно вернуть старые версии пакетов ubuntu-drivers-common и nvidia-common:
    sudo apt-get install ubuntu-drivers-common=1:0.2.91.4 nvidia-common=1:0.2.91.4

    И запретить их обновление в системе:
    sudo apt-mark hold ubuntu-drivers-common nvidia-common..."

    оказалась актуальна для системы, собранной на процессорах AMD с интегрированной графикой и дискретной картой Nvidia (мой вариант AMD A8 7600+Nvidia 650Ti ). Никак не удавалось запустить систему с проприетарным драйвером Nvidia, но после возвращения старых версий пакетов все заработало!

    ОтветитьУдалить
  16. Привет! Как активировать HDMI . ?? Как исправить?

    ОтветитьУдалить
  17. Так Прайм или Шмель? давно перебрался бы на Ubuntu, но в 13-14 году поддержка Optimus была никакой просто...

    ОтветитьУдалить
  18. Не подскажете, есть ли возможность назначить внешнему монитору видеокарту NVidia, а монитору ноутбука - Intel? Ну или хотя бы при подключении внешнего монитора по HDMI задействовать карту NVidia, а при отсутствии подключения - Intel?

    ОтветитьУдалить
  19. Что-то у меня слетел nvidia-prime, не знаю почему по моему из-за ядра 4.4.0-34-generic, вообщем обратно не удалось мне вернуть nvidia-prime получаю темный экран, Ubuntu 14.04 ASUS G750JS карта Nvidia 870M. Работаю на шмеле, время работы от аккамулятора увеличилось в 2 раза, так что не желею. Только узнать производительность карты Nvidia сейчас никак.

    ОтветитьУдалить