Не для кого не секрет, что Linux активно продвигается на роль популярной ОС и все больше любителей этой замечательной системы могут позволить себе удовольствие поиграть в современные компьютерные игры. В наши дни уже достаточно хорошо развит Wine для запуска игр семейства Windows, а также для Linux выпущен Steam. Игр в Стиме еще не много под Linux, но Valve активно пропагандируют Linux, как систему отлично подходящую для сего дела. Но в этом коротеньком мануале я хочу рассказать вам вовсе не об этом. На момент написания статьи (лето 2016) владельцам ноутбуков с двумя видеокартами (встроенной и дискретной) весьма неудобно переключаться между ними. Для тех кто не знает, встроенная создана для экономии потребления энергии, а дискретная - более мощная созданная для графических приложений, в частности для игр. Хотя производители видеокарт уже активно выпускают драйвера для своих продуктов под Linux, однако одно неудобство все же осталось - это невозможность автоматического или хотя бы быстрого переключения между встроенной и дискретной видеокартами. У меня стоит NVIDIA GeForce 840M и для переключения нужно открыть nvidia-settings, далее выбрать нужную видеокарту, после чего перелогиниться (требуется перезапуск X.Org). Бывает и так, что и вовсе приходится перезагружаться. Конечно это все не смертельно, но что делать если хочется зайти на пол часика в любимую игру, после чего снова продолжить работать. Лично я не люблю часто перезагружаться. Для этих целей была создана утилита bumblebee, которая позволяет запускать приложения с иcпользованием в нем дискретной видеокарты. В состав приложения входит следующий набор компонентов:
bumblebee - основной пакет проекта bumblebee, содержит в себе команду optirun
bumblebee-nvidia - обеспечивает поддержку проприетарного драйвера nvidia
virtualgl - Бэкенд VirtualGL
virtualgl-libs - необходимые библиотеки для работы virtualgl
virtualgl-libs-ia32 - обеспечивает установку 32 битных библиотек для запуска 32 битных приложений через VirtualGL бэкенд
primus - Бэкенд Primus
primus-libs - необходимые библиотеки для работы primus
primus-libs-ia32 - обеспечивает установку 32 битных библиотек для запуска 32 битных приложений через Primus бэкенд
Нам с вами понадобится лишь команда optirun
. Но для начала нужно установить bumblebee
. Все примеры мы будем рассматривать на примере Ubuntu.
Установка:
sudo apt-get install bumblebee-nvidia primus virtualgl
Хотя можно установить только bumblebee-nvidia
, и он подтянет все зависимости автоматом. Но не будем рисковать, нам еще предстоят танцы с бубном.
Пакет установлен и готов к использованию. Казалось бы все хорошо, но вот таки не задача.
Для того, чтобы приложение использовало вычислительную мощь дискретной видеокарты потребуется выполнить всего одну команду optirun с передачей ей в качестве аргумента нужную программу.
Например: optirun Steam
или optirun wine Steam.exe
, в случае если софтина виндовая.
Все установлено и казалось бы готово к использованию, но я столкнулся с такой бедой при запуске optirun:
[ 812.244712] [ERROR]Cannot access secondary GPU - error: Could not load GPU driver [ 812.244740] [ERROR]Aborting because fallback start is disabled.
Эта ситуация вызвана тем, что нужно настроить наш bumblebee под нашу видюху.
Все основные настройки делаются путем правки файла конфига /etc/bumblebee/bumblebee.conf
.
Открываем его в любом редакторе sudo gedit /etc/bumblebee/bumblebee.conf
Настройка:
Я пользуюсь проприетарным драйвером Nvidia. На момент написания мануала установлена версия 361.
Нам нужно указать, что мы используем драйвер nvidia, а не какой-то другой. Для этого находим строку Driver=
в секции [bumblebeed]
и подставляем туда значение с именем нашего драйвера, чтобы получилось Driver=nvidia
.
Далее нужно указать имя драйвера в ядре и пути к библиотекам.
Нам нужно знать какой драйвер (с учетом версии) установлен и используется системой. Для этого выполняем команду:
dpkg -l | grep "NVIDIA binary driver"
Она вернет нам название из установленных пакетов или же можно посмотреть какие модули драйверов используются ядром для нашего железа выполнив команду:
lspci -k| grep -EA2 'VGA|3D'
В результате чего получаем:
04:00.0 3D controller: NVIDIA Corporation GM108M [GeForce 840M] (rev a2)
Subsystem: ASUSTeK Computer Inc. GM108M [GeForce 840M]
Kernel modules: nvidiafb, nouveau, nvidia_361
Способов масса. Как видно из вывода что версия драйвера nvidia-361. Осталось указать, что ядро использует именно этот драйвер и подправить пути к библиотекам драйвера.
Переходим к редактированию секции [driver-nvidia]
. KernelDriver=
должно быть задано значение, которое мы получили выше: KernelDriver=nvidia-361
.
LibraryPath=/usr/lib/nvidia-current:/usr/lib32/nvidia-current
редактируем, чтобы получилось LibraryPath=/usr/lib/nvidia-361:/usr/lib32/nvidia-361
и строку XorgModulePath=/usr/lib/nvidia-361/xorg,/usr/lib/xorg/modules
.
Настройка bumblebee завершена. Осталось перезагрузить демон командой:
sudo service bumblebeed restart
Кайфуем
Как я писал выше запуск программ, которым требуется дискретная видеокарта, осуществляется командой:
optirun имя_программы
Запустить настройку видеокарты в таком режиме можно используя такую команду:
optirun nvidia-settings -c :8
Кайфуйте :)
Комментарии
to my friends. I am sure they'll be benefited from this site.
RSS лента комментариев этой записи