Настройка графики в 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), то с помощью данной команды через терминал загрузим программу для установки драйверов:

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 Здесь мы видим три пункта:

  1. NVIDIA (Performance Mode) — работать только на дискретной графике. Сильно потребляет батарею в несложных задачах, а так же ноутбук начинает греться. Зато система работает намного быстрее, но это того не стоит. У меня после установки драйвера этот пункт включился автоматически
  2. NVIDIA On-Demand — некоторые приложения будут использовать дискретную графику nvidia, но по-умолчанию встроенная intel. Как запустить конкретное приложение с дискретной графикой напишу дальше
  3. NVIDIA (Power Saving Mode) — отключение дискретной графики
Читайте также:  Replace android with linux

Выбираем второй вариант — 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 нужно нажать на него ПКМ, открыть свойства (или «изменить приложение. «), перейти во вкладку «приложение» и перед командой приписать данную приставку. В других средах похожего стола примерно так же

Пример: ярлык игры Wolfenstein - Blade of Agony

Можно сделать это же действие через текстовый редактор. Открываем ярлык, находим Exec= , и приписываем перед коммандой данную приставку __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia

__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia minecraft-launcher

Заключение

Данный метод, как я понял, точно работают для программ, использующих библиотеки OpenGL и Vulkan. У меня, к сожалению, не получилось запустить так Windows приложение через Wine, которое использует DirectX, но это уже совсем другая история. (OpenGL приложения под Wine работают)

