# mem
KERNEL=="null|zero|full|random|urandom", MODE="0666"
-KERNEL=="null", SYMLINK+="XOR"
+KERNEL=="null", SYMLINK+="X0R"
KERNEL=="mem|kmem|port|nvram", GROUP="kmem", MODE="0640"
KERNEL=="ram0", SYMLINK+="ramdisk"
KERNEL=="ram1", SYMLINK+="ram"
# input
KERNEL=="mouse*|mice|event*", NAME="input/%k", MODE="0640"
-KERNEL=="ts[0-9]*|uinput", NAME="input/%k", MODE="0600"
-KERNEL=="js[0-9]*", NAME="input/%k", MODE="0644", SYMLINK+="%k"
+KERNEL=="ts[0-9]*|uinput", NAME="input/%k", MODE="0640"
+KERNEL=="js[0-9]*", NAME="input/%k", MODE="0644"
# video4linux
+SUBSYSTEM=="video4linux", GROUP="video"
+KERNEL=="vttuner*", GROUP="video"
+KERNEL=="vtx*|vbi*", GROUP="video"
+KERNEL=="winradio*", GROUP="video"
KERNEL=="vbi0", SYMLINK+="vbi"
KERNEL=="radio0", SYMLINK+="radio"
KERNEL=="video0", SYMLINK+="video"
# graphics
-KERNEL=="agpgart", MODE="0600"
-KERNEL=="card[0-9]*", NAME="dri/%k", MODE="0666"
+KERNEL=="agpgart", MODE="0600", GROUP="video"
+KERNEL=="card[0-9]*", NAME="dri/%k"
KERNEL=="fb0", SYMLINK+="fb"
+KERNEL=="pmu", GROUP="video"
+KERNEL=="nvidia*|nvidiactl*", GROUP="video"
+SUBSYSTEM=="graphics", GROUP="video"
# DVB video
SUBSYSTEM=="dvb", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}'", NAME="%c"
+SUBSYSTEM=="dvb", GROUP="video"
# Firewire
KERNEL=="dv1394*", SYMLINK+="dv1394/%n"
KERNEL=="video1394*", NAME="video1394/%n"
-
-# firmware class requests
-SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh"
+KERNEL=="dv1394*|video1394*|raw1394*", GROUP="video"
# libusb device nodes
-SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0644"
+SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", NAME="bus/usb/$env{BUSNUM}/$env{DEVNUM}", MODE="0664"
# printer
KERNEL=="parport[0-9]*", GROUP="lp"
SUBSYSTEM=="printer", KERNEL=="lp*", GROUP="lp"
+SUBSYSTEM=="ppdev", GROUP="lp"
SUBSYSTEM=="usb", KERNEL=="lp*", NAME="usb/%k", SYMLINK+="usb%k", GROUP="lp"
KERNEL=="lp[0-9]*", GROUP="lp", SYMLINK+="par%n"
KERNEL=="irlpt[0-9]*", GROUP="lp"
KERNEL=="pktcdvd", NAME="pktcdvd/control"
KERNEL=="qft0", SYMLINK+="ftape"
SUBSYSTEM=="bsg", NAME="bsg/%k"
-SUBSYSTEM=="aoe", NAME="etherd/%k", GROUP="disk"
+SUBSYSTEM=="aoe", NAME="etherd/%k", GROUP="disk", MODE="0220"
+SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440"
# network
KERNEL=="tun", NAME="net/%k", MODE="0666", OPTIONS+="ignore_remove"
KERNEL=="rrom[0-9]*", MODE="0400"
KERNEL=="sbpcd0", SYMLINK+="sbpcd"
KERNEL=="slram[0-9]*", SYMLINK+="xpram%n"
-KERNEL=="sxctl", NAME="specialix_sxctl", SYMLINK+="%k"
-KERNEL=="rioctl", NAME="specialix_rioctl", SYMLINK+="%k"
+KERNEL=="sxctl", NAME="specialix_sxctl""
+KERNEL=="rioctl", NAME="specialix_rioctl"
KERNEL=="iowarrior[0-9]*", NAME="usb/%k"
+KERNEL=="hiddev[0-9]*", NAME="usb/%k"
+KERNEL=="legousbtower[0-9]*", NAME="usb/%k"
+KERNEL=="dabusb[0-9]*", NAME="usb/%k"
+KERNEL=="usbdpfp[0-9]*", NAME="usb/%k"
+KERNEL=="cpad[0-9]*", NAME="usb/%k"
# do not delete static device nodes
ACTION=="remove", NAME=="?*", TEST=="/lib/udev/devices/$name", OPTIONS+="ignore_remove"