FS#72306 - [nvidia] permissions not correctly set for UVM module stops some Vulkan applications from working
Attached to Project:
Arch Linux
Opened by Dietrich Hallentforden (aufkrawall) - Thursday, 30 September 2021, 19:16 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Saturday, 20 November 2021, 11:29 GMT
Opened by Dietrich Hallentforden (aufkrawall) - Thursday, 30 September 2021, 19:16 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Saturday, 20 November 2021, 11:29 GMT
|
Details
Description:
Red Dead Redemption 2 (Vulkan) or CyberPunk 2077 (Vulkan via vkd3d-proton) don't start in Wine (not Proton) due to this if not some other (apparently more or less random) Vulkan applications have been started before. Steam Proton is not affected, as its runtime sets the required permissions by itself. A workaround is to run "sudo nvidia-modprobe -u -c=0" to make it work also outside of Proton. Ubuntu ships a binary with a udev rule that automatically sets the correct permissions, see this comment: https://github.com/HansKristian-Work/vkd3d-proton/issues/711#issuecomment-916246337 nvidia-dkms 470.74-3 linux 5.14.8.arch1-1 nvidia-drm.modeset=1 & Plasma rootless Xorg session started via xinit (just mentioning it in case it matters) |
This task depends upon
Closed by Sven-Hendrik Haase (Svenstaro)
Saturday, 20 November 2021, 11:29 GMT
Reason for closing: Fixed
Saturday, 20 November 2021, 11:29 GMT
Reason for closing: Fixed
[1] https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/nvidia-graphics-drivers-470/470.74-0ubuntu1/nvidia-graphics-drivers-470_470.74-0ubuntu1.debian.tar.xz
[2] https://github.com/negativo17/nvidia-kmod-common/blob/master/60-nvidia.rules
KERNEL=="nvidia", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255'"
KERNEL=="nvidia", RUN+="/usr/bin/bash -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do /usr/bin/mknod -Z -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; done'"
KERNEL=="nvidia_modeset", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254'"
KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0'"
KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c '/usr/bin/mknod -Z -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1'"
However, I can't reproduce this issue and my device nodes are apparently always happily being created. Any way I can repro the issue somewhat cleanly?
It works with Tk-Glitch's build script since these changes:
https://github.com/Frogging-Family/nvidia-all/commit/d621f9d527ac9d5a22137f31f185f73b4771a06e
https://github.com/Frogging-Family/nvidia-all/commit/65fd56bdeb36d6f64a4cb178e3745a76a466a5f2