Как запустить приложение на дискретной видеокарте линукс
Добрый день. Обнаружил что не включается дискретная карта, ввод команды lspci | grep VGA показывает только интегрированную:
Команда cat /sys/kernel/debug/vgaswitcheroo/switch показывает:Как мне запустить ее вручную? Пытаюсь запустить по следующему принципу:
Ноутбук HP 15-ay002ur. Драйвера на AMD стоят проприетарные вроде как.
Что должно быть на месте binaryname, и что эта команда делает?
Отказ в доступе потому, что sudo распространяется только на echo, перенаправление делает оболочка, которая писать туда не может. Для записи в файлы с помощью echo удобно применять такую конструкцию:
Тут записывать в файл будет запущенная от суда команда tee, file это её аргумент.
Что должно быть на месте binaryname
Название желаемого для запуска бинарника
Запускает желаемый бинарник с установленной переменной окружения для запуска на дискретке.
xDShot ★★★★★ ( 02.10.18 12:59:46 )Последнее исправление: xDShot 02.10.18 12:59:58 (всего исправлений: 1)
Записывать в конфиге ничего не нужно. А то поломаешь нафиг всё. Другого выше не слушай.
Ничего не понял. Как мне запустить дискретную видеокарту?
Что должно быть на месте binaryname, и что эта команда делает?
У него OS не видит дискретку, не поможет ему DRI, точнее приложение запустится всё так же через интеграт.
У него OS не видит дискретку, не поможет ему DRI, точнее приложение запустится всё так же через интеграт.
Команда lspci | grep 01:00.0 выдает:
У меня именно M430
Тогда я вообще не врубаюсь, чего тебе надо. Как запустить приложение на дискретке тебе выше сказали. Покажи вывод xrandr --listproviders
Тогда я вообще не врубаюсь, чего тебе надо. Как запустить приложение на дискретке тебе выше сказали. Покажи вывод
Мне нужно включить систему на дискретной видеокарте. Я работаю с еще одним внешним монитором, при его подключении при сильно активной работе бывает подлагивает. Предполагаю что это видеокарта ибо проца и оперативы хватает.
Система, по идее, всегда работает через интегрированное видео, если нет принудительного переключения графики в BIOS. Хотя могу и ошибаться. Кажется, в таких вопросах Novell-ch разбирается.
Зато не оптимус!
Так у него дискретка вообще не видна, четырехзвездочник.
Если его лаптоп не из 2008 года.
А здесь уже всё видно. Что-то ты уже поменял.
Мне нужно включить систему на дискретной видеокарте
Ну начнем с того, что на одной дискретке работать нельзя. Даже на винде.
Система, по идее, всегда работает через интегрированное видео, если нет принудительного переключения графики в BIOS.
Да, в современных ноутах дискретки не имеют собственных видеовыходов, переключить ничего нельзя.
madcore ★★★★★ ( 02.10.18 14:36:46 )Последнее исправление: madcore 02.10.18 14:36:59 (всего исправлений: 1)
Ну начнем с того, что на одной дискретке работать нельзя. Даже на винде.
Ну как-то ее дополнительно для рабочего стола запустить можно?
xrandr --setprovideroffloadsink 0x4f 0x74
Эту херню вроде давно не надо делать?
P.S. А вот у меня OS реально не видит дискретку. :)
Эту херню вроде давно не надо делать?
Может быть, давно не сталкивался.
P.S. А вот у меня OS реально не видит дискретку. :)
Да я вообще не копался в эту сторону, мне дискретка как-то не нужна.
Получается работает динамическая графика?
Даже на интуле версия опенжоель выше чем на амуде, кек. Интересно что на это скажут амуданы со своим пиглитом.
Во-первых glxinfo |grep OpenGL делаю только дауны, нормальные люди просто смотрят glxinfo -B. Во-вторых покажи вывод xrandr (без всяких флагов).
в современных ноутах дискретки не имеют собственных видеовыходов
В современных ноутах дискретки имеют выход на внешний монитор. А встройка - на встроенный. Т.о. танцы с бубном нужны только если рендерить с дискретки на встроенный монитор.
Это что за ископаемое?
конечно же обновить месу..
Это что за ископаемое?
Debian, что поставилось то и стоит.
Последнее исправление: no-such-file 02.10.18 19:13:10 (всего исправлений: 1)
Да, точно. Я убунтовский ppa прикручивал как раз по этой причине. Забыл уже.
Я убунтовский ppa прикручивал как раз по этой причине
Есть же родные backports, там свежая mesa.
Чо прям из гита?
На кой она вообще тогда стоит у меня в ноутбуке?
На кой она вообще тогда стоит у меня в ноутбуке?
Ну в теории можно запустить 2 программы которые рендерят 3d на разных картах и тогда они будут меньше тупить (в сумме). Но это довольно специфичный случай. А просто запускать что-то на дискретке чтобы это было быстрее (например игрулю) для тебя смысла нет.
no-such-file ★★★★★ ( 02.10.18 19:32:29 )Последнее исправление: no-such-file 02.10.18 19:33:26 (всего исправлений: 1)
Шел бы отсюда, однозвездочный. Есть у него провайдер оффлоада.
ДА НИКАК НЕ ЗАПУСТИТЬ. Ты запускаешь конкретное приложение на конкретной карте.
Поздравляю. У тебя получилось запустить glxinfo на дискретке во втором случае. Впредь делай так же с остальными приложениями.
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 .
Далее нужно указать имя драйвера в ядре и пути к библиотекам.
Нам нужно знать какой драйвер (с учетом версии) установлен и используется системой. Для этого выполняем команду:
Она вернет нам название из установленных пакетов или же можно посмотреть какие модули драйверов используются ядром для нашего железа выполнив команду:
В результате чего получаем:
Переходим к редактированию секции [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 завершена. Осталось перезагрузить демон командой:
Кайфуем
Как я писал выше запуск программ, которым требуется дискретная видеокарта, осуществляется командой:
Запустить настройку видеокарты в таком режиме можно используя такую команду:
Это простая инструкция как включить гибридную графику 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 работают)
Практически все современные ноутбуки обладают двойными видеокартами. Обычно это что то маломощное от интел, и крутая, энергозависимая карта для фильмов и игр от nvidia или ati. Автоматическое переключение довольно часто глючит(Например: может включится крутая видеокарта при работе с документами, а нам нужно сохранить батарею как можно дольше), поэтому рассмотрим способ ручного переключения.
1. Способ. Подходит для все версий linux с ядром 2.6.34 +
Для начала узнаем какие видеокарты видит наша система
Появится примерно такие строчки:
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07)01:00.0 VGA compatible controller: ATI Technologies Inc Juniper [Radeon HD 5750 Series] (rev ff)
Запомним, что 00:02.0 это слабая видеокарта, а 1:00.0 сильная
Теперь посмотрим, какая из видеокарт сейчас работает
Появятся примерно такие строки:
Плюс стоит на против активной видеокарты, а Pwr обозначает, что видеокарта работает и кушает питание. Несложно догадаться, что можно отключить питание от неиспользуемой карточки этим самым ничуть не повредить системе.
а) Если нам нужно обесточить неиспользуемую видеокарту, то выполняем команду:
Батарея ноутбука скажет вам спасибо :)
Если хотим, чтобы лишняя видеокарта отключалась после загрузки системы, то добавляем строчку
в файл /etc/rc.local
б) Если нам нужно, наоборот, включить мощную видеокарту и на неё изначально не подаётся питание то выполняем команды:
sudo echo ON > /sys/kernel/debug/vgaswitcheroo/switch
sudo echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
DIS — немедленное переключение на дискретную видеокарту
IGD — немедленное переключение на интегрированную видеокарту
DDIS — отложенное переключение на дискретную видеокарту
DIGD — отложенное переключение на интегрированную видеокарту
ON — включить неиспользуемую видеокарту
OFF — выключить неиспользуемую видеокарту
Завершаем сеанс, входим заново и отключаем слабую видеокарту
Должно получится так:
Если вдруг видеокарта вообще не работает, то тут поможет только ремонт ноутбуков. Если с видеокартой всё в порядке, но способ описанные выше кажется сложным, то можно воспользоваться графической программой.
2. Способ. Если на вашем ноутбуке установлена ubuntu и лезть в терминал не хочется, то можно воспользоваться Ubuntu Control Center
После установки и запуска переходим в Hardware>VGA Switching
Тут всё интуитивно понятно.
После выбора видеокарты произойдёт автоматическое завершение сеанса, так что не пугайтесь. Лично мне первый способ показался более красивым :)
Читайте также: