Linux поддержка двух видеокарт

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

Источник

Две Видеокарты

01:00.0 AMD/ATI radeon 6900 дискретная

02:00.0 NVIDIA 7300 дискретная

биос считает основной Radeon линь считает что биос прав и выводит все на Радеон

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

каким образом это можно сделать? если невозможно на этапе загрузки то хотя бы в консоли после загрузки — если и это не возможно то хотябы в иксах

сразу предупреждаю заумных: переставить местами невозможно ибо Радеон 2ух слотовый и будет упираться в псай фаерваер который переставить просто некуда

ОС или Ubuntu 12.04 или Debian wheezy (testing) ядра с Xen Domain-0 v3.3 и выше

пробывал поменять местами на время установки, затем вернуть обратно, результата не дало, pciback.hide=(01:00.0) тоже не помогает линь упорно пытается вывести видео на 1ю видяху

Читайте также:  Как сменить windows без потери данных

В биосе должно быть что то типа «Init Display First»

мечтать не вредно

Asrock x79 extreme6 — ну нету там такого увы 🙂

Риальне? У меня на асроке есть такая переключалка.

Или обе дискретные?

Текстовые не знаю, а через фреймбуфер должно получится.

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

А в иксах с загруженным драйвером все просто. Там все как обычно только в секции Device с нужным драйвером и BusID «PCI:2:0:0» или какой тебе нужен. Далее в ServerLayout соответствующий Screen (в котором нужный Device).

Можно даже одновременно, запихав в Layout два Screen или сделав два Layout с разными Screen и запуском отдельных иксов, выводить изображение с двух видеокарт. Только я не совсем в курсе нюансов, как nvidia и fglrx уживаются. Никогда не пробовал, но стало жутко интересно. Как-нибудь обязательно попробую.

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

в системе cat /sys/bus/pci/devices/0000:01:00.0/boot_vga выодит 1 cat /sys/bus/pci/devices/0000:02:00.0/boot_vga выводит 0

уже после определения девайсов(до иксов) знает к кому обращаться, но может его можно обмануть?

ну хорошо поставим вопрос немного иначе можно ли сказать линуксу чтоб он вообще забыл про /sys/bus/pci/devices/0000:01:00.0 мол нету там ничего, или самого псай 01:00.0 нету

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

4. unbind device from host kernel driver (example PCI device 01:00.0)

Load the PCI Stub Driver if it is compiled as a module modprobe pci_stub lspci -n locate the entry for device 01:00.0 and note down the vendor & device ID 8086:10b9 . 01:00.0 0200: 8086:10b9 (rev 06) . echo «8086 10b9» > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:01:00.0 > /sys/bus/pci/devices/0000:01:00.0/driver/unbind echo 0000:01:00.0 > /sys/bus/pci/drivers/pci-stub/bind

поменяй карты местами , делов то 🙂

Не знаю, сработает ли способ для ATI. На интел+нвидиа помогает добавить параметр nomodeset при загрузке.

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

Мысль такая, что без загрузки драйвера видеокарты ничего сделать нельзя. К сожалению с трудом представляю что можно сделать до запуска иксов. Возможно с fb-драйвером твоей видеокарты можно как-то ее запустить, но как — не знаю.

поменяй карты местами , делов то 🙂

это для тебя в первом посте:

сразу предупреждаю заумных: переставить местами невозможно ибо Радеон 2ух слотовый и будет упираться в псай фаерваер который переставить просто некуда

От себя добавлю, что можно сделать удлинитель. Развести платку под разъем, сдуть разъем с какой-нибудь старой платы и припаять шлейфы. А на втором конце платка для разъема материнки с контактами, как на видеокарте (можно срезать с какой-нибудь дохлой pci-e видеокарты).

Сейчас конфигю fb, по крайней мере консоль у меня уже на 2ой видюхе и первая пробрасывается в виртуалку, проблема осталось с xorg`ом, пытаюсь сделать конф чтобы и иксы подхватили видяху.

глючная убунту блин дебиан-тестинг сам все подхватил а убунту сразу предлагает повесится, какая же она все таки User-friendly за ногу её, лад пойду я её доламыать 🙂

Главное не забудь выложить результаты. Нам тоже интересно, не говоря о тех, кто будет искать решение этой проблемы в будущем.

вообщем как для дебиан так и для убунту практически ничего делать ненадо — реально надо собрать ядро ксена с pciback и при загрузке указать отключение 01:00.0 девайса, в дебиане у меня фб сам подхватил вторую видяху и ксорг тоже сделал все сам, в убунте нужно поправить ксорг и если нужно либо явно указать фб на вторую видяху либо сделать так чтобы он ее просто находил вот впринципе и все.

сейчас имею венду с фаерваер портом видяхой сеткой юсбишками и т д снижения производительности незаметно тесты синебенк супер_пи фритчез показывают те же результат что и в хосте (конечно с погрешностью расчетов до 3% взависимости от программы)

Читайте также:  Add allowed programs windows firewall

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

fbcon тоже можно указать при загрузке в грабе таким параметром: fbcon=map:1 где число это: cat /proc/fb

в скрипте выше опечатка
внутри последнего еха: sudo echo ‘
все одинарные кавычки надо заменить на \x27

Источник

Две разные видеокарты в одном пк.

Есть: ASROCK B450 STEELLEGEND, AMD RYZEN 5 3600, GeForce 1050 ti, 16 GB DDR4.

Прекрасно работающая карта в винде и отвратительно работающая на линуксе, юзабельность в GNOME и KDE близится к нулю. Хочу купить недорогую карту от AMD, которая вполне дружит с Linux, вроде RX 560 — RX 580, которые достаточно старые, но достаточно производительные для игр и задач.

Теперь вопрос про железо: смогу я держать на одной материнке две видеокарты в разных PCI-слотах (благо их два для видяхи) и в зависимости от системы, просто подключать мониторы к нужной видяхе, а вторая в это время будет простаивать, или же они будут друг другу мешать?

Прекрасно работающая карта в винде и отвратительно работающая на линуксе, юзабельность в GNOME и KDE близится к нулю.

В чём это выражается?

Подлагивание меню приложений, в целом сейчас не все так ужасно, как было 4 года назад, новые драйвера решили проблему тиринга и на XFCE4 вполне комфортно и на NVIDIA сидеть, но это закрывает доступ к свободным драйверам и другим окружениям.

У меня такая же. Прекрасно работает на блобе как по виндой, так и под линем.

Теперь вопрос про железо: смогу я держать на одной материнке две видеокарты в разных PCI-слотах (благо их два для видяхи) и в зависимости от системы, просто подключать мониторы к нужной видяхе, а вторая в это время будет простаивать, или же они будут друг другу мешать?

В теории не должны. Но неизвестно как amdgpu поведет себя с двумя «полярисами» – RX560 и RX580.

У меня прекрасно работали под линем (но с ATI Catalyst) старые XT7870 и R7 350, использовал обе видяхи в Blender. Монитор был подключен к первой.

Подлагивание меню приложений, в целом сейчас не все так ужасно, как было 4 года назад,

4 года назад у меня подлагивали плазмокеды, но я так и не понял из-за чего, то ли из-за старого двухъядерного проца, то ли из-за GT 630 с блобом. Сейчас у меня XFCE4+i7 3770+GTX 1050Ti+блоб 440. Тиринга нет, лагов нет.

Точнее, «прекрасно» работали.

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

Включи уже Force Composition Pipeline в настройках блоба.

Прекрасно работающая карта в винде и отвратительно работающая на линуксе, юзабельность в GNOME и KDE близится к нулю.

Может быть, если под «онтопиком» использовать Nouveau. С Wayland он работает, откровенно говоря, плохо. С X.org, вроде бы, получше. Плюс нужно обязательно устанавливать EGLstreams.

Если хотите, чтобы работало — ставьте блоб. Иначе, увы, никак.

Хочу купить недорогую карту от AMD, которая вполне дружит с Linux, вроде RX 560 — RX 580, которые достаточно старые, но достаточно производительные для игр и задач.

Рекомендую 570 как минимум. Младшие модели не особо подходят для игр, а 570 достаточно дешёва и производительна. Сам такой владею.

С другой стороны, у вас же «дуалбут»! Тогда игры можно и под «виндой» запускать и не морочить себе голову покупкой новой видеокарты (хотя 1050Ti я всё же рекомендовал бы заменить хотя бы на 1650 Super или ту же 570-580).

смогу я держать на одной материнке две видеокарты в разных PCI-слотах (благо их два для видяхи) и в зависимости от системы, просто подключать мониторы к нужной видяхе, а вторая в это время будет простаивать, или же они будут друг другу мешать?

Сможете. Конечно, работать они будут, скорее всего, в режиме 8+8 линий, но это не так уж и хуже 16-ти. Кстати, можно попробовать подключить один монитор к обоим «карточкам» и просто переключать источник изображения (если несколько портов на мониторе; правда, не знаю, сработает ли).

Читайте также:  Пиратский windows центр обновлений

Все это есть. Гном работает как говно. Примерно в 10 раз хуже, чем XFCE, в 3 раза хуже КДЕ и в 100 раз хуже винды. В целом мы имеем, что блоб хорошо работает только на XFCE4.

За 570 спасибо, посмотрю в её сторону. Я бы хотел скорее что-то сопоставимое с 1050ти по производительности, но хорошо работающее под линуксом на всех ДЕ и окнах (как-то же люди разрабатывают ГНОМ и записывают видео без лагающего меню и дергающихся окон). Впринципе, если покупать 570-580, то 1050ти можно просто убрать, потому что и на винде это будет вполне ОК.

С такими взглядами и предрассудками ничего не спасет.

Ну скакуну-ковыряльщику явно лучше без проприетарного блоба.

а версия крыски последняя? Я слышал, в конце 2019, они пофиксили комфортное использование, и теперь это почти что гном

Можешь. Но учитывай то, что в PCIe линии будут разделены на две x8.

Вроде да, на 4.14 сидел пару недель. По-моему немного даже лучше стало, симпатичные гномовские приложения стали лучше работать.

установи nvidia-driver и не мучайся

проблем не будет. дуал-бут не нужен в такой ситуации, используй вфио и квм, будешь играться в винде без перезагрузок

по линиям псие в слотах, надо брать материнку, чтобы получилось именно 8+8, а не 16+4.

Ничего, через 3 года раскроют потенциал)

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

Добавлю, что эта жуть не особо зависит от видеокарты. Я прошел через невидию, амуде и интел на лине… Ничего не помогало… 10-ка после страданий показалась даром б*жьим.

570 достаточно дешёва и производительна. Сам такой владею.

Подтверждаю. RX570 купил на днях за $100, всё работает нормально.

в devel-ветку мезы добавляют фичу

фича работает нестабильно, в devel-ветке её отключают

Эй-эмд-ди опять обосралось с поддержкой своих видеокарт

тебе уже говорили, что ты отбитый хейтер?

PCIE1: в режиме x16; PCIE4: в режиме x4

можешь, но ту что воткнёшь в слот пса4 может ужать в производительности.

ну и какбы.. 580я вроде быстрее чем 1050ти( кроме хардварного декода вп9 которого нет на 580й) почему бы не оставить только её а весь этот геморой с переключениями нафиг?

Я не читаю что обо мне говорят. И мне пофиг на эй-эм-ди. Факт в том, что они постоянно лажают. Я устал ждать, пока они наймут больше людей в разработчики, и просто перешел в лагерь зеленых.

Факт в том, что они постоянно лажают

твои факты не факты

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

Одну видеокарту подключи по DP/DVI, а другую по DVI/HDMI соответственно и переключай видеокарты в мониторе кнопкой выбора источника сигнала.

А чем этот gnome вам упёрся?

Поставьте Mate, он тоже на GTK3 работает.

Можешь. Но учитывай то, что в PCIe линии будут разделены на две x8.

Это зависит от топологии материнки и используемых обоими картами слотов, правда то, что на материнке ТС только два крупных слота подводит к той мысли, что в этом конкретном случае вы правы.

Ну, как правило в потребительском железе это работает как x16+x0 или x8+x8. Во времена фуфлыксов PCIe контроллер был на материнке и там все зависело от чипсета. ЕМНИП, материнки на 990FX умели в 2X x16 + 1x 8x.

GeForce 1050 ti
Прекрасно работающая карта в винде и отвратительно работающая на линуксе
это закрывает доступ к свободным драйверам

Вышлешь мне её с доплатой?

Такое действительно я не встречал, а вот материнка дающая выбор между конфигурациями 8х+8х+8х и 16х+8х у меня просто есть.

Могу ссылку на авито дать, можешь на рабочую 570 поменять или купить.

Нет, я люблю обмазываться блобом от NVidia.

интересно было бы посмотреть на логи иксов.

Источник

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