NVidia Optimus & openSUSE

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

Немного истории

В начале не было ничего. Простые пользователи, имеющие железо с гибридной графикой и при этом не понимающие аппаратную часть железа, пребывали в недоумении, почему старые методы установки драйвера NVidia теперь не пашут - это проявлялось убитым 3D-ускорением, низким разрешением и т.д.
Первой концепцией поддержки гибридной графики в Linux было предоставлено статьей Дэйвом Эрли (Dave Airlie)](http://airlied.livejournal.com/70348.html), разработчиком nouveau. Он назвал свой проект Prime, который является долгосрочным решением поддержки гибридной графики в Linux. Но в связи с осложнениями на сегодняшний момент для большинства пользователей полноценно не готов и по оценкам планируется на 2013 год.
Затем Мартин Джул (Martin Juhl)](http://www.martin-juhl.dk/) предложил обходной путь, основанный на использовании проекта VirtualGL, где запуск приложений карточки Nvidia происходит за счёт использования дополнительного X-сервера и перенаправления 3D-рендеринга между иксами через буфер работающей карточки Intel. Изначально проект обзывался Prime-NG , но т. к. решение поддержки гибридной графики не было похоже на замысел проекта Prime, то проект был переименован в Bumblebee.
Проект развивался, увеличивалось число участников. Появлялись новые возможности, росла онлайн база, содержащая пользовательские конфигурации и т.д. И в какой-то момент некоторые из участников стали более активны по отношению к проекту, чем MrMEEE , считавшие, что команда будет работать куда лучше, чем единое хранилище пользователя, на котором только владелец может одобрять изменения - замедляет проект. В результате разногласия по поводу подхода развития привело к расколу проекта и возникновению команды - TBP/Bumblebee, в то время как MrMEEE продолжает свое развитие под именем Ironhide для Ubuntu.
По словам разработчиков: команда сосредоточена на разработке стабильной и надежной версии Bumblebee с четким разделением развития и стабильной ветки.

Установка

Внимание! Никаких установок из официального репозитория и тем более исходников .run , иначе должного результата не видать.
Для проверки поддержки технологии NVIDIA Optimus выполните:

$ /sbin/lspci -vnn | grep '\''[030[02]\]'

Если отображается две строки, то Ваша аппаратная часть соответствует технологии.
Собственно сама установка:

  1. Добавьте следующие источники загрузки Bumblebee и Nvidia:
# zypper ar -f http://download.opensuse.org/repositories/home:/tuoma:/Bumblebee/openSUSE_12.1/ Bumblebee_3.0
# zypper ar -f http://download.opensuse.org/repositories/home:/Bumblebee-Project:/nVidia:/295.20/openSUSE_12.1/ nvidia_295.20

2.Обновите репо, скачиванием метаданных и преобразование их в кэш:

# zypper ref
  1. Установите драйвер и собственно сам проект:
# zypper in kernel-`uname -r | cut -f3 -d"-"`-devel # версия пакета должна совпадать с версией ядра
# zypper in x11-video-nvidia nvidia-compute dkms*
# zypper in bumblebee
  1. Отредактируйте в файле конфигурации “/etc/bumblebee/bumblebee.conf” следующую строчку:
Driver=nvidia 
  1. Создайте в системе группу Bumblebee и добавьте для нее пользователя:
# groupadd bumblebee
# usermod -a -G bumblebee $USER
  1. Перезагрузитесь:
# /sbin/shutdown -г now

Использование

Перед вызовом клиента обязательно должен быть запущен демон:

# bumblebeed --daemon

Для получения дополнительных параметров запуска воспользуйтесь:

bumblebeed --help

Для автоматического запуска Bumblebee во время загрузки системы выполните:

# /sbin/chkconfig bumblebeed on

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

$ optirun <имя_приложение>

Возможные проблемы

Не работают эффекты рабочего стола встроенной карты Intel?

  • удалите файл конфигурации xorg.conf сгенерированный утилитой nvidia-xconfig, если таковой имеется:
# rm -f  /etc/X11/xorg.conf

или переместите

mv /etc/X11/xorg.conf /etc/X11/xorg.conf.backup

Не работают 3D-эффекты, а при запуске 3D-приложений в консоли сыпется:
Xlib: extension “GLX” missing on display ":0"

Возможные решения:

  • переустановите GLX библиотеки сервера Xorg:
# zypper in -f xorg-x11-server mesa
  • полностью переустановите видеоподсистему:
# zypper in -f Mesa xorg-x11 xorg-x11-driver-video xorg-x11-driver-video-intel-legacy xorg-x11-libX11 xorg-x11-server

Нет никакой экономии энергии?
Убедитесь, что параметры загрузки ядра не содержат следующие: pci=noacpi, acpi=off. Текущие параметры загрузки, Вы можете посмотреть, выполнив:

$ cat /proc/cmdline 

В логах появляется следующая ошибка:
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) [drm] failed to open device

