blob: afedc4dcd2537f583d03d1f6031ac0130b45d546 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
|
# Make sure device nodes are present even when the DDX is not started for the Wayland/EGLStream case
KERNEL=="nvidia", RUN+="/usr/bin/bash -c 'if [ ! -c /dev/nvidiactl ]; then /usr/bin/mknod -Z -m 666 /dev/nvidiactl c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 255; fi'"
KERNEL=="nvidia", RUN+="/usr/bin/bash -c 'for i in $$(cat /proc/driver/nvidia/gpus/*/information | grep Minor | cut -d \ -f 4); do if [ ! -c /dev/nvidia$${i} ]; then /usr/bin/mknod -Z -m 666 /dev/nvidia$${i} c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) $${i}; fi; done'"
KERNEL=="nvidia_modeset", RUN+="/usr/bin/bash -c 'if [ ! -c /dev/nvidia-modeset ]; then /usr/bin/mknod -Z -m 666 /dev/nvidia-modeset c $$(grep nvidia-frontend /proc/devices | cut -d \ -f 1) 254; fi'"
KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c 'if [ ! -c /dev/nvidia-uvm ]; then /usr/bin/mknod -Z -m 666 /dev/nvidia-uvm c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 0; fi'"
KERNEL=="nvidia_uvm", RUN+="/usr/bin/bash -c 'if [ ! -c /dev/nvidia-uvm-tools ]; then /usr/bin/mknod -Z -m 666 /dev/nvidia-uvm-tools c $$(grep nvidia-uvm /proc/devices | cut -d \ -f 1) 1; fi'"
# Device nodes are created by nvidia-modprobe, which is called by the nvidia DDX.
# In case the DDX is not started, the device nodes are never created, so call
# nvidia-modprobe in the udev rules to cover the Wayland/EGLStream and compute
# case without a started display. In the case where vfio-pci is used
# nvidia-modprobe should not be invoked.
ACTION=="add|bind", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", DRIVER=="nvidia", TEST!="/dev/nvidia-uvm", RUN+="/usr/bin/nvidia-modprobe", RUN+="/usr/bin/nvidia-modprobe -c0 -u"
|