LINUX.ORG.RU

Nvidia Prime не работает.

 , ,


1

2

ОС linux Manjaro с ядром 5.6, на ноутбуке со встроенной intel и дискретной nvidia графикой.

lspci | grep -E -e "VGA" -e "3D"
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)

Установил проприентарные дравйера nvidia 440xx. Хотел запускать программы с prime-run. Не рабоет.

просто так:

glxinfo | grep vendor
server glx vendor string: SGI
client glx vendor string: Mesa Project and SGI
OpenGL vendor string: Intel

с prime-run:

prime-run glxinfo | grep vendor
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  152 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  39
  Current serial number in output stream:  40

Вроде как есть проблема, что у меня чего-то не догружается, потому что xrandr выдает только одного провайдера:

xrandr --listproviders
Providers: number : 1
Provider 0: id: 0x47 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 5 associated providers: 0 name:modesetting

Пробовал делать по этой инструкции.

EDIT: добавил log Xorg

Ответ на: комментарий от infomeh

Да, модуль nvidia загружается

lsmod | grep nvidia
nvidia_drm             53248  0
nvidia_modeset       1118208  1 nvidia_drm
drm_kms_helper        249856  2 nvidia_drm,i915
drm                   569344  9 drm_kms_helper,nvidia_drm,i915
nvidia              20721664  4 nvidia_modeset
ipmi_msghandler        69632  2 ipmi_devintf,nvidia

В логах Xorg есть ошибки:

cat .local/share/xorg/Xorg.0.log | grep -E -e "WW" -e "EE"
[  1553.560] (WW) Failed to open protocol names file lib/xorg/protocol.txt
[  1553.566] Current Operating System: Linux bugmachine 5.6.17-2-rt9-MANJARO #1 SMP PREEMPT_RT Wed Jun 10 14:36:12 UTC 2020 x86_64
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[  1553.580] (WW) The directory "/usr/share/fonts/misc" does not exist.
[  1553.580] (WW) The directory "/usr/share/fonts/TTF" does not exist.
[  1553.580] (WW) The directory "/usr/share/fonts/OTF" does not exist.
[  1553.580] (WW) The directory "/usr/share/fonts/Type1" does not exist.
[  1553.580] (WW) The directory "/usr/share/fonts/100dpi" does not exist.
[  1553.580] (WW) The directory "/usr/share/fonts/75dpi" does not exist.
[  1553.587] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[  1553.589] (WW) Warning, couldn't open module intel
[  1553.589] (EE) Failed to load module "intel" (module does not exist, 0)
[  1553.589] (WW) Warning, couldn't open module nouveau
[  1553.589] (EE) Failed to load module "nouveau" (module does not exist, 0)
[  1553.589] (WW) Warning, couldn't open module nv
[  1553.589] (EE) Failed to load module "nv" (module does not exist, 0)
[  1553.589] (WW) Warning, couldn't open module fbdev
[  1553.589] (EE) Failed to load module "fbdev" (module does not exist, 0)
[  1553.589] (WW) Warning, couldn't open module vesa
[  1553.589] (EE) Failed to load module "vesa" (module does not exist, 0)
[  1553.590] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[  1554.533] (II) Initializing extension MIT-SCREEN-SAVER
Notevill ()

У меня t580 тоже с prime.

Когда ставил manjaro, с driver=free встало криво-косо. Заменил при установке на driver=nonfree, обновился после установки, и машина тронулась.

Сейчас всё работает ок.


Уточни, что за лаптоп у тебя? У моего знакомого на каком-то msi с prime такая особенность, что HDMI работает ТОЛЬКО с nvidia, там повозиться пришлось.

lead_bro ()
Ответ на: комментарий от lead_bro

У меня Aser VN7 592

Вообще раньше с bumblebee работало и с nvidia-xrun работало.

Щас вот переставил ОС с нуля и хочу с prime.

Я так понимаю сейчас bumblebee считается устаревшим? Но если и не устаревшим, то prime, вроде как должен быть производительнее.

Notevill ()

во первых: чтоб поставить бомжару, нужно заразиться раком мозга 10й стадии;

во вторых: чтобы работал prime-run, нужно чтоб иксы стартанули на нвидии, проверить можно через nvidia-smi например;

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

anonymous ()

У меня дискретка мне ли рассчитывать на gpu на оптимусе есть интерес заработает и посмотреть перфоманс от моего ядра , само ядро тут думаю и на дебианы подойдёт ядро https://github.com/Griggorii/linux-image-oem-5.6.0-1020-kernel-ubuntu-x86_64-deb-package систему позавчера выкатил на нём туда хедеры закинул https://github.com/Griggorii/Linux_OS20.04_V3_X64_By_Griggorii.iso_ubuntu_focal_fossa-linux-image-unsigned-5.6.0-1020-oem

anonymous ()
Ответ на: комментарий от Notevill

