# SPDX-FileCopyrightText: Copyright (c) 2020-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: LicenseRef-NvidiaProprietary # # NVIDIA CORPORATION, its affiliates and licensors retain all intellectual # property and proprietary rights in and to this material, related # documentation and any modifications thereto. Any use, reproduction, # disclosure or distribution of this material and related documentation # without an express license agreement from NVIDIA CORPORATION or # its affiliates is strictly prohibited. # RM display and iGPU devices DEVPATH=="/module/nvidia", ACTION=="add", RUN+="/bin/mknod -m 666 /dev/nvidiactl c 195 255" DEVPATH=="/module/nvidia", ACTION=="add", RUN+="/bin/mknod -m 666 /dev/nvidia0 c 195 0" DEVPATH=="/module/nvidia", ACTION=="add", RUN+="/bin/mknod -m 666 /dev/nvidia1 c 195 1" DEVPATH=="/module/nvidia", ACTION=="remove", RUN+="/bin/rm -f /dev/nvidiactl /dev/nvidia0 /dev/nvidia1" # display modeset device DEVPATH=="/module/nvidia_modeset", ACTION=="add", RUN+="/bin/mknod -m 666 /dev/nvidia-modeset c 195 254" DEVPATH=="/module/nvidia_modeset", ACTION=="remove", RUN+="/bin/rm -f /dev/nvidia-modeset" # Create the device node for the nvidia-uvm module DEVPATH=="/module/nvidia_uvm", ACTION=="add", RUN+="/bin/bash -c '/bin/mknod -m 666 /dev/nvidia-uvm c $$(/bin/grep nvidia-uvm /proc/devices | /bin/cut -d\" \" -f 1) 0'" DEVPATH=="/module/nvidia_uvm", ACTION=="add", RUN+="/bin/bash -c '/bin/mknod -m 666 /dev/nvidia-uvm-tools c $$(/bin/grep nvidia-uvm /proc/devices | /bin/cut -d\" \" -f 1) 1'" DEVPATH=="/module/nvidia_uvm", ACTION=="remove", RUN+="/bin/rm -f /dev/nvidia-uvm" DEVPATH=="/module/nvidia_uvm", ACTION=="remove", RUN+="/bin/rm -f /dev/nvidia-uvm-tools" ACTION=="remove" GOTO="nvidia_end" # root only devices KERNEL=="knvrm" OWNER="root" GROUP="root" MODE="0660" KERNEL=="knvmap" OWNER="root" GROUP="root" MODE="0660" # Populate v4l2 decoder/encoder device node for upstream linux on Tegra platforms KERNEL=="15480000.nvdec", DRIVER=="tegra-nvdec", ACTION=="bind", RUN+="/bin/mknod -m 666 /dev/v4l2-nvdec c 1 3" KERNEL=="154c0000.nvenc", DRIVER=="tegra-nvenc", ACTION=="bind", RUN+="/bin/mknod -m 666 /dev/v4l2-nvenc c 1 3" # Populate v4l2 decoder/encoder device node for iGPU with decoding/encoding capability on Tegra platforms SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x2b00", KERNEL=="0000:01:00.0", ACTION=="bind", RUN+="/bin/mknod -m 666 /dev/v4l2-nvdec c 1 3" SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x2b00", KERNEL=="0000:01:00.0", ACTION=="bind", RUN+="/bin/mknod -m 666 /dev/v4l2-nvenc c 1 3" SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x2b00", KERNEL=="0000:01:00.0", ACTION=="unbind", RUN+="/bin/rm /dev/v4l2-nvdec" SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x2b00", KERNEL=="0000:01:00.0", ACTION=="unbind", RUN+="/bin/rm /dev/v4l2-nvenc" # graphics devices KERNEL=="l3cache" OWNER="root" GROUP="video" MODE="0660" KERNEL=="nvmap" OWNER="root" GROUP="video" MODE="0440" SUBSYSTEM=="dma_heap" KERNEL=="system_heap" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="dma_heap" KERNEL=="system" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="host1x" OWNER="root" GROUP="video" MODE="0660" KERNEL=="nvram" OWNER="root" GROUP="video" MODE="0660" KERNEL=="nvhost*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="nvhost-ctxsw-gpu" OWNER="root" GROUP="debug" MODE="0660" KERNEL=="nvhost-dbg-gpu" OWNER="root" GROUP="debug" MODE="0660" KERNEL=="nvhost-prof-ctx-gpu" OWNER="root" GROUP="debug" MODE="0660" KERNEL=="nvhost-prof-dev-gpu" OWNER="root" GROUP="debug" MODE="0660" KERNEL=="nvhost-prof-gpu" OWNER="root" GROUP="debug" MODE="0660" KERNEL=="nvhost-sched-gpu" OWNER="root" GROUP="root" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*-power" KERNEL=="power" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="as" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="channel" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="ctrl" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="ctxsw" OWNER="root" GROUP="debug" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="dbg" OWNER="root" GROUP="debug" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="prof" OWNER="root" GROUP="debug" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="prof-ctx" OWNER="root" GROUP="debug" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="prof-dev" OWNER="root" GROUP="debug" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="sched" OWNER="root" GROUP="root" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="tsg" OWNER="root" GROUP="video" MODE="0660" SUBSYSTEM=="nvidia-*gpu-*" KERNEL=="nvsched" OWNER="root" GROUP="video" MODE="0640" KERNEL=="tegra_camera_ctrl" OWNER="root" GROUP="video" MODE="0660" KERNEL=="tegra_cec" OWNER="root" GROUP="video" MODE="0660" KERNEL=="tegra_mipi_cal" OWNER="root" GROUP="video" MODE="0660" KERNEL=="tegra-vi*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="tegra-soc-hwpm" OWNER="root" GROUP="debug" MODE="0660" # camera and related devices KERNEL=="ov*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="camera*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="imx*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="mipi-cal" OWNER="root" GROUP="video" MODE="0660" KERNEL=="ar*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="camchar*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="capture-*" OWNER="root" GROUP="video" MODE="0660" KERNEL=="cdi_tsc" OWNER="root" GROUP="video" MODE="0660" KERNEL=="coe-chan-*" OWNER="root" GROUP="video" MODE="0660" # Power policies SUBSYSTEM=="pci", DEVPATH=="/devices/platform/bus@0/d0b0000000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0", ACTION=="bind", RUN+="/bin/bash /etc/systemd/nvpower.sh --gpu" SUBSYSTEM=="platform", DEVPATH=="/devices/platform/bus@0/17000000.gpu", ACTION=="bind|change", RUN+="/bin/bash /etc/systemd/nvpower.sh --gpu" SUBSYSTEM=="platform", DEVPATH=="/devices/platform/bus@0/*/8188050000.vic", ACTION=="bind|change", RUN+="/bin/bash /etc/systemd/nvpower.sh --vic" SUBSYSTEM=="platform", DEVPATH=="/devices/platform/bus@0/*/15340000.vic", ACTION=="bind|change", RUN+="/bin/bash /etc/systemd/nvpower.sh --vic" SUBSYSTEM=="platform", DEVPATH=="/devices/platform/bus@0/*/15480000.nvdec", ACTION=="bind|change", RUN+="/bin/bash /etc/systemd/nvpower.sh --nvdec" SUBSYSTEM=="platform", DEVPATH=="/devices/platform/bus@0/*/154c0000.nvenc", ACTION=="bind|change", RUN+="/bin/bash /etc/systemd/nvpower.sh --nvenc" SUBSYSTEM=="hwmon", DEVPATH=="/devices/platform/bus@0/c600000.i2c/i2c-2/2-0044/hwmon/*", ACTION=="bind|change", RUN+="/bin/bash /etc/systemd/nvpower.sh --ina238" LABEL="nvidia_end"