# %% the '%' char itself.
#
-# IDE block devices
-BUS="ide", KERNEL="hd[a-z]*", PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-
-# permissions for SCSI CD devices
-BUS="scsi", KERNEL="s[grt][0-9]*", SYSFS{type}="5", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}", MODE="0660", GROUP="cdrom"
-
-# SCSI block devices
-BUS="scsi", KERNEL="sd[a-z]", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="sd[a-z][0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="sd[a-i][a-z]", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="sd[a-i][a-z][0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="s[grt][0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="scd[0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="st[0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
-BUS="scsi", KERNEL="nst[0-9]*", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", NAME="%c{1}", SYMLINK="%k %c{2}"
+# workaround for devices which do not report media changes
+BUS="ide", KERNEL="hd[a-z]", SYSFS{removable}="1", \
+ PROGRAM="/etc/udev/scripts/ide-model.sh %k", RESULT="IOMEGA ZIP *", \
+ OPTIONS="all_partitions", NAME="%k"
+
+# IDE devices
+BUS="ide", KERNEL="hd[a-z]*", \
+ PROGRAM="/etc/udev/scripts/ide-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+
+# SCSI devices
+BUS="scsi", PROGRAM="/etc/udev/scripts/scsi-devfs.sh %k %b %n", \
+ NAME="%c{1}", SYMLINK="%k %c{2}"
+
+# RAID controllers
+KERNEL="cciss!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
+ NAME="%c{1}", SYMLINK="%k"
+KERNEL="ida!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
+ NAME="%c{1}", SYMLINK="%k"
+KERNEL="rd!*", PROGRAM="/etc/udev/scripts/raid-devfs.sh %k", \
+ NAME="%c{1}", SYMLINK="%k"
+
+# other block devices
+KERNEL="md[0-9]*", NAME="md/%n",
+KERNEL="loop[0-9]*", NAME="loop/%n"
+KERNEL="ram[0-9]*", NAME="rd/%n"
# USB devices
+BUS="usb", KERNEL="auer[0-9]*", NAME="usb/%k"
+BUS="usb", KERNEL="cpad[0-9]*", NAME="usb/%k"
+BUS="usb", KERNEL="dabusb*", NAME="usb/%k"
BUS="usb", KERNEL="hiddev*", NAME="usb/%k"
-BUS="usb", KERNEL="auer*", NAME="usb/%k"
BUS="usb", KERNEL="legousbtower*", NAME="usb/%k"
-BUS="usb", KERNEL="dabusb*", NAME="usb/%k"
BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k"
-BUS="usb", KERNEL="cpad[0-9]*", NAME="usb/%k"
+BUS="usb", KERNEL="ttyUSB*", SYSFS{product}="Palm Handheld*", SYMLINK="pilot"
-# block devices
-KERNEL="md[0-9]*", NAME="md/%n",
-KERNEL="loop[0-9]*", NAME="loop/%n"
-
-# tty devices
-KERNEL="tty[0-9]*", NAME="vc/%n"
+# serial devices
KERNEL="ttyS[0-9]*", NAME="tts/%n"
KERNEL="ttyUSB[0-9]*", NAME="tts/USB%n"
-KERNEL="rfcomm[0-9]*", NAME="bluetooth/rfcomm/%n"
+KERNEL="rfcomm[0-9]*", NAME="bluetooth/rfcomm/%n",
+KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
+KERNEL="capi[0-9]*", NAME="capi/%n"
# vc devices
+KERNEL="tty[0-9]*", NAME="vc/%n"
KERNEL="vcs", NAME="vcc/0"
KERNEL="vcs[0-9]*", NAME="vcc/%n"
KERNEL="vcsa", NAME="vcc/a0"
KERNEL="vcsa[0-9]*", NAME="vcc/a%n"
-KERNEL="fb[0-9]*", NAME="fb/%n",
-# v4l devices
-KERNEL="video[0-9]*", NAME="v4l/video%n"
-KERNEL="radio[0-9]*", NAME="v4l/radio%n"
-KERNEL="vbi[0-9]*", NAME="v4l/vbi%n"
-KERNEL="vtx[0-9]*", NAME="v4l/vtx%n"
+# video devices
+KERNEL="video[0-9]*", NAME="v4l/%k"
+KERNEL="radio[0-9]*", NAME="v4l/%k"
+KERNEL="vbi[0-9]*", NAME="v4l/%k"
+KERNEL="vtx[0-9]*", NAME="v4l/%k"
KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"
+KERNEL="fb[0-9]*", NAME="fb/%n"
+KERNEL="card[0-9]*", NAME="dri/%k"
# misc devices
-KERNEL="apm_bios", NAME="misc/apm_bios",
-KERNEL="agpgart", NAME="misc/agpgart",
-KERNEL="nvram", NAME="misc/nvram"
-KERNEL="psaux", NAME="misc/psaux"
-KERNEL="rtc", NAME="misc/rtc"
+KERNEL="apm_bios", NAME="misc/%k",
+KERNEL="agpgart", NAME="misc/%k"
+KERNEL="nvram", NAME="misc/%k"
+KERNEL="psaux", NAME="misc/%k"
+KERNEL="rtc", NAME="misc/%k"
+KERNEL="hw_random", NAME="hwrng"
+
+# printers and parallel devices
+KERNEL="lp[0-9]*", NAME="printers/%n"
+KERNEL="parport[0-9]*", NAME="parports/%n"
-KERNEL="card[0-9]*", NAME="dri/card%n"
KERNEL="i2c-[0-9]*", NAME="i2c/%n"
-KERNEL="ram[0-9]*", NAME="rd/%n"
-KERNEL="lp[0-9]*", NAME="printers/%n"
-KERNEL="fd[0-9]*", NAME="floppy/%n",
+KERNEL="fd[0-9]*", NAME="floppy/%n"
+
KERNEL="cdemu[0-9]*", NAME="cdemu/%n"
KERNEL="pktcdvd[0-9]*", NAME="pktcdvd/%n"
KERNEL="pktcdvd", NAME="pktcdvd/control"
+
KERNEL="cpu[0-9]*", NAME="cpu/%n/cpuid"
KERNEL="msr[0-9]*", NAME="cpu/%n/msr"
KERNEL="microcode", NAME="cpu/microcode"
+KERNEL="umad*", NAME="infiniband/%k"
+KERNEL="issm*", NAME="infiniband/%k"
+
+KERNEL="tap[0-9]*", NAME="net/%k"
+KERNEL="tun", NAME="net/%k"
+
# sound devices
KERNEL="controlC[0-9]*", NAME="snd/%k"
KERNEL="hwC[D0-9]*", NAME="snd/%k"
# input devices
KERNEL="mice", NAME="input/%k"
KERNEL="mouse[0-9]*", NAME="input/%k"
-KERNEL="event[0-9]*", NAME="input/%k", PROGRAM="/etc/udev/scripts/inputdev.sh %k", RESULT="inputdev", MODE="0664", GROUP="video"
KERNEL="event[0-9]*", NAME="input/%k"
KERNEL="js[0-9]*", NAME="input/%k"
KERNEL="ts[0-9]*", NAME="input/%k"
KERNEL="uinput", NAME="input/%k"
-KERNEL="tap[0-9]*", NAME="net/%k"
-KERNEL="tun", NAME="net/%k"
-
-# CAPI devices
-KERNEL="capi", NAME="capi20", SYMLINK="isdn/capi20"
-KERNEL="capi[0-9]*", NAME="capi/%n"
-
# Zaptel
KERNEL="zapctl", NAME="zap/ctl"
KERNEL="zaptimer", NAME="zap/timer"
KERNEL="zappseudo", NAME="zap/pseudo"
KERNEL="zap[0-9]*", NAME="zap/%n"
+# AOE character devices
+SUBSYSTEM="aoe", KERNEL="discover", NAME="etherd/%k"
+SUBSYSTEM="aoe", KERNEL="err", NAME="etherd/%k"
+SUBSYSTEM="aoe", KERNEL="interfaces", NAME="etherd/%k"
+
# device mapper creates its own device nodes, so ignore these
-KERNEL="dm-[0-9]*", NAME=""
+KERNEL="dm-[0-9]*", OPTIONS="ignore_device"
KERNEL="device-mapper", NAME="mapper/control"