Linux запуск приложения с дискретной видеокартой

Linux запуск приложения с дискретной видеокартой

Не для кого не секрет, что 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.

Установка:

Хотя можно установить только bumblebee-nvidia , и он подтянет все зависимости автоматом. Но не будем рисковать, нам еще предстоят танцы с бубном.

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

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

Читайте также:  Windows move all files from folder

Например: optirun Steam или optirun wine Steam.exe , в случае если софтина виндовая.

Все установлено и казалось бы готово к использованию, но я столкнулся с такой бедой при запуске optirun:

Эта ситуация вызвана тем, что нужно настроить наш bumblebee под нашу видюху.

Все основные настройки делаются путем правки файла конфига /etc/bumblebee/bumblebee.conf .

Открываем его в любом редакторе sudo gedit /etc/bumblebee/bumblebee.conf

Настройка:

Я пользуюсь проприетарным драйвером Nvidia. На момент написания мануала установлена версия 361.

Нам нужно указать, что мы используем драйвер nvidia, а не какой-то другой. Для этого находим строку Driver= в секции [bumblebeed] и подставляем туда значение с именем нашего драйвера, чтобы получилось Driver=nvidia .

Далее нужно указать имя драйвера в ядре и пути к библиотекам.

Нам нужно знать какой драйвер (с учетом версии) установлен и используется системой. Для этого выполняем команду:

Она вернет нам название из установленных пакетов или же можно посмотреть какие модули драйверов используются ядром для нашего железа выполнив команду:

В результате чего получаем:

Способов масса. Как видно из вывода что версия драйвера 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 завершена. Осталось перезагрузить демон командой:

Кайфуем

Как я писал выше запуск программ, которым требуется дискретная видеокарта, осуществляется командой:

Запустить настройку видеокарты в таком режиме можно используя такую команду:

У вас недостаточно прав для того чтобы тут гадить.

Источник

Как включить дискретную видеокарту?

Добрый день. Обнаружил что не включается дискретная карта, ввод команды lspci | grep VGA показывает только интегрированную:

Как мне запустить ее вручную? Пытаюсь запустить по следующему принципу:

Ноутбук HP 15-ay002ur. Драйвера на AMD стоят проприетарные вроде как.

Что должно быть на месте binaryname, и что эта команда делает?

Отказ в доступе потому, что sudo распространяется только на echo, перенаправление делает оболочка, которая писать туда не может. Для записи в файлы с помощью echo удобно применять такую конструкцию:

Тут записывать в файл будет запущенная от суда команда tee, file это её аргумент.

Что должно быть на месте binaryname

Название желаемого для запуска бинарника

Запускает желаемый бинарник с установленной переменной окружения для запуска на дискретке.

Записывать в конфиге ничего не нужно. А то поломаешь нафиг всё. Другого выше не слушай.

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

Что должно быть на месте binaryname, и что эта команда делает?

У него OS не видит дискретку, не поможет ему DRI, точнее приложение запустится всё так же через интеграт.

У него OS не видит дискретку, не поможет ему DRI, точнее приложение запустится всё так же через интеграт.

Команда lspci | grep 01:00.0 выдает:

Читайте также:  Canon mf4410 для windows 10 не сканирует

У меня именно M430

Тогда я вообще не врубаюсь, чего тебе надо. Как запустить приложение на дискретке тебе выше сказали. Покажи вывод xrandr —listproviders

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

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

Система, по идее, всегда работает через интегрированное видео, если нет принудительного переключения графики в BIOS. Хотя могу и ошибаться. Кажется, в таких вопросах Novell-ch разбирается.

Зато не оптимус!

Так у него дискретка вообще не видна, четырехзвездочник.

Если его лаптоп не из 2008 года.

А здесь уже всё видно. Что-то ты уже поменял.

Мне нужно включить систему на дискретной видеокарте

Ну начнем с того, что на одной дискретке работать нельзя. Даже на винде.

Система, по идее, всегда работает через интегрированное видео, если нет принудительного переключения графики в BIOS.

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

Ну начнем с того, что на одной дискретке работать нельзя. Даже на винде.

