Блог начинающего сисадмина Установка проприетарного

Блог начинающего сисадмина Установка проприетарного

суббота, 3 августа 2013 г.

Установка проприетарного драйвера NVIDIA на ноутбук с технологией Optimus

В этой заметке я опишу установку проприетарного драйвера NVIDIA на ноутбук с технологией NVIDIA Optimus, а также настройку bumblebee .

Предисловие.

При покупке ноутбука, я не сразу обратил внимание на то, что в ноутбуке две видеокарты: встроенная в процессор и дискретная ( Nvidia GeForce 710M ).

При попытке выбора видеокарты в BIOS были только два пункта: switchable и integrated .

То есть пункта выбора дискретной видеокарты не было.

Немного погуглив я обнаружил, что мой ноутбук поддерживает технологию NVIDIA Optimus .

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

Таким образом, у карты NVIDIA нет модуля вывода изображения, то есть, дискретная видеокарта обрабатывает изображение, а встроенная карта Intel выводит на экран.

Плюсы этой технологии в том, что питание действительно экономится.

Минусы — нельзя никак использовать дискретную видеокарту напрямую.

Причем эта технология работает на Windows 7 сразу же при установке проприетарного драйвера. В Linux это не так, поэтому умельцы написали приложение bumblebee, для настройки технологии.

Прежде чем что-то устанавливать, убедитесь, что ваш ноутбук действительно поддерживает эту технологию.

Проверить можно так:

$ lspci -vnn | grep »'[030[02]]’

00:02.0 VGA compatible controller [0300]: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0116] (rev 09) (prog-if 00 [VGA controller])

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GF117M [GeForce 610M/710M / GT 620M/625M/630M/720M] [10de:1140] (rev ff) (prog-if ff)

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

Как правило видеокарты начиная с серии 4ххМ ( M = mobile мобильная) и новее уже содержать в себе технологию Optimus.

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

$ sudo apt-get update

$ sudo apt-get dist-upgrade

$ sudo shutdown -r now

Теперь добавим нужные нам репозитарии и установим проприетарный драйвер NVIDIA и саму программу bumblebee:

$ sudo add-apt-repository ppa:bumblebee/stable

$ sudo add-apt-repository ppa:ubuntu-x-swat/x-updates

$ sudo apt-get update

$ sudo apt-get install bumblebee bumblebee-nvidia nvidia-current

$ sudo shutdown -r now

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

$ optirun nvidia-settings -c :8

В System Information — NVIDIA Driver Version видим 304.88. это версия драйвера. Значит, что драйвер установился.

Либо альтернативный вариант проверки:

$ optirun glxinfo | grep OpenGL | head -3

OpenGL vendor string: NVIDIA Corporation

OpenGL renderer string: GeForce 710M/PCIe/SSE2

OpenGL version string: 4.2.0 NVIDIA 304.88

Вы наверняка заметили, что я запускал glxinfo с помощью optirun .

В этом и заключается работа приложения bumblebee.

Теперь введем то же самое, но уже без optirun:

$ glxinfo | grep OpenGL | head -3

OpenGL vendor string: Intel Open Source Technology Center

OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile

OpenGL version string: 3.0 Mesa 9.1.3

Таким образом, мы убедились, что программа запущенная с помощью команды optirun будет использовать проприетарный драйвер NVIDIA, а по умолчанию — свободный.

У bumblebee есть два backend`а для проброса изображения отрисованного на карте NVIDIA. Это VirtualGL и Primus .

По некоторым словам, Primus проще и более производителен.

Непосредственно объяснение различий VirtualGL и Primus:

Bumblebee использует VirtualGL для вывода изображения. Эта технология была задумана для использования по сети, то есть чтобы вывести изображение нужно было (скопировать изображение, сжать, отправить по сети и вывести на монитор).

Primus же использует более прямой подход копируя изображение прямо на вторую видеокарту и выводя изображение. В теории это должно дать прирост производительности, так как Primus не выполняет лишних действий.