]>
Commit | Line | Data |
---|---|---|
d638611c KS |
1 | # do not edit this file, it will be overwritten on update |
2 | ||
654b036b KS |
3 | # run a command on remove events |
4 | ACTION=="remove", ENV{REMOVE_CMD}!="", RUN+="$env{REMOVE_CMD}" | |
a06c8219 | 5 | ACTION=="remove", GOTO="default_end" |
654b036b | 6 | |
9a78ee00 YW |
7 | # The md driver increments diskseq *after* emitting 'change' uevent. |
8 | # Drop the line below if it is fixed on the kernel side. | |
9 | SUBSYSTEM=="block", KERNEL=="md*", ENV{ID_IGNORE_DISKSEQ}="1" | |
10 | ||
bbb7f2ae KS |
11 | SUBSYSTEM=="virtio-ports", KERNEL=="vport*", ATTR{name}=="?*", SYMLINK+="virtio-ports/$attr{name}" |
12 | ||
67fb4482 KS |
13 | # select "system RTC" or just use the first one |
14 | SUBSYSTEM=="rtc", ATTR{hctosys}=="1", SYMLINK+="rtc" | |
15 | SUBSYSTEM=="rtc", KERNEL=="rtc0", SYMLINK+="rtc", OPTIONS+="link_priority=-100" | |
16 | ||
451ba55f | 17 | SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", IMPORT{builtin}="usb_id", IMPORT{builtin}="hwdb --subsystem=usb" |
bbb7f2ae KS |
18 | ENV{MODALIAS}!="", IMPORT{builtin}="hwdb --subsystem=$env{SUBSYSTEM}" |
19 | ||
6636b2b6 YW |
20 | # Before c43ff248f94266cfc93e300a2d3d163ed805e55b, the following line in |
21 | # 60-drm.rules also sets ID_PATH for all pci, usb, and platform devices: | |
22 | #### | |
23 | # ACTION!="remove", SUBSYSTEM=="drm", SUBSYSTEMS=="pci|usb|platform", IMPORT{builtin}="path_id" | |
24 | #### | |
25 | # Unfortunately, some existing rules already rely on the unexpected behavior. | |
26 | # To keep the backward compatibility, let's set ID_PATH for them. | |
27 | SUBSYSTEM=="pci|usb|platform", IMPORT{builtin}="path_id" | |
28 | ||
2b5b25f1 LN |
29 | SUBSYSTEM=="net", IMPORT{builtin}="net_driver" |
30 | ||
654b036b | 31 | ACTION!="add", GOTO="default_end" |
22582bb2 | 32 | |
378f2e07 KS |
33 | SUBSYSTEM=="tty", KERNEL=="ptmx", GROUP="tty", MODE="0666" |
34 | SUBSYSTEM=="tty", KERNEL=="tty", GROUP="tty", MODE="0666" | |
3553fddb | 35 | SUBSYSTEM=="tty", KERNEL=="tty[0-9]*|hvc[0-9]*|sclp_line[0-9]*|ttysclp[0-9]*|3270/tty[0-9]*", GROUP="tty", MODE="0620" |
378f2e07 | 36 | SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty" |
27b8198e | 37 | KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout" |
d638611c | 38 | |
378f2e07 | 39 | SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640" |
d638611c | 40 | |
3dff3e00 | 41 | SUBSYSTEM=="input", GROUP="input" |
d1f0e886 | 42 | SUBSYSTEM=="input", KERNEL=="js[0-9]*", MODE="0664" |
d638611c | 43 | |
912541b0 | 44 | SUBSYSTEM=="video4linux", GROUP="video" |
912541b0 | 45 | SUBSYSTEM=="graphics", GROUP="video" |
4e15a734 | 46 | SUBSYSTEM=="drm", KERNEL!="renderD*", GROUP="video" |
22582bb2 | 47 | SUBSYSTEM=="dvb", GROUP="video" |
9bfc0df1 LP |
48 | SUBSYSTEM=="media", GROUP="video" |
49 | SUBSYSTEM=="cec", GROUP="video" | |
d638611c | 50 | |
8feaea5e ZJS |
51 | SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="render", MODE="{{GROUP_RENDER_MODE}}" |
52 | SUBSYSTEM=="kfd", GROUP="render", MODE="{{GROUP_RENDER_MODE}}" | |
3d1e78e3 | 53 | SUBSYSTEM=="accel", GROUP="render", MODE="{{GROUP_RENDER_MODE}}" |
4e15a734 | 54 | |
c9c4899f | 55 | SUBSYSTEM=="misc", KERNEL=="sgx_enclave", GROUP="sgx", MODE="0660" |
b5d3138f | 56 | SUBSYSTEM=="misc", KERNEL=="sgx_vepc", GROUP="sgx", MODE="0660" |
c9c4899f | 57 | |
1f9290fc ZJS |
58 | # When using static_node= with non-default permissions, also update |
59 | # tmpfiles.d/static-nodes-permissions.conf.in to keep permissions synchronized. | |
60 | ||
912541b0 | 61 | SUBSYSTEM=="sound", GROUP="audio", \ |
3e227830 | 62 | OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer" |
4b4409b1 | 63 | |
22582bb2 | 64 | SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0664" |
d638611c | 65 | |
f125f8b1 TS |
66 | SUBSYSTEM=="firewire", TEST=="units", TEST=="model", \ |
67 | IMPORT{builtin}="hwdb 'ieee1394:node:ven$attr{vendor}mo$attr{model}units$attr{units}'" | |
68 | ||
69 | SUBSYSTEM=="firewire", TEST=="units", TEST!="model", \ | |
70 | IMPORT{builtin}="hwdb 'ieee1394:node:ven$attr{vendor}units$attr{units}'" | |
71 | ||
72 | SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_MIDI}=="1", GROUP="audio" | |
73 | SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_AUDIO}=="1", GROUP="audio" | |
74 | SUBSYSTEM=="firewire", TEST=="units", ENV{IEEE1394_UNIT_FUNCTION_VIDEO}=="1", GROUP="video" | |
75 | ||
912541b0 KS |
76 | KERNEL=="parport[0-9]*", GROUP="lp" |
77 | SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp" | |
78 | SUBSYSTEM=="ppdev", GROUP="lp" | |
79 | KERNEL=="lp[0-9]*", GROUP="lp" | |
80 | KERNEL=="irlpt[0-9]*", GROUP="lp" | |
665a754d | 81 | SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp" |
d638611c | 82 | |
b6c8f986 | 83 | SUBSYSTEM=="block", GROUP="disk" |
eabac232 | 84 | SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="cdrom" |
12a7c14b | 85 | SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom" |
378f2e07 | 86 | KERNEL=="sch[0-9]*", GROUP="cdrom" |
4b4409b1 KS |
87 | KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" |
88 | KERNEL=="pktcdvd", GROUP="cdrom" | |
8553cf06 | 89 | |
12a7c14b | 90 | SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape" |
12a7c14b | 91 | SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk" |
d638611c | 92 | KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk" |
27e7c262 KS |
93 | KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control" |
94 | KERNEL=="btrfs-control", GROUP="disk" | |
4b4409b1 KS |
95 | KERNEL=="rawctl", GROUP="disk" |
96 | SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", GROUP="disk" | |
97 | SUBSYSTEM=="aoe", GROUP="disk", MODE="0220" | |
2fc635fb | 98 | SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440" |
d638611c | 99 | |
d1f0e886 | 100 | KERNEL=="rfkill", MODE="0664" |
22582bb2 | 101 | KERNEL=="tun", MODE="0666", OPTIONS+="static_node=net/tun" |
d638611c | 102 | |
22582bb2 | 103 | KERNEL=="fuse", MODE="0666", OPTIONS+="static_node=fuse" |
557b005f | 104 | |
d35d6249 | 105 | # The static_node is required on s390x and ppc (they are using MODULE_ALIAS) |
8feaea5e | 106 | KERNEL=="kvm", GROUP="kvm", MODE="{{DEV_KVM_MODE}}", OPTIONS+="static_node=kvm" |
5a664ca1 | 107 | |
f8eb4100 AR |
108 | KERNEL=="vfio", MODE="0666", OPTIONS+="static_node=vfio/vfio" |
109 | ||
c4446798 | 110 | KERNEL=="vsock", MODE="0666" |
8feaea5e | 111 | KERNEL=="vhost-vsock", GROUP="kvm", MODE="{{DEV_KVM_MODE}}", OPTIONS+="static_node=vhost-vsock" |
c4446798 | 112 | |
8feaea5e | 113 | KERNEL=="vhost-net", GROUP="kvm", MODE="{{DEV_KVM_MODE}}", OPTIONS+="static_node=vhost-net" |
f65efddd | 114 | |
0fde5a35 MAL |
115 | KERNEL=="udmabuf", GROUP="kvm" |
116 | ||
c65c2f0a LP |
117 | SUBSYSTEM=="ptp", ATTR{clock_name}=="KVM virtual PTP", SYMLINK+="ptp_kvm" |
118 | SUBSYSTEM=="ptp", ATTR{clock_name}=="hyperv", SYMLINK+="ptp_hyperv" | |
32e868f0 | 119 | |
654b036b | 120 | LABEL="default_end" |