-# There are a number of modifiers that are allowed to be used in the NAME or PROGRAM fields.
-# They provide the following subsitutions:
-# %n - the "kernel number" of the device.
-# for example, 'sda3' has a "kernel number" of '3'
-# %k - the kernel name for the device.
-# %M - the kernel major number for the device
-# %m - the kernel minor number for the device
-# %b - the bus id for the device
-# %c - the return value for the CALLOUT program (note, this doesn't work within
-# the PROGRAM field for the obvious reason.)
-# %D - use the devfs style disk name for this device.
-# For partitions, this will result in 'part%n'
-# If this is not a partition, it will result in 'disc'
+# There are a number of modifiers that are allowed to be used in some of the
+# fields. See the udev man page for a full description of them.
+#
+# See the udev.rules.examples file for more examples of how to create rules
#
-
-# Looking for scsi bus id 42:0:0:1
-BUS="scsi", PROGRAM="/bin/echo -n test-%b", RESULT="test-42:0:0:1", NAME="%c"
-
-# A usb camera.
-BUS="usb", SYSFS_vendor="FUJIFILM", SYSFS_model="M100", NAME="camera%n"
-
-# USB Epson printer to be called lp_epson
-BUS="usb", SYSFS_serial="HXOLL0012202323480", NAME="lp_epson"
-
-# USB HP printer to be called lp_hp
-BUS="usb", SYSFS_serial="W09090207101241330", NAME="lp_hp"
-
-# sound card with PCI bus id 00:0b.0 to be the first sound card
-BUS="pci", ID="00:0b.0", NAME="dsp"
-
-# sound card with PCI bus id 00:07.1 to be the second sound card
-BUS="pci", ID="00:07.1", NAME="dsp1"
-
-# USB mouse plugged into the third port of the first hub to be called mouse0
-BUS="usb", PLACE="1.3", NAME="mouse0"
-
-# USB tablet plugged into the third port of the second hub to be called mouse1
-BUS="usb", PLACE="2.3", NAME="mouse1"
-BUS="usb", PLACE="2.4", NAME="mouse2"
-
-# ttyUSB1 should always be called visor
-KERNEL="ttyUSB1", NAME="visor"
-KERNEL="ttyUSB0", NAME="pl2303"
-
-# a devfs like way to name some tty devices
-#KERNEL="ttyS*", NAME="tts/%n"
-#KERNEL="tty*", NAME="vc/%n"
# if this is a ide cdrom, name it the default name, and create a symlink to cdrom
-BUS="ide", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", NAME="%k", SYMLINK="cdrom"
-
-# device mapper creates its own device nodes so ignore these
-KERNEL="dm-[0-9]*", NAME=""
+BUS=="ide", KERNEL=="*[!0-9]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", NAME="%k", SYMLINK+="cdrom"
# DRI devices always go into a subdirectory (as per the LSB spec)
-KERNEL="card*", NAME="dri/card%n"
+KERNEL=="card*", NAME="dri/card%n"
# alsa devices
-KERNEL="controlC[0-9]*", NAME="snd/%k"
-KERNEL="hw[CD0-9]*", NAME="snd/%k"
-KERNEL="pcm[CD0-9cp]*", NAME="snd/%k"
-KERNEL="midi[CD0-9]*", NAME="snd/%k"
-KERNEL="timer", NAME="snd/%k"
-KERNEL="seq", NAME="snd/%k"
-
+KERNEL=="controlC[0-9]*", NAME="snd/%k"
+KERNEL=="hw[CD0-9]*", NAME="snd/%k"
+KERNEL=="pcm[CD0-9cp]*", NAME="snd/%k"
+KERNEL=="midiC[D0-9]*", NAME="snd/%k"
+KERNEL=="timer", NAME="snd/%k"
+KERNEL=="seq", NAME="snd/%k"
+
+# input devices
+KERNEL=="mice", NAME="input/%k"
+KERNEL=="mouse*", NAME="input/%k"
+KERNEL=="event*", NAME="input/%k"
+KERNEL=="js*", NAME="input/%k"
+KERNEL=="ts*", NAME="input/%k"
+
+# USB devices
+KERNEL=="hiddev*", NAME="usb/%k"
+KERNEL=="auer*", NAME="usb/%k"
+KERNEL=="legousbtower*", NAME="usb/%k"
+KERNEL=="dabusb*", NAME="usb/%k"
+BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
+
+# CAPI devices
+KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20"
+KERNEL=="capi*", NAME="capi/%n"
+
+# Network devices
+KERNEL=="tun", NAME="net/%k"
+
+# raw devices
+KERNEL=="raw[0-9]*", NAME="raw/%k"
+
+# emulate dev.d/
+RUN="/sbin/udev_run_devd"