С выходом проприетарного драйвера NVIDIA 435.21 в свет появился PRIME Render Offload.
Официальный мануал нвидии (смотреть сюда, если что-то пошло не так)
Арчевики (смотреть сюда если очень хочется)
Что и зачем?
Эта нативная функция заменяет Bumblebee и Optimus-Manager. По функциональности он похож на первый, по качеству на второй.
Конечно же первым делом вырубаем топором из системы bumblebee или optimus-manager
P.S. Удалять Optimus-Manager не обязательно, так как он поддерживает данный режим и называется hybrid
sudo pacman -Rс bumblebee sudo pacman -Rс optimus-manager
Для установки требуются драйвера Nvidia 435.21 и новее сейчас — 440хх.
В Manjaro он устанавливается из программы manjaro-settings.
(Для видеокарт серий 600-700 возможно в MHWD будет отображаться только 418хх драйвер, тогда драйвер устанавливать нужно через пакетный менеджер)
! Если 418хх драйвер не указывается в MHWD, тогда PRIME render offload вам не подходит, используйте Bumblebee с 390хх версией драйверов.
Сначала нужно удалить bumblebee, а затем насильно установить драйвер 435 (440) версии (если будет ругаться — не пугайтесь).
После установки, требуется настроить Xorg.conf.
Если вы не хотите заниматься этим вручную, спускаемся до установки пакета «Prime»
Убедитесь что в каталоге /etc/X11/ нет файла xorg.conf
Изменения будем вносить в файл xorg.conf.d/10-nvidia.conf
sudo nano /etc/X11/xorg.conf.d/10-nvidia.conf
И вставляем следующее содержимое
Section "ServerLayout" Identifier "Layout0" Option "AllowNVIDIAGPUScreens" Screen 0 "iGPU" 0 0 EndSection Section "Device" Identifier "iGPU" Driver "modesetting" BusID "PCI:0:2:0" #Проверить свой BusID EndSection Section "Device" Identifier "dGPU" Driver "nvidia" BusID "PCI:1:0:0" #Проверить свой BusID EndSection Section "Screen" Identifier "iGPU" Device "iGPU" DefaultDepth 24 SubSection "Display" Viewport 0 0 EndSubSection EndSection Section "OutputClass" Identifier "iGPU" MatchDriver "i915" Driver "modesetting" EndSection Section "OutputClass" Identifier "dGPU" MatchDriver "nvidia-drm" Driver "nvidia" Option "AllowEmptyInitialConfiguration" Option "PrimaryGPU" "yes" ModulePath "/usr/lib/nvidia/xorg" ModulePath "/usr/lib/xorg/modules" EndSection
Чтобы узнать BusID, воспользуйтесь командой:
lspci -k | grep -A 2 -E "(VGA|3D)"
В начале строки будет ID в формате XX:XX.X
После чего перезагружаемся
reboot
При вводе команды вы должны увидеть 2 видеокарты
xrandr --listproviders
Если показывает только интел, смотрите логи Xorg:
grep /var/log/Xorg.0.log -e "EE" -e "WW"
Для запуска программы под Nvidia используем пример следующий команды
__NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia glxinfo | grep OpenGL
Если у вас вылезает ошибка по типу такой:
Смотрите логи Xorg.
Установка PRIME
Для максимального удобства уважаемый @Feresey забубенил пакет Prime
Данный пакет содержит готовый Xorg.conf и сократит столь длинную строчку запуска до короткого слова prime
Для установки выполните команду
yay -S prime
И затем скопируйте конфиг
sudo cp /{usr/share,etc}/X11/xorg.conf.d/10-nvidia.conf
На этом все
Если что-то пошло не так всегда есть возможность проверить лог файл на ошибки
grep /var/log/Xorg.0.log -e "EE" -e "WW"
С патченными ядрами данный фокус не работает (по крайней мере с linux-pf). Причина в том, что модуль nvidia не загружается. Говорит, что модуля нет, хотя он есть. Даже использование nvidia-dkms не помогло, поэтому советую смириться и использовать обычное ядро арча/манджары.
Дополнение по играм
З.Ы. установите prime, не мучайтесь
Запуск игр в «Steam»
Lutris оказывает нативную поддержку prime render offload:
Для запуска Vulkan’a в Lutris не забываем выбрать ICD loader
Сколько не танцевал, завести так и не удалось. Видимо не дорос еще.
Все зависит поддерживает ли ваша карта 435 драйвера, если да то нужно обращятся к логам хорга.
Ну сейчас стоит nvidia-435.21-7. У меня после всего что описано в статье, загружается все на nvidia почему то. А должно б было на Intel я так понимаю
Может кто сможет подсказать что не так? Вот что нашлось в логах
[ 63.074] Current Operating System: Linux Lenovo-Y700 5.3.1-arch1-1-ARCH #1 SMP PREEMPT Sat Sep 21 11:33:49 UTC 2019 x86_64
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 63.103] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[ 63.184] (WW) Falling back to old probe method for modesetting
[ 63.574] (WW) NVIDIA(G0): Unable to get display device for DPI computation.
[ 63.601] (WW) NVIDIA(G0): Option «PrimaryGPU» is not used
[ 63.670] (II) Initializing extension MIT-SCREEN-SAVER
[ 64.184] (EE) Failed to open authorization file «/var/run/sddm/{0f1c39c5-34b0-428a-b09b-4801a505af97}»: No such file or directory
Пиши в телеграмм @stezko попробуем разобраться
чё как, разобрались?
Да. Оказалось все работает. Просто я немного другого ожидал. Думал nvidia будет вообще отключена до момента когда понадобится какой то программе.
Смотрю в репозитории уже версия xorg 1.20.5-4 появилась. Не пробовали обновить, есть в ней нужные патчи уже? Или их в основную сборку и не собираются добавлять? Может можно где то почитать об етом, или только обновлять и проверять?
В новой версии нет данных исправлений, в пакете можете самостоятельно смотреть ченжлог
https://git.archlinux.org/svntogit/packages.git/log/trunk?h=packages/xorg-server
Понял, спасибо. Надеюсь его все таки скоро добавят. А пока придется в черный список добавить ети пакеты чтоб не обновлялись.
Что-то мне подсказывает что их не добавят никогда. В манжаре кстати их добавили в той же версии 20.5-4.
Как вариант — юзать xorg-server-git из аура. Он поновее будет, и с патчами.
У меня xorg-server-git почему то не собирается. Выдает какую то ошибку. Раньше собирался а сейчас перестал и некогда разобраться почему.
Добрый день открываю лог а там это
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 6.229] (WW) The directory «/usr/share/fonts/OTF» does not exist.
[ 6.229] (WW) The directory «/usr/share/fonts/Type1» does not exist.
[ 6.230] (WW)
fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi".
fonts.dir’ not found (or not valid) in «/usr/share/fonts/75dpi».[ 6.230] (WW)
[ 7.583] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[ 7.608] (WW) Falling back to old probe method for modesetting
[ 10.007] (WW) NVIDIA(G0): Unable to get display device for DPI computation.
[ 10.150] (WW) NVIDIA(G0): Option «PrimaryGPU» is not used
[ 10.150] (II) Initializing extension MIT-SCREEN-SAVER
[ 106.449] (EE) modeset(0): failed to set mode: Permission denied
[ 106.981] (WW) xf86CloseConsole: KDSETMODE failed: Input/output error
[ 106.981] (WW) xf86CloseConsole: VT_GETMODE failed: Input/output error
[ 106.981] (WW) xf86CloseConsole: VT_ACTIVATE failed: Input/output error
~ >>>
получается PrimeGPU сейчас вообще не работает ( как быть
Вижу только 1 ошибку
106.449] (EE) modeset(0): failed to set mode: Permission denied
Что у вас за видеокарты?
Возможно проблемы с ядром
Пробуйте заменить ядро или поменять драйвер, т.е. отредактировать хорг конфиг и заменить modesetting на intel
я специально переустановил (все почистил и поставил) и сразу же после всех обновлений поставил video-hybrid-intel-nvidia-440xx-prime , потом дальше по гайду вручную просто добавил в конфиг выше упомянутое и перезагрузился
CPU: 6-Core Intel Core i7-8750H (-MT MCP-) speed/min/max: 800/800/4100 MHz
Kernel: 5.6.11-1-MANJARO x86_64 Up: 11m Mem: 1129.1/15864.4 MiB (7.1%) Storage: 1.14 TiB (0.7% used)
Graphics: Device-1: Intel UHD Graphics 630 driver: i915 v: kernel
Device-2: NVIDIA GP106M [GeForce GTX 1060 Mobile] driver: nvidia v: 440.82
Display: x11 server: X.org 1.20.8 driver: modesetting,nvidia resolution:
OpenGL: renderer: Mesa Intel UHD Graphics 630 (CFL GT2) v: 4.6 Mesa 20.0.6
может что-то щас поменялось после обнов )
изменил modesetting на intel только одна ошибка убралась про permission остальные на месте
[ 5.968] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[ 5.969] Current Operating System: Linux rbk 5.6.11-1-MANJARO #1 SMP PREEMPT Wed May 6 10:20:32 UTC 2020 x86_64
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[ 5.973] (WW) The directory «/usr/share/fonts/OTF» does not exist.
[ 5.973] (WW) The directory «/usr/share/fonts/Type1» does not exist.
[ 5.973] (WW)
fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi".
fonts.dir’ not found (or not valid) in «/usr/share/fonts/75dpi».[ 5.973] (WW)
[ 7.357] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[ 8.138] (WW) NVIDIA(G0): Unable to get display device for DPI computation.
[ 8.175] (WW) NVIDIA(G0): Option «PrimaryGPU» is not used
[ 8.176] (II) Initializing extension MIT-SCREEN-SAVER
[ 15.741] (WW) xf86CloseConsole: KDSETMODE failed: Input/output error
[ 15.741] (WW) xf86CloseConsole: VT_GETMODE failed: Input/output error
[ 15.741] (WW) xf86CloseConsole: VT_ACTIVATE failed: Input/output error
~ >>>
ядро поменял на предыдущее LTS ошибки те же(
Проблема в том что я не вижу ошибок, только варнинги
А что делать если файл Xorg.conf.d есть в каталоге /etc/X11/?
Насильно это как? у меня как раз 750m, драйверов в pamac дохрена, зависят ли они от ядра? Искать ли гибрид? Какой же драйвер ставить и как заставить его работать?
В манжаре достаточно установить драйвер из mhwd с добавлением «-prime»
И все должно автоматом настроиться