It’s FOSS: Дискретная и интегрированная графика в Linux

В комментариях время от времени спрашивают о том, как в Linux переключаться между интегрированной и дискретной видеокартами. А у It’s FOSS как раз нашлась статья по этому поводу. Возможно, кому-то пригодится.

Переключение между дискретной видеокартой Nvidia и встроенной графикой Intel (на примере Ubuntu)

В моём ноутбуке TUXEDO InfinityBook Pro сразу две видеокарты: интегрированная от Intel и выделенная от Nvidia. И подобный гибридный подход встречается в ноутбуках всё чаще и чаще.

В качестве основной видеокарты обычно используется встроенная графика Intel. Её вполне хватает для большинства повседневных задач, её не нужно особых мощностей, и батарейка с ней будет садится не так быстро. А вот для игр, видеомонтажа и 3D-рендеринга лучше использовать видеокарту от Nvidia.

А как переключиться со встроенной графики Intel на видеокарту Nvidia? Сейчас разберёмся!

Вообще есть несколько способов. Самый простой – тупо назначить Nvidia видеокартой по умолчанию и навсегда забыть о существовании встроенной графики Intel. Потребление энергии возрастёт, но и производительность заметно вырастит. Причём сделать это будет проще, если вы используете проприетарные драйверы, а не открытые.


Проверьте, какие видеокарты у вас установлены

✋ Важно: данное руководство касается именно Intel и Nvidia и, скорее всего, оно не подойдёт владельцам AMD.

Сперва вам нужно узнать, какая графика вообще доступна в вашем компьютере. Для этого вам пригодится следующая команда:

lspci | grep VGA

Например, в моей системе полученная в итоге информация выглядела вот так:

lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] (rev 0c)
01:00.0 VGA compatible controller: NVIDIA Corporation GA104 [Geforce RTX 3070 Ti Laptop GPU] (rev a1)

Как вы видите, в моём ноутбуке два графических ускорителя: IRIS XE и NVIDIA GEFORCE RTX 3070Ti.

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


Способ №1: Выбор приложений, которые будут запускаться с графикой Nvidia

На самом деле в Ubuntu уже есть стандартный способ запускать конкретные приложения сразу с графикой от Nvidia. Щёлкните правой кнопкой мыши по значку приложения и выберите Запуск с использованием дискретной графической карты. Под таким мудрёным названием и скрывается ваша карточка от Nvidia.

-2

Вот так это выглядит в рабочем окружении GNOME.

Но обратите внимание: далеко не каждое приложение поддерживает данную опцию, и далеко не все приложения, которые вы запустите с графикой от Nvivia, действительно будут работать именно с этой видеокартой. Например, Firefox нормально переключается на Nvidia, а стандартный видеопроигрыватель и Inkscape почему-то нет.

📋 Как же тогда узнать, какую графику использует конкретное приложение? Я бы рекомендовал использовать консольную утилиту nvidia-smi, которая устанавливается в вашу систему вместе с проприетарными драйверами Nvidia. Но подробнее об этом мы поговорим чуть ниже.

Для запуска конкретного приложения с графикой Nvidia через терминал вам понадобится вот такая команда:

DRI_PRIME=1 application_name

Например, для браузера Firefox она будет выглядеть вот так:

DRI_PRIME=1 firefox

Видимо, переменная DRI_PRIME работает только с открытыми драйверами nouveau. Для проприетарных драйверов нужна следующая команда:

__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name

💡 На самом деле использование пропиетарных драйверов Nvidia заметно облегчает переключение между доступными пользователю видеокартами и отслеживание нагрузки. Но об этом тоже чуть ниже.


Способ №2: Проприетарные драйверы Nvidia

Тут вам нужно зайти в GNOME Activities и найти там пункт Дополнительные драйверы.

-3

Ещё Дополнительные драйверы можно найти в Обновлении ПО.

Убедитесь, что используете именно проприетарный драйвер Nvidia. Если видеокарта более-менее новая, стоит использовать драйвер поновее. Для устаревших видеокарт лучше использовать версию 470 и ниже.

-4

После установки нового драйвера нужно перезагрузить ПК, чтобы изменения вступили в силу. После перезагрузки ищите инструмент под названием Nvidia X Servers:

-5

Внутри Nvidia X Servers перейдите в раздел Prime Profiles (его стоит искать в левой боковой панели). Как раз он и отвечает за выбор режима работы видеокарты.

-6

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

💡 Чтобы изменения вступили в силу, не забудьте перезагрузить ПК или выйти и снова войти в систему.

Кроме того, выбрать Nvidia видеокартой по умолчанию можно и через терминал:

sudo prime-select nvidia
abhishek@itsfoss-tuxedo:~$ sudo prime-select nvidia
[sudo] password for abhishek:
Info: selecting the nvidia profile
Deleting /lib/modprobe.d/nvidia-runtimepm.conf
Updating the initramfs. Please wait for the operation to complete:
Done

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

__GLX_VENDOR_LIBRARY_NAME=nvidia __NV_PRIME_RENDER_OFFLOAD=1 application_name

💡 Бонус: Как узнать, какая графика сейчас используется?

Если вы предпочитаете проприетарные драйверы и не боитесь работать в терминале, вам, скорее всего, пригодится стандартная утилита nvidia-smi. Запускается она с помощью следующей команды:

nvidia-smi

Статистика будет выглядеть примерно так:

-7

Если хотите непрерывно мониторить использование графической карты, воспользуйтесь следующей команды:

watch -n1 nvidia-smi

После этого статистика будет обновляться раз в секунду. Чтобы это остановить, просто нажмите волшебное сочетание клавиш Ctrl+C.

Вместо выводов

Если честно, меня удивило, что утилит для настройки и мониторинга Nvidia для открытых драйверов nouveau пока почему-то нет. По-моему, они просто обязаны быть!

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

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

Абхишек Пракаш,
It’s FOSS
15 мая 2024

Комментарии

Популярные сообщения