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

Обновлено: 04.07.2024

Итак, вы являетесь счастливым обладателем ноутбука с гибридной графикой на основе Nvidia\Intel . Что это вообще значит?

Все довольно просто, в вашем ноутбуке используются две видеокарты, одна интегрирована в процессор на базе Intel, у нее слабая производительность, но очень низкое энергопотребление. Вторая видеокарта - дискретная, от производителя Nvidia, она намного мощнее первой, однако, довольно прожорливая в плане потребления энергии аккумулятора вашего ноутбука.

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

В Windows все работает четко, карточки сами включаются и отключаются по мере необходимости. Система сама, в большинстве случаев, ориентируется, что больше нужно пользователю. Но как обстоят дела в Linux?

Откровенно говоря, еще пару лет назад все было очень плохо. И владельцам ноутбуков с гибридной графикой приходилось при установке Linux сразу брать барабаны и бубен для настройки. Но сейчас ситуация изменилась и в большинстве случае все работает из коробки, после нескольких нехитрых манипуляций.

Я говорю о связке Intel\Nvidia, что там с AMD, я не знаю, поскольку никогда не использовал устройства на этой базе.

Для примера мы берем популярный дистрибутив Linux Mint, ну а поскольку он собирается на основе Ubuntu, то скорее всего этот способ подойдет и для Ubuntu и для других деревативов Debian.

1. Итак, у нас есть ноутбук с гибридной графикой и на него установлен Linux Mint 19.3. Первое что мы должны сделать - установить проприентарные драйвера. В моем случае это версия 435.

Что делать? И как с этим бороться?

Лезем в BIOS! Скорее всего проблема во включенной опции Secure Boot (Подробнее о ней, вы можете прочитать в этой статье !). Именно она не дает "завестить" проприентарному драйверу и ее нужно отключить.

3. После всех этих действий, лично у меня все заработало! В системном трее появилась иконка запущенного Nvidia Prime, который позволяет переключаться между видеокартами!

Проблема решена! Теперь пользователи Linux тоже могут наслаждаться всеми преимуществами гибридной графики на своих ноутбуках!

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


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

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


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

Звезда активна
Звезда активна
Звезда активна
Звезда активна
Звезда активна


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

Кайфуем

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

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

Читайте также: