В комментариях время от времени спрашивают о том, как в 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.
Вот так это выглядит в рабочем окружении 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 и найти там пункт Дополнительные драйверы.
Ещё Дополнительные драйверы можно найти в Обновлении ПО.
Убедитесь, что используете именно проприетарный драйвер Nvidia. Если видеокарта более-менее новая, стоит использовать драйвер поновее. Для устаревших видеокарт лучше использовать версию 470 и ниже.
После установки нового драйвера нужно перезагрузить ПК, чтобы изменения вступили в силу. После перезагрузки ищите инструмент под названием Nvidia X Servers:
Внутри Nvidia X Servers перейдите в раздел Prime Profiles (его стоит искать в левой боковой панели). Как раз он и отвечает за выбор режима работы видеокарты.
В режиме производительности будет ноутбук будет использовать 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
Статистика будет выглядеть примерно так:
Если хотите непрерывно мониторить использование графической карты, воспользуйтесь следующей команды:
watch -n1 nvidia-smi
После этого статистика будет обновляться раз в секунду. Чтобы это остановить, просто нажмите волшебное сочетание клавиш Ctrl+C.
Вместо выводов
Если честно, меня удивило, что утилит для настройки и мониторинга Nvidia для открытых драйверов nouveau пока почему-то нет. По-моему, они просто обязаны быть!
Проприетарные драйверы в этом плане гораздо удобнее и понятнее. Но, к сожалению, то, с каким драйвером ваша видеокарта будет работать лучше, а с каким хуже, во многом зависит от вашего железа.
Так что тема эта не из простых, и, если у вас есть хоть какой-то опыт, не стесняйтесь поделиться им в комментариях. Кому-то это наверняка будет полезно.
Абхишек Пракаш,
It’s FOSS
15 мая 2024
https://semenov-sherin.vivaldi.net/itsfoss-intel-nvidia-graphics-switch/