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. Осталось указать, что ядро использует именно этот драйвер и подправить пути к библиотекам драйвера.
Переходим к редактированию секции [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 выдает:
У меня именно 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 на дискретке во втором случае. Впредь делай так же с остальными приложениями.
Источник
Запуск программ через дискретную видео-карту из меню в 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.
Источник