Ну как-то ее дополнительно для рабочего стола запустить можно?

xrandr —setprovideroffloadsink 0x4f 0x74

Эту херню вроде давно не надо делать?
P.S. А вот у меня OS реально не видит дискретку. 🙂

Эту херню вроде давно не надо делать?

Может быть, давно не сталкивался.

P.S. А вот у меня OS реально не видит дискретку. 🙂

Да я вообще не копался в эту сторону, мне дискретка как-то не нужна.

Получается работает динамическая графика?

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

Во-первых glxinfo |grep OpenGL делаю только дауны, нормальные люди просто смотрят glxinfo -B. Во-вторых покажи вывод xrandr (без всяких флагов).

в современных ноутах дискретки не имеют собственных видеовыходов

В современных ноутах дискретки имеют выход на внешний монитор. А встройка — на встроенный. Т.о. танцы с бубном нужны только если рендерить с дискретки на встроенный монитор.

Это что за ископаемое?

конечно же обновить месу..

Это что за ископаемое?

Debian, что поставилось то и стоит.

Ок. У тебя всё работает. Но внешний монитор подключается также через встройку. Тупит оно потому что дискретка полное дно https://www.videocardbenchmark.net/compare/Radeon-R5-M430-vs-Intel-HD-520/355. так ещё и копирует постоянно через intel. Не пользуйся ей вообще, разве что для opencl.

Читайте также:  Torrex для windows 10

Да, точно. Я убунтовский ppa прикручивал как раз по этой причине. Забыл уже.

Я убунтовский ppa прикручивал как раз по этой причине

Есть же родные backports, там свежая mesa.

Чо прям из гита?

Ок. У тебя всё работает. Но внешний монитор подключается также через встройку. Тупит оно потому что дискретка полное дно https://www.videocardbenchmark.net/compare/Radeon-R5-M430-vs-Intel-HD-520/355. так ещё и копирует постоянно через intel. Не пользуйся ей вообще, разве что для opencl.

На кой она вообще тогда стоит у меня в ноутбуке?

На кой она вообще тогда стоит у меня в ноутбуке?

Ну в теории можно запустить 2 программы которые рендерят 3d на разных картах и тогда они будут меньше тупить (в сумме). Но это довольно специфичный случай. А просто запускать что-то на дискретке чтобы это было быстрее (например игрулю) для тебя смысла нет.

Шел бы отсюда, однозвездочный. Есть у него провайдер оффлоада.

ДА НИКАК НЕ ЗАПУСТИТЬ. Ты запускаешь конкретное приложение на конкретной карте.

Поздравляю. У тебя получилось запустить glxinfo на дискретке во втором случае. Впредь делай так же с остальными приложениями.

Источник

Запуск программ через дискретную видео-карту из меню в openSUSE GNOME

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

На примере openSUSE Tumbleweed. Рабочий стол GNOME 40.

sudo zypper in switcheroo-control

sudo systemctl enable switcheroo-control

И перезапускаем систему.

Утилита не работает в KDE Plasma. Хотя может и есть способы, однако я не нашёл.

После этого в контекстном меню при нажатии правой кнопки мыши появится соответствующая опция.

Есть вероятность появления фризов курсора в сессии Wayland на устаревших картах. Обнаружил у себя на Radeon HD 6730M (драйвер radeon). Фризы возникают не при переходе на дискредную графику, а при работе от встроенной графики длительное время и загрузке swap более чем на 400-500 Мб. Само окружение работает нормально, тормозит только курсор.

Обычный бытовой эксперимент нагрузкой и длительным аптаймом подтвердил подозрения. Без работы демона GNOME и скорость курсора работают гладко и без проблем. Проблема может оказаться в драйвере останов от intel intel_idle, тогда надо добавить к параметрам запуска следующую запись, чтобы переключиться на управление остановами процессора от ACPI (но это срабатывает не у всех):

Так что учитывайте собственные аппаратные возможности.

Проблемы не выявлены у пользователей новых карт AMD с поддержкой драйвера AMDGPU и пользователей карт Nvidia.

Источник

Оцените статью