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 с передачей ей в качестве аргумента нужную программу.

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

Читайте также:  Eclipse ide java linux

Переходим к редактированию секции [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 завершена. Осталось перезагрузить демон командой:

Кайфуем

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

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

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

Источник

Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan)

Введение

Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным

У меня система KDE Neon 5.21 — по большому счету — Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150

1. Устанавливаем драйвер

a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:

Если у вас система на GTK то с помощью это команды:

Хотя разницы принципиальной нет

b) Затем запускаем ее с правами root

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

Инструкция для KDE

/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием

И файл software properties qt.sh в той же папке:

После перезагрузки ярлык появится в меню

Но это далеко не обязательно, вполне достаточно запустить из консоли для наших целей настройки гибридной графики

c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server

d) После установки перезагружаем устройство

2. Настраиваем видеокарту

a) Загружаем следующую программу:

b) Переходим в PRIME Profiles Здесь мы видим три пункта:

NVIDIA (Performance Mode) — работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически

NVIDIA On-Demand — некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше

NVIDIA (Power Saving Mode) — отключение дискретной графики

Выбираем второй вариант — NVIDIA On-Demand , и перезагружаем систему

3. Запуск приложения с использованием дискретной графики

Это то, что сложнее всего гуглилось.

Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:

для Vulkan только:

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

Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или «изменить приложение. «), перейти во вкладку «приложение» и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Пример: ярлык игры Wolfenstein — Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

Заключение

Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)

Источник

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

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

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

sudo zypper in switcheroo-control

sudo systemctl enable switcheroo-control

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

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

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

Читайте также:  Диспетчер задач windows файл подкачки

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

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

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

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

Источник

Установка и запуск тяжёлых игр на Linux

Предисловие


Долгое время я пытался перейти на Linux, но все попытки заканчивались фиаско. Связано было это с его незнанием и кривыми руками.
Как гласит пословица — «если долго мучиться, что нибудь получится», так получилось и в моей ситуации.

Совсем недавно, порядка недели назад, с моей Windows 8 что — то приключилось (темный экран при загрузке почему — то мерцал и система не грузилась). После пары неудачных попыток восстановления, я твёрдо решил перейти на Linux (чем — то давно он меня заинтересовал).

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

Основная часть


Для установки я выбрал дистрибутив Ubuntu 12.04 LTS.
Я читал некоторые топики на Хабре о том, как запускать тяжёлые игры используя дискретную видеокарту Nvidia, спустя некоторое время добился следующих результатов:
— Отключил дискретную видеокарту в целях экономии энергии, тем самым увеличив время работы от батареи, да и просто от ненужного нагрева.
— Добился аналога Nvidia Optimus на Linux.

Для запуска игр на Ubuntu нам понадобится:
— Ноутбук с 2 видеокартами (дискретной Nvidia и интегрированной Intel)
— Bumbledee — аналог Nvidia Optimus для Linux
— Сама игра

Установка


1. Перед началом установки надо настроить видеокарту, чтобы интегрированная работала, а дискретная нет:
Чтобы установить Bumblebee нужно открыть терминал и выполнить следующие команды:
sudo add-apt-repository ppa:bumblebee/stable
Добавим репозиторий Bumblebee для установки и получения обновлений. Это официальный репозиторий Bumblebee.
sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get install nvidia-313
sudo add-apt-repository -r ppa:xorg-edgers/ppa
Репозиторий содержащий последнюю версию драйверов Nvidia(драйвера в этом репозитории ничем не отличаются от драйверов с официального сайта, кроме того, что уже сделаны в понятном для системы формате .deb для упрощения процесса установки и обновления).
sudo apt-get update

sudo apt-get install bumblebee bumblebee-nvidia
Собственно сама установка Bumblebee и последних драйверов Nvidia.
sudo apt-get dist-upgrade
По завершении установки надо перезагрузиться!

2. Чтобы устанавливать и запускать приложения из Windows нам понадобится Wine (его можно найти в центре приложений Ubuntu)
3. После установки Wine можно наконец то приступить к установке игры (процесс установки описывать не стану так как он интуитивно прост и понятен, всё делается так же, как и на Windows)
4. Для запуска игры в свойствах ярлыка, в разделе «команда» надо перед началом приписать optirun (чтобы работала видеокарта Nvidia, а не Intel по умолчанию).

5. Всё готово, можем играть.

Источник

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  При установке windows требуется драйвер

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

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

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

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

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

У меня именно 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.

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

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

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

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

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

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

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

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

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

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

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

Источник

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