Если в системе установлен драйвер nvidia и при этом присутствует загруженный модуль nouveau, тогда убедитесь в следующем:

  • в наличии строчки “Driver=nvidia” конфигурационного файла “/etc/bumblebee/bumblebee.conf”
  • в системе должен присутствовать один из файлов с содержимым “blacklist nouveau”:
    /etc/modprobe.d/50-blacklist-nouveau.conf
    или
    /etc/modprobe.d/nvidia.conf
    Если же Вы хотите использовать драйвер nouveau, тогда см. логи.
    Значения FPS optirun glxgears меньше, чем glxgears?
    Попробуйте вместо инструмента для тестирования glxgears, воспользоваться optirun glxspheres. Для повышения FPS используйте различные методы сжатия, например, optirun-с YUV glxspheres. Для просмотра вариантов обратитесь к справочной странице:
optirun --help

**Файлы **

Конфигурация:
/etc/bumblebee/bumblebee.conf
/etc/bumblebee/xorg.conf.nouveau
/etc/bumblebee/xorg.conf.nvidia
Логи:
/var/log/Xorg.8.log
/var/log/messages

Источники:
https://github.com/Bumblebee-Project/Bumblebee/wiki
Nvidia Optimus и Линукс
Связка видео Intel(встроенная в проц) + nVidia(дискретная) (Страница 1) — openSUSE и Novell SUSE Linux — Linux Forum](http://linuxforum.ru/viewtopic.php?id=17868)
http://forums.opensuse.org/forums/english/get-technical-help-here/how-faq-forums/unreviewed-how-faq/469419-opensuse-12-1-optimus-laptop.html

Хорошая статья, не хочешь ее так же оформить в нашей вики Portal:База поддержки — openSUSE ?

В принципе не против, но как-то запутанно изложено на Portal:База поддержки — openSUSE - в частности, как войти под своей учетной записью.

Написано действительно хорошо. Интересно, что вас сподвигло на ее написание?))
А инфраструктура портала действительно… перегружена, что ли. Поэтому лично мне проще что-то писать в свой блог. гугл его находит…

Войти вроде просто, в верхнем правом углу кнопки “Sign up | Login”, вход под общие сусешной учетной записью. Если что, справка по редактированию вики тут Portal:Wiki — openSUSE

Активная 3-x месячная борьба на linuxforum.ru. В результате чего было перелопачено куча информации, вкл. исходники. Вот и подумал, пока в голове что-то осталось, то почему бы не помочь др., разложив все по полочкам.

В том, то и дело, что необходимо время, чтобы разобраться:

Далее:

Теперь все нормально.

Gankov, статью пока не добавлял, чтобы Вы предварительно просмотрели: SUSE Paste
+
Возникло несколько вопросов по тегам:

  • в каких случаях применяется <code>
  • почему в некоторых случаях необходимо указывать абзац <p>, иначе предложение не переносится, когда это необходимо на следующую строку

обратите внимание на категории
+
по поводу источников - в частности на какие стоит ссылаться, а на какие нет.
Спасибо!

Довел дело до ума. Статья размещена здесь](http://ru.opensuse.org/SDB:NVidia_Optimus)

Сам никогда не пользовался, но вот здесь нашел описание Справка:Стиль — openSUSE](Справка:Стиль — openSUSE Wiki)

Потому что в вики абзац создается двойным переводом строки, одинарный перевод строки на внешнее форматирование вроде никак не влияет. Википедия:Как править статьи — Википедия](Википедия:Как править статьи — Википедия)

дополнил

Думаю на любые, какие по твоему мнению будут полезны читателю этой статьи. У нас нет необходимости как то подтверждать источники информации которыми ты пользовался при написании статьи.

Спасибо тебе! за проделанную работу. Немного подправил статью, а так все супер. Особенно для начинающего вики редактора ;).

Спасибо! В будущем учту.
+
Сразу не обратил внимание.
Поскольку визуально информация отображается не совсем корректно, то может в исходниках прописать так:

Конфигурация: 
:<code>/etc/bumblebee/bumblebee.conf</code> 
:<code>/etc/bumblebee/xorg.conf.nouveau</code> 
:<code>/etc/bumblebee/xorg.conf.nvidia</code> 
Логи: 
:<code>/var/log/Xorg.8.log</code>  
:<code>/var/log/messages</code>  

А не так, как сейчас:


Конфигурация:
:<code>/etc/bumblebee/bumblebee.conf 
:/etc/bumblebee/xorg.conf.nouveau 
:/etc/bumblebee/xorg.conf.nvidia</code> 
Логи: 
:<code>/var/log/Xorg.8.log 
:/var/log/messages</code>  

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

