1 # There are a number of modifiers that are allowed to be used in some
2 # of the different fields. They provide the following subsitutions:
4 # %n the "kernel number" of the device.
5 # For example, 'sda3' has a "kernel number" of '3'
6 # %e the smallest number for that name which does not matches an existing node
7 # %k the kernel name for the device
8 # %M the kernel major number for the device
9 # %m the kernel minor number for the device
10 # %b the bus id for the device
11 # %c the string returned by the PROGRAM
12 # %s{filename} the content of a sysfs attribute
13 # %% the '%' char itself
17 BUS=="scsi", KERNEL=="sr[0-9]*", NAME="scd%n", SYMLINK+="sr%n"
20 BUS=="usb", KERNEL=="auer[0-9]*", NAME="usb/%k"
21 BUS=="usb", KERNEL=="cpad[0-9]*", NAME="usb/%k"
22 BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k"
23 BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k"
24 BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k"
25 BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
26 BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \
30 SUBSYSTEM=="usb_device", \
31 PROGRAM="/bin/sh -c 'export X=%k; export X=$${X#usbdev}; export B=$${X%%%%.*}; export D=$${X#*.}; echo bus/usb/$$B/$$D'", SYMLINK+="%c"
34 KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
35 KERNEL=="capi[0-9]*", NAME="capi/%n"
38 KERNEL=="card[0-9]*", NAME="dri/%k"
41 KERNEL=="hw_random", NAME="hwrng"
42 KERNEL=="tun", NAME="net/%k"
44 KERNEL=="cdemu[0-9]*", NAME="cdemu/%n"
45 KERNEL=="pktcdvd[0-9]*", NAME="pktcdvd/%n"
46 KERNEL=="pktcdvd", NAME="pktcdvd/control"
48 KERNEL=="cpu[0-9]*", NAME="cpu/%n/cpuid"
49 KERNEL=="msr[0-9]*", NAME="cpu/%n/msr"
50 KERNEL=="microcode", NAME="cpu/microcode"
52 KERNEL=="umad*", NAME="infiniband/%k"
53 KERNEL=="issm*", NAME="infiniband/%k"
54 KERNEL=="uverbs*", NAME="infiniband/%k"
55 KERNEL=="ucm", NAME="infiniband/%k"
57 KERNEL=="buzzer", NAME="misc/buzzer"
60 KERNEL=="controlC[0-9]*", NAME="snd/%k"
61 KERNEL=="hwC[D0-9]*", NAME="snd/%k"
62 KERNEL=="pcmC[D0-9cp]*", NAME="snd/%k"
63 KERNEL=="midiC[D0-9]*", NAME="snd/%k"
64 KERNEL=="timer", NAME="snd/%k"
65 KERNEL=="seq", NAME="snd/%k"
68 KERNEL=="dv1394*", NAME="dv1394/%n"
69 KERNEL=="video1394*", NAME="video1394/%n"
72 KERNEL=="mice", NAME="input/%k"
73 KERNEL=="mouse[0-9]*", NAME="input/%k"
74 KERNEL=="event[0-9]*", NAME="input/%k"
75 KERNEL=="js[0-9]*", NAME="input/%k"
76 KERNEL=="ts[0-9]*", NAME="input/%k"
77 KERNEL=="uinput", NAME="input/%k"
80 KERNEL=="zapctl", NAME="zap/ctl"
81 KERNEL=="zaptimer", NAME="zap/timer"
82 KERNEL=="zapchannel", NAME="zap/channel"
83 KERNEL=="zappseudo", NAME="zap/pseudo"
84 KERNEL=="zap[0-9]*", NAME="zap/%n"
86 # AOE character devices
87 SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k"
88 SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k"
89 SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k"
91 # device mapper creates its own device nodes, so ignore these
92 KERNEL=="dm-[0-9]*", OPTIONS+="ignore_device"
93 KERNEL=="device-mapper", NAME="mapper/control"
95 KERNEL=="rfcomm[0-9]*", NAME="%k", GROUP="users", MODE="0660"
98 ACTION=="add", SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware_helper"
101 KERNEL=="s3c2410_serial[0-9]", NAME="ttySAC%n"