с outputclass’ами у меня тоже не работало. и еще пришлось создать /etc/X11/xorg.conf.d/10-intel.conf и в нем:

Section "Device"
        Identifier "intel"
        Driver "intel"
        BusID "PCI:0:2:0"
        Option "AccelMethod" "sna"
        Option "TearFree" "true"
        Option "DRI" "3"
EndSection

anonymous ()

log с Xorg https://pastebin.com/11CjXdkH

Есть там вот такое

[    37.668] (EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA GPU at PCI:1:0:0.  Please
[    37.668] (EE) NVIDIA(GPU-0):     check your system's kernel log for additional error
[    37.668] (EE) NVIDIA(GPU-0):     messages and refer to Chapter 8: Common Problems in the
[    37.668] (EE) NVIDIA(GPU-0):     README for additional information.
[    37.668] (EE) NVIDIA(GPU-0): Failed to initialize the NVIDIA graphics device!
[    37.668] (EE) NVIDIA(G0): Failing initialization of X screen
[    37.668] (II) UnloadModule: "nvidia"
[    37.668] (II) UnloadSubModule: "glxserver_nvidia"
[    37.668] (II) Unloading glxserver_nvidia
[    37.668] (II) UnloadSubModule: "wfb"
[    37.668] (II) UnloadSubModule: "fb"

Что это значит? И, стыдно признаться, но check your system's kernel log это где смотреть?

Notevill ()
Ответ на: комментарий от anonymous

Лог с dmesg

В конце есть вот такое:

[   27.465018] NVRM: GPU 0000:01:00.0: Failed to copy vbios to system memory.
[   27.466291] NVRM: GPU 0000:01:00.0: RmInitAdapter failed! (0x30:0xffff:755)
[   27.466442] NVRM: GPU 0000:01:00.0: rm_init_adapter failed, device minor number 0

Что это может значить?

Notevill ()
Ответ на: комментарий от Notevill

Вот так теперь выглядит Xorg log

Модуль nvidia сначала загружается, а потом выгружается, ну и пишет ошибку про Screen 1.

Что это такое может быть?

[    15.579] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    15.579] (EE) Screen 1 deleted because of no matching config section.
[    15.579] (II) UnloadModule: "nvidia"

Правда после всего модуль nvidia вроде как загружен.

lsmod | grep nvidia
nvidia              20725760  3
ipmi_msghandler        69632  2 ipmi_devintf,nvidia
Notevill ()
Ответ на: комментарий от Notevill

https://download.nvidia.com/XFree86/Linux-x86_64/435.21/README/primerenderoffload.html

документация говорит, что нужно чтобы модуль nvidia-drm был запущен. У меня он не запускается сам. Если запускаю в ручную модуль, то prime-run работает.

Как сделать чтобы этот модуль запускался автоматически?

Notevill ()
Ответ на: комментарий от Notevill

ну у тебя 2 путя, либо в файлик писать то что ты прочитал, либо добавить в параметры загрузки ядра то что я написал. по сути это одно и тоже.

anonymous ()

Ну все решилось. nvidia-drm не запускался потому что optimus-manager с собой принес в конфигах blacklist nvidia-drm, удалил его.

Итого для меня рабочая конфигурация ОС Manjaro с ядром 5.4 Драйвера nvidia ставил через mhwd И добавил конфигурацию один в один отсюда.

При этом:

lsmod | grep nvidia
nvidia_drm             57344  2
nvidia_modeset       1118208  2 nvidia_drm
drm_kms_helper        221184  2 nvidia_drm,i915
drm                   520192  11 drm_kms_helper,nvidia_drm,i915
nvidia              20725760  78 nvidia_modeset
ipmi_msghandler        69632  2 ipmi_devintf,nvidia
xrandr --listproviders
Providers: number : 2
Provider 0: id: 0x47 cap: 0xf, Source Output, Sink Output, Source Offload, Sink Offload crtcs: 3 outputs: 5 associated providers: 0 name:modesetting
Provider 1: id: 0x241 cap: 0x0 crtcs: 0 outputs: 0 associated providers: 0 name:NVIDIA-G0
prime-run glxinfo | grep vendor
server glx vendor string: NVIDIA Corporation
client glx vendor string: NVIDIA Corporation
OpenGL vendor string: NVIDIA Corporation

и отдельно прописывать options nvidia-drm modeset=1 не нужно.

Notevill ()
Последнее исправление: Notevill (всего исправлений: 1)
Ответ на: комментарий от Notevill

> optimus-manager с собой принес в конфигах «blacklist nvidia-drm», удалил его

Последний драйвер, который позволял пользоваться NVIDIA PRIME без модуля nvidia-drm, был 358.xx. Начиная с 361.xx, этот модуль нужен. Однако если никакого Optimus нет и используется дискретная карта, можно и дальше не пользоваться модулем nvidia-drm.

ZenitharChampion ★★★★★ ()