aboutsummarylogtreecommitdiffstats
path: root/nvidia-egpu-hotplug.rules
blob: ff847dc6b07b7447ad1097860a225a5f9f2fd22e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# NVIDIA eGPU hotplug udev rules
# Handles automatic module cleanup when Thunderbolt eGPU is disconnected

# On add, tag NVIDIA GPUs so we can identify them on remove
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", \
    ENV{NVIDIA_GPU}="1", TAG+="nvidia-egpu", \
    RUN+="/usr/lib/nvidia-egpu/nvidia-egpu-hotplug.sh add %k"

ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", \
    ENV{NVIDIA_GPU}="1", TAG+="nvidia-egpu", \
    RUN+="/usr/lib/nvidia-egpu/nvidia-egpu-hotplug.sh add %k"

# On remove, check for nvidia driver in ID_PCI_DRIVER (set during unbind)
# or use the kernel device path pattern for NVIDIA GPUs
ACTION=="remove", SUBSYSTEM=="pci", ENV{ID_PCI_DRIVER}=="nvidia", \
    RUN+="/usr/lib/nvidia-egpu/nvidia-egpu-hotplug.sh remove %k"

# Fallback: trigger on any Thunderbolt downstream port removal 
# and let the script determine if cleanup is needed
ACTION=="remove", SUBSYSTEM=="thunderbolt", ENV{DEVTYPE}=="thunderbolt_device", \
    RUN+="/usr/lib/nvidia-egpu/nvidia-egpu-hotplug.sh remove thunderbolt"