Установка 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.

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

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

Вот и всё.

  • https://www.blogger.com/profile/01315543991029397323 neon1ks

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      Не исправили.

    • Анонимный

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

    • https://www.blogger.com/profile/01315543991029397323 neon1ks

      Понятно. Спасибо за статью.

    • https://www.blogger.com/profile/01315543991029397323 neon1ks

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

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

    • https://www.blogger.com/profile/01315543991029397323 neon1ks

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

  • Анонимный

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

    • Анонимный

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

  • Анонимный

    Все норм работает вроде)

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      Отлично 🙂

    • https://www.blogger.com/profile/13482870837615136060 Sk1f 0

      Если задействована nvidia в nvidia-setting то она работает постоянно во всех приложениях?

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      да.

  • https://www.blogger.com/profile/04880262300486968149 Дмитрий Белякин

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

    • https://www.blogger.com/profile/04880262300486968149 Дмитрий Белякин

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

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

    • https://www.blogger.com/profile/01315543991029397323 neon1ks
    • https://www.blogger.com/profile/04880262300486968149 Дмитрий Белякин

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

  • https://www.blogger.com/profile/01315543991029397323 neon1ks

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

      На форуме была проблема у человека "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*

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

    • https://www.blogger.com/profile/00971365922302758576 Alexander Suvorkin

      Здраствуйте Эдуард. У меня тоже проявилась эта проблема в 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)

    • https://www.blogger.com/profile/18279786714246385195 Unknown

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

    • https://www.blogger.com/profile/18279786714246385195 Андрей Самонов

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

    • https://www.blogger.com/profile/00971365922302758576 Alexander Suvorkin

      АНДРЕЙ рад что вам помогло 😉

  • Анонимный

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

    • Анонимный

      Ни как.

  • Анонимный

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

  • https://www.blogger.com/profile/04652213707683008491 Anatoliy Podmazko

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

  • https://www.blogger.com/profile/10478528230410985981 Владимир Агеев

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

  • Анонимный

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

  • https://www.blogger.com/profile/17653174355096530597 Did Mazay

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

    • https://www.blogger.com/profile/17653174355096530597 Did Mazay

      И да, при работе с тачпада все зависает — помогает только Ctrl+Alt+F7

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

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

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

    • https://www.blogger.com/profile/17653174355096530597 Did Mazay

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

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

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

    • https://www.blogger.com/profile/17653174355096530597 Did Mazay

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

  • https://www.blogger.com/profile/09390304281773153062 4_giga

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

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

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

  • Анонимный

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

    • https://www.blogger.com/profile/17608790449690288127 Максим Данилов

      Привет из 2016. Нет.

  • https://www.blogger.com/profile/00971365922302758576 Alexander Suvorkin

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

    • https://www.blogger.com/profile/00971365922302758576 Alexander Suvorkin

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

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

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

    • https://www.blogger.com/profile/00971365922302758576 Alexander Suvorkin

      Уже читаю)) Спасибо за советы и за статьи 😉

  • https://www.blogger.com/profile/01555828908263237547 Strelook DePonte

    Эдвард, спасибо за статью, вот эта часть:
    "Нужно вернуть старые версии пакетов 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, но после возвращения старых версий пакетов все заработало!

  • https://www.blogger.com/profile/11394381726847220044 Artem Pushkar

    Привет! Как активировать HDMI . ?? Как исправить?

  • https://www.blogger.com/profile/05078124943841807957 Anton Prohorov

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

  • https://www.blogger.com/profile/14591889493651961413 Unknown

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

  • https://www.blogger.com/profile/13361297776515470007 andrey selukov

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

  • Doge

    Помогите. У меня в nvidia-settings есть только Application profiles и nvidia-settings Configuration. Вывод prime-select query. unknown.

  • Артем

    Привет из 2017. Нет.