Статья просто отличная. И с историческим введением, чем обычно пренебрегают.
И вариант в Вики ещё лучше в плане доведённости.
Однако… ну не для Вики это.
Это авторский материал, и должен идти под именем автора - сообщество должно знать своих героев.
Может, как-то предусмотреть вариант публикации авторских материалов?

Что делать с этим авторским материалом, если найдена ошибка, или чего то не хватает, или инструкция уже неверна, так как все изменилось. Можно ли исправлять это авторский материал? После какого количества правок он перестанет быть авторским? Да и вообще, что подразумевается под авторским? Вики хранит историю всех авторов каждой статьи всегда можно посмотреть. Хотя у нас еще с древних времен в вики попадаются статьи где внизу написано перевел\написал Вася Пупкин. Но что это дает? Позволяет застолбить место что бы никто другой не менял. Какую это приносить пользу для остальных, кроме проблем с большим количеством старых статей в вики.

Не согласен, что хорошо написанный, материал с историей не для вики. Почему он не для вики? В вики наоборот, в конечном итоге получается самый качественный материал, проверенный многими пользователями, со всеми исправлениями. Взять хотя бы туже СУСЕану, опять находил, несколько опечаток, но писать на форум уже было лень, так как это несколько неудобно.

Тем более несогласен что именно этой и подобным инструкциям не место в вики, как раз для таких четких инструкций там самое место. Вообще я бы даже сказал, что это чуть ли не образец для инструкций которые должны быть в вики. Вот рассказа как, я пытался завести у себя на ноутбуке Optimus, дополненный историей о том как я выбирал этот ноутбук и как я 2 месяца на него копил и т.д. у нас в вики не нужен, это надо к себе в блог.

Ну и так как авторский материал, имеет свойство устаревать со временем (так как его никто не будет дополнять), для всех кто хочет писать такие материалы я бы предложил площадку не хуже вики, а именно XBOCT:19 — Журнал XBOCT. Новости о проекте openSUSE на русском. . Во первых материал может быть авторским, напишем об авторе в самом видном месте. Материал имеет дату публикации и запутает пользователя когда устареет. Вы поддержите интерес к openSUSE. В общем добро пожаловать, мы будем только рада новым авторам, правда у нас сейчас тоже принята коллективная работа над материалом, мы исправляем ошибки друг друга, но если вы напишите в комментариях, что текст нельзя трогать, мы не будем.

Воспользовался вашей инструкцией, все вроде хорошо и понятно, но возникла проблема. Когда пытаюсь запустить optirun выдает сообщение об ошибке:

[ERROR]Cannot access secondary GPU - error: You need to change the ConnectedMonitor setting in /etc/bumblebee/xorg.conf.nvidia to

В файле xorg.conf.nvidia пробовал менять значения “ConnectedMonitor”, ничего не помогает. Буду признателен если подскажите куда копать.

cat /var/log/Xorg.0.log
cat /var/log/Xorg.8.log
optirun glxinfo && dmesg | less

Xorg.8.log: http://pastebin.mozilla-russia.org/pastebin.php?dl=110323
Xorg.0.log: http://pastebin.mozilla-russia.org/pastebin.php?dl=110324
dmesg: http://pastebin.mozilla-russia.org/pastebin.php?dl=110325

[FONT=Verdana][size=2] 2524.956] Current Operating System: Linux XTXNOTEBOOK.site 3.5.3-1-desktop #1 SMP PREEMPT Mon Aug 27 12:50:53 UTC 2012 (798a508) x86_64

bbswitch сами собирали?

NVIDIA GLX Module 295.71 Thu Aug 2 19:44:10 PDT 2012

Есть смысл попробовать последнюю версию драйвера из http://download.opensuse.org/repositories/home:/Bumblebee-Project:/nVidia:/
+
закомментируйте строки:

Option "UseEDID" "false"
Option "ConnectedMonitor" "CRT-1"

и еще раз покажите Xorg.8.log
+
Какой ноут?

[/size][/FONT]

Модуль bbswitch собирал сам, так не нашел готового для ядра 3.5, а с ядром 3.1 драйвер интел чудит, смещает изображение. Все что возможно, установлено из репозиториев как указанно в руководстве на вики. Ноут DNS, самосбор отечественный.

Вот Xorg.8.log http://pastebin.mozilla-russia.org/pastebin.php?dl=110348

Вижу только два выхода:

  • использовать последнюю версию драйвера, если еще не пробовали;
  • подсунуть информацию EDID с помощью опции:

Option “CustomEDID”

А есть инструкция как это установить на компьютер без интернета? А то репозиторий([FONT=Verdana][size=2]http://download.opensuse.org/reposit…ject:/nVidia:/)[/size][/FONT] скачанный и записанный в iso, при установке еще .run файлы на 150 метров из интернета хочет.>:(