- Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan)
- 1. Устанавливаем драйвер
- 2. Настраиваем видеокарту
- 3. Запуск приложения с использованием дискретной графики
- Заключение
- Танцы с бубном или как я решал проблему работы NVIDIA в Linux Mint
- Linux Mint и Гибридная графика — как настроить?
Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan)
Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, используя дискретную графику. Так что напишу так просто, на сколько считаю нужным
У меня система KDE Neon 5.21 — по большому счету — Ubuntu LTS с окружением рабочего стола KDE Plasma 5.21, видеочип GeForce MX150
1. Устанавливаем драйвер
a) Если у вас система на Qt (Как правило окружение KDE или LXQt), то с помощью данной команды через терминал загрузим программу для установки драйверов:
sudo apt install software-properties-qt
Если у вас система на GTK то с помощью это команды:
sudo apt install software-properties-gtk
Хотя разницы принципиальной нет
b) Затем запускаем ее с правами root
sudo software-properties-qt
В папке ~/.local/share/applications/ создадим файл software properties qt.desktop с таким содержанием
[Desktop Entry] Categories=System;Settings; Comment[ru_RU]=drivers Comment=drivers Exec=konsole -e "~/.local/share/applications/software-properties-qt.sh" GenericName[ru_RU]=Установка драйверов\s GenericName=Установка драйверов\s Icon=systemsettings MimeType= Name[ru_RU]=software properties qt\n Name=software properties qt\n Path= StartupNotify=true Terminal=false TerminalOptions= Type=Application X-DBUS-ServiceName= X-DBUS-StartupType= X-KDE-SubstituteUID=false X-KDE-Username=
И файл software properties qt.sh в той же папке:
#! /bin/bash echo software-properties-qt sudo /usr/bin/software-properties-qt
После перезагрузки ярлык появится в меню
Но это далеко не обязательно, вполне достаточно запустить из консоли для наших целей настройки гибридной графики
c) Переходим на последнюю вкладку Additional drivers и устанавливаем нужный драйвер. Я выбрал самой последней версии, который не tested и не server
d) После установки перезагружаем устройство
2. Настраиваем видеокарту
a) Загружаем следующую программу:
sudo apt install nvidia-settings
b) Переходим в PRIME Profiles Здесь мы видим три пункта:
- NVIDIA (Performance Mode) — работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически
- NVIDIA On-Demand — некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше
- NVIDIA (Power Saving Mode) — отключение дискретной графики
Выбираем второй вариант — NVIDIA On-Demand , и перезагружаем систему
3. Запуск приложения с использованием дискретной графики
Это то, что сложнее всего гуглилось.
Для запуска приложения с использованием графики nvidia нужно задать для OpenGL две переменные среды:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
__NV_PRIME_RENDER_OFFLOAD=1
Делать это надо перед командой для запуска приложения. Например, нам нужно запустить из терминала приложение program с использованием дискретной графики. Нужно вызвать его так:
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia program
Соответственно, если у приложения есть ярлык (.desktop) в меню приложений, то надо изменить команду запуска в ярлыке. В KDE Plasma нужно нажать на него ПКМ, открыть свойства (или «изменить приложение. «), перейти во вкладку «приложение» и перед командой приписать данную приставку. В других средах похожего стола примерно так же
Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia
Заключение
Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)
P.S. в комментариях (#comment_23011444) немного подсказали, что для работы с Proton (DirectX) есть такой док
Танцы с бубном или как я решал проблему работы NVIDIA в Linux Mint
Начну с предыстории. Полгода назад я установил на ноутбук с предустановленной Windows линукс. Выбор пал на Минт из-за приятного окружения Cinnamon. Изначально использовал линукс как вспомогательную систему и писал на ней только код. По причине отличной оптимизации постепенно переносил все больше своих ежедневных задач на пингвина. На борту ноутбука установлено две видеокарты: встроенная от AMD и дискретная от NVIDIA (3050ti mobile). Из коробки, Минт по умолчанию для NVIDIA устанавливает открытые драйвера и пакет NVIDIA Prime. Он позволяет осуществлять переключение между видеокартами и работает как в терминале, так и в графической утилите.
Первое время работы для экономии энергии выставил значение Power Saving которое отключило дискретную графику и передало управление встроенной от AMD. В течение несколько месяцев никаких проблем не возникало. Как я писал выше, из-за хорошей оптимизации я начал устанавливать в линукс программы которыми пользовался обычно на Windows. Среди них был и Blender. Интегрированная графика не порадовала своей производительностью и я решил включить дискретку по запросу. Несмотря на запуск Blender с NVIDIA, производительность сильно не увеличилась. Да, разница ощущалась в лучшую сторону, но в Windows все работало лучше. После посещения форумов, выяснил, что у многих похожая проблема и она вызвана открытыми драйверами на видеокарте. Решил переключить на проприетарные.
Все пакеты установились и я перезагрузил компьютер. NVIDIA перестала распозноваться системой. При запуске с дискретной графикой приложения попросту не запускались. Я решил переключить режим в Performance и опять ребутнул ноут. В итоге Минт перестал запускаться вообще: бесконечная прокрутка зелёного колёсика после выбора линукса в grub. В такой ситуации при нажатии ESC можно увидеть логи ядра. Красным горело уведомление, что система не запускается из-за отсутствия видеокарты. После принудительного выключения и загрузке в безопасном режиме появился доступ к терминалу. Графическая оболочка по прежнему не работала. В терминале, запустив sudo prime-select intel, удалось вернуть жизнь оболочке. При этом по требованию sudo prime-select on-demand система по прежнему оставалась в коме. Проблема не решалась. Переустановка драйверов, изменение файлов конфига — ничего не помогало. На тот момент стояла версия ядра 5.15.0-56-generic.
Когда через несколько дней, подъехало ядро 5.15.0-57-generic, а за ним 5.15.0-58-generic, решил повторить эксперимент. Переустановил дрова, переключил в On-demand и о чудо, система не умерла при перезагрузке. NVIDIA по-прежнему не работала, но на новом ядре система заработала. Тщательно проанализировав установленные пакеты командой dpkg -l | grep -i nvidia я увидел что при переключении с открытых драйверов на проприетарные через графический интерфейс пакеты открытых дров не удаляются. Я решил проверить что будет если их убрать. Все равно они не использовались. Командой sudo apt purge xserver-xorg-video-nouveau они все отправились на свалку. После перезагрузки наконец страданиям пришел конец. Все дело было в неудалённых открытых драйверах и несовместимости драйвера с на тот момент стоящей версии ядра.
Сейчас тестирую систему. В режиме On-demand все работает отлично и при вызове дискретки система открывает приложения шустро. Blender стал работать не хуже чем на Windows. Также подъехали те технологии NVIDIA, которые не поддерживаются в открытом драйвере. PyTorch распознал CUDA и подключил её к себе. В итоге получилась система не хуже Windows, а иногда по производительности лучше.
Это моя первая статья на Хабре, буду рад конструктивной критике и обмену мнениями. Если кому-то статья помогла в решении аналогичной проблемы, был рад помочь.
Linux Mint и Гибридная графика — как настроить?
Итак, вы являетесь счастливым обладателем ноутбука с гибридной графикой на основе Nvidia\Intel . Что это вообще значит?
Все довольно просто, в вашем ноутбуке используются две видеокарты, одна интегрирована в процессор на базе Intel, у нее слабая производительность, но очень низкое энергопотребление. Вторая видеокарта — дискретная, от производителя Nvidia, она намного мощнее первой, однако, довольно прожорливая в плане потребления энергии аккумулятора вашего ноутбука.
Смысл гибридной графики прост — при отсутствии необходимости в высокой производительности, включается интегрированное решение, что позволяет экономить заряд, а если вы работаете с ресурсоемкими приложениями или играми, то вступает в бой дискретная видеокарта. Это позволяет поддерживать баланс между производительностью и экономией энергии, что очень актуально для ноутбуков.
В Windows все работает четко, карточки сами включаются и отключаются по мере необходимости. Система сама, в большинстве случаев, ориентируется, что больше нужно пользователю. Но как обстоят дела в Linux?
Откровенно говоря, еще пару лет назад все было очень плохо. И владельцам ноутбуков с гибридной графикой приходилось при установке Linux сразу брать барабаны и бубен для настройки. Но сейчас ситуация изменилась и в большинстве случае все работает из коробки, после нескольких нехитрых манипуляций.
Я говорю о связке Intel\Nvidia, что там с AMD, я не знаю, поскольку никогда не использовал устройства на этой базе.
Для примера мы берем популярный дистрибутив Linux Mint, ну а поскольку он собирается на основе Ubuntu, то скорее всего этот способ подойдет и для Ubuntu и для других деревативов Debian.
1. Итак, у нас есть ноутбук с гибридной графикой и на него установлен Linux Mint 19.3. Первое что мы должны сделать — установить проприентарные драйвера. В моем случае это версия 435.
2. В большинстве случаев, этого будет не достаточно! И скорее всего дискретная видеокарта не заведется, по прежнему будет работать интегрированное решение от Intel, а при попытке запуска Nvidia Prime, который теперь идет вместе с драйвером, вы получите грустное сообщение о том, что ваше устройство не поддерживается .
Что делать? И как с этим бороться?
Лезем в BIOS! Скорее всего проблема во включенной опции Secure Boot (Подробнее о ней, вы можете прочитать в этой статье !). Именно она не дает «завестить» проприентарному драйверу и ее нужно отключить.
3. После всех этих действий, лично у меня все заработало! В системном трее появилась иконка запущенного Nvidia Prime, который позволяет переключаться между видеокартами!
Проблема решена! Теперь пользователи Linux тоже могут наслаждаться всеми преимуществами гибридной графики на своих ноутбуках!
Не забываем ставить палец вверх и подписываться на канал. Впереди еще много интересного!