P.S. в комментариях (#comment_23011444) немного подсказали, что для работы с Proton (DirectX) есть такой док

Источник

Управление графикой: xorg.conf, многомониторные режимы, панель задач

Общее управление графическими режимами современных версиях Astra Linux осуществляется с помощью графического сервера Xorg. По умолчанию этот сервер автоматически определяет актуальную конфигурацию оборудования, и настраивается самостоятельно. Ниже описаны основные способы ручной настройки этого сервера.

Создание конфигурационного файла /etc/X11/xorg.conf

По умолчанию в современных версиях Astra Linux файл конфигурации графического сервера Xorg не создаётся и не используется. Автоматическая настройка параметров Xorg производится при каждом запуске системы, при этом каждый раз производится проверка оборудования, и подбираются параметры под актуальную аппаратную конфигурацию.

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

Более подробная информация по конфигурационным файлам Xorg доступна в документации по xorg.conf.

Конфигурационный файл с текущими настройками может быть создан самим сервером Xorg.

Для этого первым шагом нужно остановить текущую сессию менеджера дисплеев (в Astra Linux это служба fly-dm).

При остановке текущей сессии менеджера дисплеев текущая графическая сессия будет прекращена.
Останавливая текущую сессию менеджера дисплеев нужно быть готовым войти в консольную сессию (знать логин и пароль).
Для повторного запуска графической сессии нужно будет перезагрузить компьютер.
Из консольной сессии из командной строки перезагрузить компьютер можно командой

Читайте также:  Foxit reader for desktop linux

Остановить текущую сессию менеджера дисплеев можно командой:

sudo systemctl stop fly-dm

В консольной сессии перейти в каталог /etc/X11/ и ввести команду для генерации файла настроек:

При выполнении команды будет создан файл /root/xorg.conf.new с примерно таким содержанием (очень сильно зависит от текущей аппаратной конфигурации):

Section «ServerLayout»
Identifier «X.org Configured»
Screen 0 «Screen0» 0 0
InputDevice «Mouse0» «CorePointer»
InputDevice «Keyboard0» «CoreKeyboard»
EndSection

Section «Files»
ModulePath «/usr/lib/xorg/modules»
FontPath «/usr/share/fonts/msttcorefonts»
FontPath «/usr/share/fonts/X11/misc»
FontPath «/usr/share/fonts/X11/100dpi/:unscaled»
FontPath «/usr/share/fonts/X11/75dpi/:unscaled»
FontPath «/usr/share/fonts/X11/Type1»
FontPath «/usr/share/fonts/X11/100dpi»
FontPath «/usr/share/fonts/X11/75dpi»
FontPath «built-ins»
EndSection

Section «Module»
Load «glx»
EndSection

Section «InputDevice»
Identifier «Keyboard0»
Driver «kbd»
EndSection

Section «InputDevice»
Identifier «Mouse0»
Driver «mouse»
Option «Protocol» «auto»
Option «Device» «/dev/input/mice»
Option «ZAxisMapping» «4 5 6 7»
EndSection

Section «Monitor»
Identifier «Monitor0»
VendorName «Monitor Vendor»
ModelName «Monitor Model»
EndSection

Section «Device»
### Available Driver options are:-
### Values: : integer, : float, : «True»/»False»,
### : «String», : » Hz/kHz/MHz»,
### : «%»
### [arg]: arg optional
#Option «SWcursor» # []
#Option «kmsdev» #
#Option «ShadowFB» # []
#Option «AccelMethod» #
#Option «PageFlip» # []
#Option «ZaphodHeads» #
#Option «DoubleShadow» # []
Identifier «Card0»
Driver «modesetting»
BusID «PCI:0:2:0»
EndSection

Section «Screen»
Identifier «Screen0»
Device «Card0»
Monitor «Monitor0»
SubSection «Display»
Viewport 0 0
Depth 1
EndSubSection
SubSection «Display»
Viewport 0 0
Depth 4
EndSubSection
SubSection «Display»
Viewport 0 0
Depth 8
EndSubSection
SubSection «Display»
Viewport 0 0
Depth 15
EndSubSection
SubSection «Display»
Viewport 0 0
Depth 16
EndSubSection
SubSection «Display»
Viewport 0 0
Depth 24
EndSubSection
EndSection

Конфигурационный файл, для того, чтобы он использовался графическим сервером, необходимо переместить (или скопировать, сохранив оригинал) в каталог /etc/X11/ и переименовать в xorg.conf:

Источник

Танцы с бубном или как я решал проблему работы NVIDIA в Linux Mint

Начну с предыстории. Полгода назад я установил на ноутбук с предустановленной Windows линукс. Выбор пал на Минт из-за приятного окружения Cinnamon. Изначально использовал линукс как вспомогательную систему и писал на ней только код. По причине отличной оптимизации постепенно переносил все больше своих ежедневных задач на пингвина. На борту ноутбука установлено две видеокарты: встроенная от AMD и дискретная от NVIDIA (3050ti mobile). Из коробки, Минт по умолчанию для NVIDIA устанавливает открытые драйвера и пакет NVIDIA Prime. Он позволяет осуществлять переключение между видеокартами и работает как в терминале, так и в графической утилите.

Выбор режима через графическую утилиту

Первое время работы для экономии энергии выставил значение Power Saving которое отключило дискретную графику и передало управление встроенной от AMD. В течение несколько месяцев никаких проблем не возникало. Как я писал выше, из-за хорошей оптимизации я начал устанавливать в линукс программы которыми пользовался обычно на Windows. Среди них был и Blender. Интегрированная графика не порадовала своей производительностью и я решил включить дискретку по запросу. Несмотря на запуск Blender с NVIDIA, производительность сильно не увеличилась. Да, разница ощущалась в лучшую сторону, но в Windows все работало лучше. После посещения форумов, выяснил, что у многих похожая проблема и она вызвана открытыми драйверами на видеокарте. Решил переключить на проприетарные.

Читайте также:  Group access on linux

Выбор драйверов через менеджер

Все пакеты установились и я перезагрузил компьютер. 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, а иногда по производительности лучше.

Это моя первая статья на Хабре, буду рад конструктивной критике и обмену мнениями. Если кому-то статья помогла в решении аналогичной проблемы, был рад помочь.

Источник

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