Установка графического драйвера NVidia в Ubuntu 14.04

В статье пойдет речь об установке графического драйвера NVidia, на ноутбук Dell XPS 15 в Ubuntu 14.04. Другими словами, я расскажу как установить драйвера NVidia на дискретную видео карту для любого ноутбука с двумя встроенными видео картами. Обычно это встроенная Intel, и мощная дискретная NVidia, у меня к примеру GeForce GT 640M. Так же мы рассмотрим, что такое Bumblebee, Primus и optirun. И поговорим как запускать отдельные приложения (к примеру Steam, Dota2) на дискретной GeForce GT 640M и как экономить потребление электроэнергии в ноутбуке. Но, обо всем по поряду ниже в статье.

Для начала немного теории

Современные ноутбуки зачастую поставляются с двумя графическими картами. В ноутбуках Dell, это встроенная Intel Corporation 3rd Gen Core processor Graphics Controller для которой Ubuntu использует драйвер i915, и дискретная, более мощная и дорогая NVIDIA Corporation GK107M [GeForce GT 640M].

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

Если же вы решили поиграть в соврменные игры, то в дело вступает дискретная карта ноутбука, обеспечивая вам должную производительноть в игре, но при этом потребляя много энергии, сильно нагреваясь и шумя.

Графические драйвера для Windows “умные” и они сами знают когда задействовать нужное железо. К сожалению для Linux, не все так хорошо, и если вы поставите Ubuntu на такой ноутбук, то заметите, что ноутбук сильно греется без причины, шумит, и у него быстро садится батарея.

Bumblebee Project‏

Bumblebee 3.2.1 был выпущен 26 Апреля 2013 специально для поддержки технологии NVIDIA Optimus в Linux. Nvidia Optimus это технология графических карт Nvidia созданная для улучшения показателей производительности\потребления энергии графическими карточками. В зависимости от нагрузки и выполняемого приложения, Nvidia Optimus будет незаметно для пользователя переключаться между двумя карточками ноутбука с целью предоставить максимум производительности или максимум сохранения энергии. В Linux это технология официально не поддерживается, в Windows конечно она имеете официальную поддержку от производителя.

Nvidia Optimus is a computer graphics hardware power/performance optimization technology created by Nvidia which, depending on the resource load generated by client software applications, will transparently and seamlessly switch between two graphics adapters within a computer system in order to provide either maximum performance or minimum power draw from the system’s graphics rendering hardware.

Bumblebee полезен не только тем, кто собирается на своём ноутбуке катать в Дотан с ребятами, а для всех тех, кто хочет грамотно использовать ресурсы своего ноутбука, избегая перегрева и излишнего потребления электричества и заряда батареи.

Установка драйвера NVidia в Ubuntu‏

Посмотреть сколько у вас графических карт и какие они вы можете так:

lspci -vnn | grep -i VGA -A 12
lspci -vnn | grep -i VGA -A 12

Результат должен быть примерно такой:
Selection_001

Для установки самых свежих NVidia драйверов в Ubuntu Trusty/14.04, и Utopic/14.10 лучше всего использовать специально подготовленный РРА – xorg-edgers:

Добавляем РРА в систему и ставим драйвер:

sudo add-apt-repository ppa:xorg-edgers/ppa -y
sudo apt-get update
sudo apt-get install nvidia-current nvidia-settings
sudo add-apt-repository ppa:xorg-edgers/ppa -y
sudo apt-get update
sudo apt-get install nvidia-current nvidia-settings

Там же можно найти разные версии драйверов:

aptitude search nvidia
aptitude search nvidia

Для примера:

nvidia-173
nvidia-304
nvidia-310
nvidia-319
nvidia-331
nvidia-340
nvidia-343
nvidia-current
nvidia-experimental-Х
nvidia-173
nvidia-304
nvidia-310
nvidia-319
nvidia-331
nvidia-340
nvidia-343
nvidia-current
nvidia-experimental-Х

Установка Bumblebee в Ubuntu‏

Так же как и графические драйвера nvidia, Bumblebee лучше всего устанавливать из стабильного РРА:

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

Primus теперь доступен в РРА Bumblebee, так что просто ставим:

sudo apt-get install primus
sudo apt-get install primus

Для Ubuntu 64bit нужно доставить пакет:

sudo apt-get install primus
sudo apt-get install primus

Теперь все готово. Выполните перезагрузку.

Смотрим на результаты‏

Что-бы проверить как драйвера nvidia и Primus влияют на производительность требовательных приложений, давайте сделаем несколько тестов. Для этого мы будем использовать программку glxspheres, в Ubuntu 64bit она называется glxspheres64 и находится тут /usr/bin/glxspheres64.

Давайте для начала запустим ее без Primus бэкенда и посмотрим на результат:
Selection_002

Как видно из скриншота, glxspheres64 запустилась с помощью встроенной графической карты Intel и открытого драйвера Mesa. Производительность установила планку ~66FPS. Что очень средненький результат.

Теперь, давайте запустим эту же программу, с помощью Nvidia Optimus:
Selection_003

На скриншоте видно, что теперь, для запуска утилиты glxspheres64 была задействованная дискретная GeForce GT 640M, а производительность сильно возросла, установив планку ~175FPS

Теперь давайте запуститм glxspheres64 с помощью primusrun:
Selection_004

На скриншоте видно, что GeForce GT 640M снова в деле, но производительность увеличилась в двое и теперь моя карточка выдает ~245FPS. Что является отличным показателем! Я запустил primusrun c ключом vblank_mode=0 primusrun, этот ключ рекомендован разработчикам в тех случаях, когда вам нужно отключить vblank синхронизацию.

В чем разница между optirun и primusrun? optirun использует VirtualGL, Primus же дает лучшую производительнось и более оптимальное энергопотребление в связке с Bumblebeе, заменяя VirtualGL.

Запуск Dota2 и Steam в Ubuntu Linux

Если вы хотите (а вы хотите) запускать Dota2 или Steam на дискретной видео карте и получать максимальную производительность, вам стоит запускать необходимое приложение с помощьюе primusrun бэкенда. Откройте Steam, выберете нужную игру, и клацните правой кнопкой мыши:
Screenshot from 2014-09-20 14:56:33

В строку запуска впишите primusrun:
Selection_006

Если у вас останутся вопросы, смело задавайте.