# 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
+# default is OWNER="root" GROUP="root", MODE="0600"
#
+# all block devices
+SUBSYSTEM=="block", GROUP="disk", MODE="0640"
+
+# console devices
+KERNEL=="tty", MODE="0666"
+KERNEL=="tty[0-9]", GROUP="tty", MODE="0660"
+KERNEL=="tty[0-9][0-9]*", GROUP="tty", MODE="0660"
+KERNEL=="vc/[0-9]*", GROUP="tty", MODE="0660"
+
+# pty devices
+# Set this to 0660 if you only want users belonging to tty group
+# to be able to allocate PTYs
+KERNEL=="ptmx", GROUP="tty", MODE="0666"
+KERNEL=="pty[p-za-e][0-9a-f]*", GROUP="tty", MODE="0660"
+KERNEL=="tty[p-za-e][0-9a-f]*", GROUP="tty", MODE="0660"
+KERNEL=="pty/m*", GROUP="tty", MODE="0660"
+KERNEL=="vc/s*", GROUP="tty", MODE="0660"
+
+# serial+dialup devices
+KERNEL=="ttyS*", GROUP="uucp", MODE="0660"
+KERNEL=="ippp*", MODE="0660"
+KERNEL=="isdn*", MODE="0660"
+KERNEL=="isdnctrl*", MODE="0660"
+KERNEL=="capi*", MODE="0660"
+KERNEL=="dcbri*", MODE="0660"
+KERNEL=="ircomm*", GROUP="uucp", MODE="0660"
+KERNEL=="ttyUSB*", GROUP="uucp", MODE="0660"
+KERNEL=="tts/[0-9]*", GROUP="uucp", MODE="0660"
+KERNEL=="tts/USB[0-9]*", GROUP="uucp", MODE="0660"
+
+# vc devices
+KERNEL=="vcs", OWNER="vcsa", GROUP="tty"
+KERNEL=="vcs[0-9]*", OWNER="vcsa", GROUP="tty"
+KERNEL=="vcsa", OWNER="vcsa", GROUP="tty"
+KERNEL=="vcsa[0-9]*", OWNER="vcsa", GROUP="tty"
+KERNEL=="vcc/*", OWNER="vcsa", GROUP="tty"
+
+# memory devices
+KERNEL=="random", MODE="0666"
+KERNEL=="urandom", MODE="0444"
+KERNEL=="mem", GROUP="kmem", MODE="0640"
+KERNEL=="kmem", GROUP="kmem", MODE="0640"
+KERNEL=="port", GROUP="kmem", MODE="0640"
+KERNEL=="full", MODE="0666"
+KERNEL=="null", MODE="0666"
+KERNEL=="zero", MODE="0666"
+
+# misc devices
+KERNEL=="nvram", MODE="0660"
+KERNEL=="rtc", MODE="0644"
+
+# floppy devices
+KERNEL=="fd[01]*", GROUP="floppy", MODE="0660"
+
+# audio devices
+KERNEL=="dsp*", MODE="0660"
+KERNEL=="audio*", MODE="0660"
+KERNEL=="midi*", MODE="0660"
+KERNEL=="mixer*", MODE="0660"
+KERNEL=="sequencer*", MODE="0660"
+KERNEL=="sound/*", MODE="0660"
+KERNEL=="snd/*", MODE="0660"
+KERNEL=="beep", MODE="0660"
+KERNEL=="admm*", MODE="0660"
+KERNEL=="adsp*", MODE="0660"
+KERNEL=="aload*", MODE="0660"
+KERNEL=="amidi*", MODE="0660"
+KERNEL=="dmfm*", MODE="0660"
+KERNEL=="dmmidi*", MODE="0660"
+KERNEL=="sndstat", MODE="0660"
+
+# pilot/palm devices
+KERNEL=="pilot", GROUP="uucp", MODE="0660"
+
+# lp devices
+KERNEL=="lp*", GROUP="lp", MODE="0660"
+KERNEL=="parport*", GROUP="lp", MODE="0660"
+KERNEL=="irlpt*", GROUP="lp", MODE="0660"
+KERNEL=="usblp*", GROUP="lp", MODE="0660"
+KERNEL=="usb/lp*", GROUP="lp", MODE="0660"
+
+# tape devices
+KERNEL=="ht*", GROUP="disk", MODE="0640"
+KERNEL=="nht*", GROUP="disk", MODE="0640"
+KERNEL=="pt[0-9]*", GROUP="disk", MODE="0640"
+KERNEL=="npt*", GROUP="disk", MODE="0640"
+KERNEL=="st*", GROUP="disk", MODE="0640"
+KERNEL=="nst*", GROUP="disk", MODE="0640"
+KERNEL=="osst*", GROUP="disk", MODE="0640"
+KERNEL=="nosst*", GROUP="disk", MODE="0640"
+
+# diskonkey devices
+KERNEL=="diskonkey*", GROUP="disk", MODE="0640"
+
+# rem_ide devices
+KERNEL=="microdrive*", GROUP="disk", MODE="0640"
+
+# kbd devices
+KERNEL=="kbd", MODE="0644"
+
+# joystick devices
+KERNEL=="js[0-9]*", MODE="0644"
+KERNEL=="djs[0-9]*", MODE="0644"
+
+# v4l devices
+KERNEL=="video*", MODE="0660"
+KERNEL=="radio*", MODE="0660"
+KERNEL=="winradio*", MODE="0660"
+KERNEL=="vtx*", MODE="0660"
+KERNEL=="vbi*", MODE="0660"
+KERNEL=="video/*", MODE="0660"
+KERNEL=="vttuner", MODE="0660"
+KERNEL=="v4l/*", MODE="0660"
+
+# input devices
+KERNEL=="input/*", MODE="0644"
+
+# gpm devices
+KERNEL=="gpmctl", MODE="0700"
+
+# dri devices
+KERNEL=="nvidia*", MODE="0660"
+KERNEL=="3dfx*", MODE="0660"
+KERNEL=="dri/*", MODE="0666"
+
+# usb devices
+KERNEL=="usb/dabusb*", GROUP="usb", MODE="0660"
+KERNEL=="usb/mdc800*", GROUP="usb", MODE="0660"
+KERNEL=="usb/rio500", GROUP="usb", MODE="0660"
+
+# s390 devices
+KERNEL=="z90crypt", MODE="0666"
+
+# DVB
+KERNEL=="dvb/*", MODE="0660"
+KERNEL=="dvb", MODE="0660"
+KERNEL=="dvb/adapter*", MODE="0660"
+
# create a symlink named after the device map name
# note devmap_name comes with extras/multipath
-#KERNEL="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK="%c"
-
-KERNEL="console", NAME="%k", GROUP="tty", MODE="0600"
-KERNEL="tty", NAME="%k", GROUP="tty", MODE="0666"
-KERNEL="tty[0-9]*", NAME="%k", GROUP="tty"
-
-KERNEL="ptmx", NAME="%k", GROUP="tty", MODE="0666"
-KERNEL="pty[p-za-e][0-9a-f]*", NAME="%k", GROUP="tty"
-KERNEL="tty[p-za-e][0-9a-f]*", NAME="%k", GROUP="tty"
-
-KERNEL="ttyS[0-9]*", NAME="%k", GROUP="uucp"
-KERNEL="ttyUSB[0-9]*", NAME="%k", GROUP="uucp"
-KERNEL="ippp0", NAME="%k"
-KERNEL="isdn*", NAME="%k"
-KERNEL="dcbri*", NAME="%k"
-KERNEL="ircomm*", NAME="%k", GROUP="uucp"
-
-KERNEL="vcs", NAME="%k", OWNER="vcsa", GROUP="tty", MODE="0600"
-KERNEL="vcsa[0-9]*", NAME="%k", OWNER="vcsa", GROUP="tty", MODE="0600
-
-# memory devicesĀ¶
-KERNEL="random", NAME="%k", MODE="0666"
-KERNEL="urandom", NAME="%k", MODE="0444"
-KERNEL="mem", NAME="%k", MODE="0640"
-KERNEL="kmem", NAME="%k", MODE="0640"
-KERNEL="port", NAME="%k", MODE="0640"
-KERNEL="full", NAME="%k", MODE="0666"
-KERNEL="null", NAME="%k", MODE="0666"
-KERNEL="zero", NAME="%k", MODE="0666"
+#KERNEL=="dm-[0-9]*", PROGRAM="/sbin/devmap_name %M %m", NAME="%k", SYMLINK="%c"
# 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=="midi[CD0-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"
-
-KERNEL="raw[0-9]*", NAME="raw/%k"
-
-KERNEL="lp[0-9]*", SYMLINK="par%n"
-BUS="usb", KERNEL="lp[0-9]*", NAME="usb/%k"
-
-KERNEL="microcode", SYMLINK="cpu/0/%k"
-KERNEL="ram1", SYMLINK="ram"
-KERNEL="video0", SYMLINK="video"
-KERNEL="radio0", SYMLINK="radio"
-KERNEL="audio0", SYMLINK="audio"
-KERNEL="dsp0", SYMLINK="dsp"
-KERNEL="fb0", SYMLINK="fb"
-KERNEL="qft0", SYMLINK="ftape"
-KERNEL="isdnctrl0", SYMLINK="isdnctrl"
-KERNEL="mixer0", SYMLINK="mixer"
-KERNEL="ram0", SYMLINK="ramdisk"
-KERNEL="sbpcd0", SYMLINK="sbpcd"
-KERNEL="radio0", SYMLINK="radio"
-KERNEL="tty0", SYMLINK="systty"
-KERNEL="vbi0", SYMLINK="vbi"
-KERNEL="null", SYMLINK="XOR"
-
-KERNEL="tun", NAME="net/%k"
-
-KERNEL="device-mapper", NAME="mapper/control"
+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"
+
+KERNEL=="raw[0-9]*", NAME="raw/%k"
+
+KERNEL=="lp[0-9]*", SYMLINK="par%n"
+BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k"
+
+KERNEL=="microcode", NAME="cpu/%k"
+KERNEL=="ram1", SYMLINK="ram"
+KERNEL=="video0", SYMLINK="video"
+KERNEL=="radio0", SYMLINK="radio"
+KERNEL=="audio0", SYMLINK="audio"
+KERNEL=="dsp0", SYMLINK="dsp"
+KERNEL=="fb0", SYMLINK="fb"
+KERNEL=="qft0", SYMLINK="ftape"
+KERNEL=="isdnctrl0", SYMLINK="isdnctrl"
+KERNEL=="mixer0", SYMLINK="mixer"
+KERNEL=="ram0", SYMLINK="ramdisk"
+KERNEL=="sbpcd0", SYMLINK="sbpcd"
+KERNEL=="radio0", SYMLINK="radio"
+KERNEL=="tty0", SYMLINK="systty"
+KERNEL=="vbi0", SYMLINK="vbi"
+KERNEL=="null", SYMLINK="XOR"
+
+KERNEL=="tun", NAME="net/%k"
+
+KERNEL=="device-mapper", NAME="mapper/control"
# old compat symlinks with enumeration
-KERNEL="sr[0-9]*", SYMLINK="cdrom%e"
-KERNEL="scd[0-9]*", SYMLINK="cdrom%e"
-KERNEL="pcd[0-9]*", SYMLINK="cdrom%e"
-KERNEL="fd[0-9]*", SYMLINK="floppy%e"
-KERNEL="nst[0-9]*", SYMLINK="tape%e"
-
-# default permissions for all block devices
-SUBSYSTEM="block", GROUP="disk", MODE="0640"
+KERNEL=="sr[0-9]*", SYMLINK="cdrom%e"
+KERNEL=="scd[0-9]*", SYMLINK="cdrom%e"
+KERNEL=="pcd[0-9]*", SYMLINK="cdrom%e"
+KERNEL=="fd[0-9]*", SYMLINK="floppy%e"
+KERNEL=="nst[0-9]", SYMLINK="tape%e"
+KERNEL=="nosst[0-9]*", SYMLINK="tape%e"
-KERNEL="hd[a-z]", BUS="ide", SYSFS{removable}="1", PROGRAM="/etc/udev/scripts/ide-media.sh %k", RESULT="floppy", SYMLINK="floppy%e, NAME{ignore_remove, all_partitions}="%k", GROUP="floppy"
+# do not seperate the next 2 lines!!
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/ide-media.sh %k", RESULT=="floppy", SYMLINK="floppy%e", NAME{ignore_remove, all_partitions}="%k"
-KERNEL="hd[a-z]", BUS="ide", SYSFS{removable}="1", RESULT="cdrom", SYMLINK="cdrom%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", RESULT=="cdrom", SYMLINK="cdrom%e"
-KERNEL="hd[a-z]", BUS="ide", SYSFS{removable}="1", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK="dvd%e"
-KERNEL="sr[0-9]*", BUS="scsi", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK="dvd%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK="dvd%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD", SYMLINK="dvd%e"
-KERNEL="hd[a-z]", BUS="ide", SYSFS{removable}="1", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK="cdwriter%e"
-KERNEL="sr[0-9]*", BUS="scsi", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK="cdwriter%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK="cdwriter%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k CD-R", SYMLINK="cdwriter%e"
-KERNEL="hd[a-z]", BUS="ide", SYSFS{removable}="1", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK="dvdwriter%e"
-KERNEL="sr[0-9]*", BUS="scsi", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK="dvdwriter%e"
+KERNEL=="hd[a-z]", BUS=="ide", SYSFS{removable}=="1", PROGRAM="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK="dvdwriter%e"
+KERNEL=="sr[0-9]*", BUS=="scsi", PROGRAM=="/etc/udev/scripts/check-cdrom.sh %k DVD-R", SYMLINK="dvdwriter%e"
# rename sr* to scd*
-KERNEL="sr[0-9]*", BUS="scsi", NAME="scd%n"
-KERNEL="hd[a-z]*", BUS="ide", SYSFS{removable}="1", NAME{ignore_remove}="%k"
+KERNEL=="sr[0-9]*", BUS=="scsi", NAME="scd%n"
+KERNEL=="hd[a-z]*", BUS=="ide", SYSFS{removable}=="1", NAME{ignore_remove}="%k"
-KERNEL="dvb*", PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c"
+KERNEL=="dvb*", PROGRAM=="/etc/udev/scripts/dvb.sh %k", NAME="%c"