Как переключить видеокарту linux

Включение/отключение дискретной видеокарты

Практически все современные ноутбуки обладают двойными видеокартами. Обычно это что то маломощное от интел, и крутая, энергозависимая карта для фильмов и игр от nvidia или ati. Автоматическое переключение довольно часто глючит(Например: может включится крутая видеокарта при работе с документами, а нам нужно сохранить батарею как можно дольше), поэтому рассмотрим способ ручного переключения.

1. Способ. Подходит для все версий linux с ядром 2.6.34 +

«uname -a» узнать свою версию ядра

Для начала узнаем какие видеокарты видит наша система

Появится примерно такие строчки:

Запомним, что 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

Тут всё интуитивно понятно.

После выбора видеокарты произойдёт автоматическое завершение сеанса, так что не пугайтесь. Лично мне первый способ показался более красивым 🙂

Источник

Включение гибридной графики в 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 в той же папке:

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

Читайте также:  Mcafee virusscan enterprise для windows 10

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

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 работают)

Источник

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

Добрый день. Обнаружил что не включается дискретная карта, ввод команды 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

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

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

Читайте также:  Системная ошибка msvcr110 dll что делать windows 10

Система, по идее, всегда работает через интегрированное видео, если нет принудительного переключения графики в 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 на дискретке во втором случае. Впредь делай так же с остальными приложениями.

Источник

Ноутбук + 2 видеокарты — как жить?

$ lspci | grep VGA
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 M93 [Mobility Radeon HD 4500 Series] (rev ff)

Наша задача — либо научиться переключаться между двумя видеокартами, либо хотя бы отключить питание второй видеокарты.

Читайте также:  Диск c стал диском d windows 10

Способ первый. Убить пересмешника.

Первый способ простой. Мы возьмём готовый модуль, написанный для ноутбуков Lenovo (для нашего замечательного HP он тоже подходит) и заставим его прикручиваться к нашему ядру. Для этого мы воспользуемся deb-пакетами и системой динамического прикручивания модулей — DKMS.
Модуль я обозвал незатейливо — hp_acpi_kill.

Берём исходный код модуля и сохраняем его под именем hp_acpi_kill.c
Теперь кладём рядом Makefile.
Это наш необходимый модуль, написанный неизвестным энтузиастом для OpenSUSE.

Теперь нам надо написать конфиг для DKMS, чтобы не пересобирать модуль под каждую новую версию ядра. К счастью, DKMS устроен очень просто, и конфиг получается короткий. Скачиваем и сохраняем под именем dkms.conf. В этом файле мы указываем имя компилируемого модуля, его версию, а также как компилировать и ставить наш модуль. Казалось бы на этом можно и остановиться — добавить модуль в DKMS, собрать и установить — но мы всё-таки пользователи удобного дистрибутива, а не не пойми чего. Поэтому мы завернём наш модуль в пакет.
Углубляться в подробности сборки пакета я не буду, посколько на хабре писал об этом уже много, скажу лишь, что помимо обычного набора файлов нам потребуются файлы *.postinst,*.postrm, *.prerm — чтобы наш модуль регистрировался и компилировался в DKMS при установке пакета, а также вычищался при удалении. Скачать архив со всеми необходимыми файлами можно тут.

Собираем пакет командой debuild или dpkg-buildpackage на выбор, устанавливаем и добавляем в /etc/modules название модуля hp_acpi_kill — теперь при загрузке системы дискретная видеокарта будет отключаться и энергопотребление резко падать.
Посмотрев список устройств, мы обнаружим, что наша видеокарта системе видна, но не определяется:

$ lshw
.
*-generic:0
product: Illegal Vendor ID
vendor: Illegal Vendor ID
physical id: 0
bus info: pci@0000:01:00.0
version: ff
width: 32 bits
clock: 66MHz
capabilities: bus_master vga_palette cap_list rom
configuration: driver=radeon latency=255 maxlatency=255 mingnt=255
resources: irq:31 memory:c0000000-cfffffff ioport:3000(size=256) memory:e4400000-e440ffff memory:e4420000-e443ffff

Способ второй. vga_switcheroo

Способ второй потребует от нас немножко трафика и капельку времени. Дело в том, что не так давно вышла версия 2.6.34 ядра, в которую включен новый интересный модуль — vga_switcheroo, который как раз и призван переключать видеокарты. На Launchpad и kernel.ubuntu.com даже можно найти пакеты с этим ядром, но в дефолтном конфиге модуль выключен — вероятно потому, что удобных графических средств для переключения видеокарт пока не придумали.

Поэтому для начала скачаем исходный пакет с ланчпада (он предназначен для Maverick Meerkat, но и у нас отлично заработает):

$ wget launchpad.net/ubuntu/+archive/primary/+files/linux_2.6.34-2.9.dsc
$ wget launchpad.net/ubuntu/+archive/primary/+files/linux_2.6.34-2.9.tar.gz

$ sudo dpkg -i linux-headers-2.6.34-2_2.6.34-2.9_all.deb linux-headers-2.6.34-2-generic_2.6.34-2.9_i386.deb linux-image-2.6.34-2-generic_2.6.34-2.9_i386.deb

Если у вас 64-битная система, вместо i386 в имени файла будет, разумеется, amd64.

Как нам после перезагрузки в новое ядро переключить видеокарту? Посмотрим на сводку советского информбюро:

$ cat /sys/kernel/debug/vgaswitcheroo/switch
0:+:Pwr:0000:00:02.0
1: :Off:0000:01:00.0

DIS — немедленное переключение на дискретную видеокарту
IGD — немедленное переключение на интегрированную видеокарту
DDIS — отложенное переключение на дискретную видеокарту
DIGD — отложенное переключение на интегрированную видеокарту
ON — включить неиспользуемую видеокарту
OFF — выключить неиспользуемую видеокарту

# echo ON > /sys/kernel/debug/vgaswitcheroo/switch # включим дискретную видеокарту
# echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch # попросим при случае переключить на дискретную видеокарту

# echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

$ $ cat /sys/kernel/debug/vgaswitcheroo/switch
0: :Off:0000:00:02.0
1:+:Pwr:0000:01:00.0

Источник

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