Sophie

Sophie

distrib > Mandriva > 2007.0 > x86_64 > media > main-testing-src > by-pkgid > 6420fb1965140a49881a9e5d13f8d582 > files > 14

udev-098-7mdv2007.0.src.rpm

# 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.)
# %s{filename} the content of a sysfs attribute
# $env{variable} the content of an environment variable
# %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'
# %% the '%' char itself
#

# we provide both old & LSB device nodes:

#-------------------------------------------------
# CPU devices:
KERNEL=="cpu[0-9]*",				NAME="cpu/%n/cpuid", SYMLINK="cpu/%k"
KERNEL=="msr[0-9]*",				NAME="cpu/%n/msr", SYMLINK="cpu/%k", SYMLINK="%k"
KERNEL=="microcode",				NAME="cpu/microcode"

#-------------------------------------------------
# infiniband devices:
KERNEL=="umad*",        NAME="infiniband/%k"
KERNEL=="issm*",        NAME="infiniband/%k"

#-------------------------------------------------
# Block Devices:

# all block devices
SUBSYSTEM=="block",			   GROUP="disk"
SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy"

# USB ZIP/JAZ
KERNEL=="sd*", SYSFS{vendor}=="IOMEGA", SYSFS{model}=="ZIP*", SYMLINK+="zip%n",  OPTIONS+="all_partitions"
KERNEL=="sd*", SYSFS{vendor}=="IOMEGA", SYSFS{model}=="jaz*", SYMLINK+="jaz%n",  OPTIONS+="all_partitions"

# IEEE1394 (firewire) devices (must be before raw devices below):
KERNEL=="raw1394", NAME="%k",      GROUP="video"
KERNEL=="dv1394*", NAME="dv1394/%n",   GROUP="video"
KERNEL=="video1394*",  NAME="video1394/%n",    GROUP="video"

# disk devices
KERNEL=="sd*",		NAME="%k", GROUP="disk",
KERNEL=="dasd*",		NAME="%k", GROUP="disk"
KERNEL=="ataraid*",	NAME="%k", GROUP="disk"
BUS=="scsi", KERNEL=="sg*", NAME="%k", MODE="0660", GROUP="cdwriter"

# device mapper creates its own device nodes, so ignore these:
KERNEL=="dm-[0-9]*",				OPTIONS="ignore_device"
KERNEL=="device-mapper",			NAME="mapper/control"

# raw:
KERNEL=="raw[0-9]*",				NAME="raw/%k",		SYMLINK+="%k",		GROUP="disk"
KERNEL=="rawctl",				SYMLINK+="raw/%k",	GROUP="disk"
KERNEL=="tun[0-9]*",				NAME="raw/%k"

# misc:
BUS=="ide", KERNEL=="hd*", NAME="%k", GROUP="%c{3}"


KERNEL=="md[0-9]*",				SYMLINK+="md/%n",			GROUP="disk"
KERNEL=="md_d[0-9]*",			SYMLINK+="md/d%n",		GROUP="disk"
KERNEL=="loop[0-9]*",			GROUP="disk"
KERNEL=="cloop[0-9]*",			SYMLINK+="cloop/%n",		GROUP="disk"
KERNEL=="fd[0-9]*", SYMLINK+="floppy/%n", GROUP="floppy", RUN+="/etc/udev/scripts/floppy-extra-devs.sh %k %b %n"
KERNEL=="pktcdvd",       		NAME="pktcdvd/control", GROUP="cdrom", MODE="0660"
KERNEL=="pktcdvd[0-9]*",			SYMLINK+="pktcdvd/%n",	GROUP="disk"

KERNEL=="ram[0-9]*",				GROUP="disk"



# cdrom symlinks and other good cdrom naming
BUS=="ide",     KERNEL=="hd[a-z]", ACTION=="add", IMPORT="cdrom_id --export $tempnode"
BUS=="scsi",    KERNEL=="sr[0-9]*", ACTION=="add", IMPORT="cdrom_id --export $tempnode"
BUS=="scsi",    KERNEL=="scd[a-z]", ACTION=="add", IMPORT="cdrom_id --export $tempnode"


# workaround for devices which do not report media changes:
BUS=="ide", KERNEL=="hd[a-z][0-9]*", SYSFS{removable}=="1", \
  PROGRAM="/etc/udev/scripts/ide-model.sh %k", RESULT=="IOMEGA ZIP *", \
  OPTIONS=all_partitions, NAME="%k", GROUP="floppy"

# IDE devices
BUS=="ide", KERNEL=="hd[a-z]", SYSFS{removable}=="1", \
  PROGRAM="/bin/cat /proc/ide/%k/media", RESULT=="cdrom*", \
  GROUP="cdrom"
BUS=="ide", KERNEL=="hd[a-z]", SYSFS{removable}=="1", \
  PROGRAM="/bin/cat /proc/ide/%k/media", RESULT=="floppy*", \
  GROUP="floppy"

# permissions for SCSI CD devices
BUS=="scsi", KERNEL=="s[grt][0-9]*", SYSFS{type}=="5", NAME="%k", MODE="0660", GROUP="cdrom"

# SCSI block devices
BUS=="scsi", KERNEL=="sd[a-i][a-z][0-9]*", NAME="%k"
BUS=="scsi", KERNEL=="s[grt][0-9]*", NAME="%k"
BUS=="scsi", KERNEL=="scd[0-9]*",        NAME="%k"
BUS=="scsi", KERNEL=="st[0-9]*",     NAME="%k"
BUS=="scsi", KERNEL=="nst[0-9]*",        NAME="%k"




#-------------------------------------------------
# Multimedia

# DRI:
KERNEL=="card[0-9]*",			NAME="dri/card%n",	GROUP="video"
KERNEL=="nvidia*",				NAME="%k",			GROUP="video"
KERNEL=="3dfx*",					NAME="%k",			GROUP="video"

# DVB:
# kernel up to 2.6.8:
KERNEL=="dvb*",					PROGRAM="/etc/udev/scripts/dvb.sh %k", NAME="%c",	GROUP="video"
# kernel-2.6.9+ :
KERNEL=="dvb[0-9].dvr*",        NAME="dvb/adapter%n/dvr%n",	GROUP="video"
KERNEL=="dvb[0-9].demux*",      NAME="dvb/adapter%n/demux%n",	GROUP="video"
KERNEL=="dvb[0-9].frontend*",   NAME="dvb/adapter%n/frontend%n",	GROUP="video"
KERNEL=="dvb[0-9].audio*",      NAME="dvb/adapter%n/audio%n",	GROUP="video"
KERNEL=="dvb[0-9].ca*",         NAME="dvb/adapter%n/ca%n",	GROUP="video"
KERNEL=="dvb[0-9].osd*",        NAME="dvb/adapter%n/osd%n",	GROUP="video"
KERNEL=="dvb[0-9].net*",        NAME="dvb/adapter%n/net%n",	GROUP="video"
KERNEL=="dvb[0-9].video*",      NAME="dvb/adapter%n/video%n",	GROUP="video"

# v4l devices
SUBSYSTEM=="video4linux", GROUP="video"
KERNEL=="video0",				SYMLINK+="video",						GROUP="video"
KERNEL=="video[0-9]*",			NAME="v4l/video%n",	SYMLINK+="video%n",	GROUP="video"
KERNEL=="radio0",				SYMLINK+="radio",						GROUP="video"
KERNEL=="radio[0-9]",			SYMLINK+="v4l/radio%n",					GROUP="video"
KERNEL=="vbi0",					SYMLINK+="vbi",							GROUP="video"
#KERNEL=="vbi[0-9]",				SYMLINK+="v4l/vbi%n",					GROUP="video"
KERNEL=="vbi[0-9]*",			    NAME="v4l/vbi%n",   SYMLINK+="vbi%n",	GROUP="video"
KERNEL=="vtx0",					SYMLINK+="vtx",							GROUP="video"
KERNEL=="vtx[0-9]",				SYMLINK+="v4l/vtx%n",					GROUP="video"

KERNEL=="em8300",				NAME="video/%k"
KERNEL=="em8300_ma",				NAME="video/%k"
KERNEL=="em8300_mv",				NAME="video/%k"
KERNEL=="em8300_sp",				NAME="video/%k"

#-------------------------------------------------
# Input 

# legacy devices:
KERNEL=="psaux",					SYMLINK+="misc/%k"
KERNEL=="psaux",					SYMLINK+="psmouse"
KERNEL=="mice",					NAME="input/%k",	SYMLINK+="usbmouse", MODE="0644"
KERNEL=="mouse[0-9]*",			NAME="input/%k",						MODE="0644"
# security => input: 644 => 600
# else anybody logged on could read my password directly from the event device
# associated with the keyboard...
KERNEL=="event[0-9]*",			NAME="input/%k",						MODE="0600"
KERNEL=="js0",					NAME="input/%k",	SYMLINK+="js js0",		MODE="0664"
KERNEL=="js[1-9]",				NAME="input/%k",	SYMLINK+="js%n",		MODE="0664"
KERNEL=="ts*",					NAME="input/%k", MODE="0600"


# usb devices:
KERNEL=="hiddev",				NAME="usb/%k" 
KERNEL=="auer*",					NAME="usb/%k" 
KERNEL=="dabusb*",				NAME="usb/%k" 
KERNEL=="legousbtower*",			NAME="usb/%k", GROUP="usb"
BUS=="usb", KERNEL=="cpad[0-9]*",	NAME="usb/%k"



#-------------------------------------------------
# Char devices

# tty devices
KERNEL=="console",	NAME="%k", GROUP="tty", MODE="0600",      OPTIONS+="last_rule"
KERNEL=="tty",					NAME="%k",		SYMLINK+="tty0", GROUP="tty", MODE="0666", OPTIONS="last_rule"
KERNEL=="tty[0-9]*",				NAME="%k", GROUP="tty", OPTIONS="last_rule"
KERNEL=="dcbri*",	NAME="%k", GROUP="tty"
KERNEL=="ircomm*",	NAME="%k", GROUP="tty"

# vc devices
KERNEL=="vcs",					SYMLINK+="vcc/0",					GROUP="tty", OPTIONS="last_rule"
KERNEL=="vcs[1-9]*",				SYMLINK+="vcc/%n",					GROUP="tty", OPTIONS="last_rule"
KERNEL=="vcsa",					NAME="%k",	SYMLINK+="vcc/a0 vcsa0",	GROUP="tty", OPTIONS="last_rule"
KERNEL=="vcsa[0-9]*",			SYMLINK+="vcc/a%n",					GROUP="tty", OPTIONS="last_rule"

# ignore the events generated by virtual consoles:
SUBSYSTEM=="vc",        OPTIONS+="last_rule"

# pty devices:
KERNEL=="tty[p-za-e][0-9a-f]*",	NAME="%k", GROUP="tty", OPTIONS="last_rule"
KERNEL=="pty[p-za-e][0-9a-f]*",	NAME="%k", GROUP="tty", OPTIONS="last_rule"
KERNEL=="ptmx",					NAME="%k",						GROUP="tty", MODE="0666", OPTIONS="last_rule"

KERNEL=="ttyS[0-9]*",			GROUP="uucp", OPTIONS="last_rule"
KERNEL=="ttyUSB[0-9]*",	GROUP="tty", MODE="0600"
KERNEL=="ttyUSB[0-9]*",			SYMLINK+="usb/tts/%n"

# aoe char devices,
SUBSYSTEM=="aoe", KERNEL=="discover",	NAME="etherd/%k", GROUP="disk", MODE="0220"
SUBSYSTEM=="aoe", KERNEL=="err",		NAME="etherd/%k", GROUP="disk", MODE="0440"
SUBSYSTEM=="aoe", KERNEL=="interfaces",	NAME="etherd/%k", GROUP="disk", MODE="0220"

# 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"

# /misc devices:
KERNEL=="agpgart", 				SYMLINK+="misc/agpgart", GROUP="video"
KERNEL=="apm_bios",				SYMLINK+="misc/apm_bios"
KERNEL=="rtc",					SYMLINK+="misc/rtc", MODE="0664"
KERNEL=="dmapi",					SYMLINK+="misc/%k"
KERNEL=="dac960_gam",			SYMLINK+="misc/%k"
KERNEL=="vmmon",					SYMLINK+="misc/%k"
KERNEL=="inotify",				NAME="misc/%k", SYMLINK+="%k", MODE="0666"

KERNEL=="i2c-[0-9]*",			SYMLINK+="i2c/%n"

KERNEL=="lirc",					SYMLINK+="lirc/lirc%n"
KERNEL=="lirc[1-9]",				SYMLINK+="lirc/%k"

KERNEL=="fb[1-9]*",				SYMLINK+="fb/%n", GROUP="video"



#-------------------------------------------------
# Sound devices

SUBSYSTEM=="sound", GROUP="audio"

KERNEL=="admmidi",				SYMLINK+="sound/admmidi",	GROUP="audio"
KERNEL=="admmidi[1-9]",			SYMLINK+="sound/admmidi%n",	GROUP="audio"
KERNEL=="adsp",					SYMLINK+="sound/adsp",		GROUP="audio"
KERNEL=="adsp[1-9]",				SYMLINK+="sound/adsp%n",		GROUP="audio"
KERNEL=="amidi",					SYMLINK+="sound/amidi",		GROUP="audio"
KERNEL=="amidi[1-9]",			SYMLINK+="sound/amidi%n",	GROUP="audio"
KERNEL=="amixer",				SYMLINK+="sound/amixer",		GROUP="audio"
KERNEL=="amixer[1-9]",			SYMLINK+="sound/amixer%n",	GROUP="audio"

KERNEL=="audio",					SYMLINK+="sound/audio",		GROUP="audio"
KERNEL=="audio[1-9]",			SYMLINK+="sound/audio%n",	GROUP="audio"
KERNEL=="dmmidi",				SYMLINK+="sound/dmmidi",		GROUP="audio"
KERNEL=="dmmidi[1-9]",			SYMLINK+="sound/dmmidi%n",	GROUP="audio"
KERNEL=="dsp",					SYMLINK+="sound/dsp",		GROUP="audio"
KERNEL=="dsp[1-9]",				SYMLINK+="sound/dsp%n",		GROUP="audio"
KERNEL=="dmfm",					SYMLINK+="sound/dmfm",		GROUP="audio"
KERNEL=="dmfm[1-9]",				SYMLINK+="sound/dmfm%n",		GROUP="audio"
KERNEL=="midi",					SYMLINK+="sound/midi",		GROUP="audio"
KERNEL=="midi[1-9]",				SYMLINK+="sound/midi%n",		GROUP="audio"
KERNEL=="mixer",					SYMLINK+="sound/mixer",		GROUP="audio"
KERNEL=="mixer[1-9]",			SYMLINK+="sound/mixer%n",	GROUP="audio"
KERNEL=="music",					SYMLINK+="sound/music",		GROUP="audio"
KERNEL=="music[1-9]",			SYMLINK+="sound/music%n",	GROUP="audio"
KERNEL=="sequencer",				SYMLINK+="sound/sequencer",	GROUP="audio"
KERNEL=="sequencer[1-9]",		SYMLINK+="sound/%k",			GROUP="audio"

KERNEL=="controlC[0-9]",			NAME="snd/%k",				GROUP="audio"
KERNEL=="hwC[0-9]D[0-9]",		NAME="snd/%k",				GROUP="audio"
KERNEL=="midiC[0-9]D[0-9]",		NAME="snd/%k",				GROUP="audio"
KERNEL=="pcmC[0-9]D[0-9]c",		NAME="snd/%k",				GROUP="audio"
KERNEL=="pcmC[0-9]D[0-9]p",		NAME="snd/%k",				GROUP="audio"
KERNEL=="timer",					NAME="snd/%k",				GROUP="audio"
KERNEL=="seq",					NAME="snd/%k",				GROUP="audio"

#-------------------------------------------------
# Network devices

KERNEL=="tun",					SYMLINK+="net/%k"

# netlink devices:
KERNEL=="route",					SYMLINK+="netlink/%k"
KERNEL=="skip",					SYMLINK+="netlink/%k"
KERNEL=="usersock",				SYMLINK+="netlink/%k"
KERNEL=="fwmonitor",				SYMLINK+="netlink/%k"
KERNEL=="tcpdiag",				SYMLINK+="netlink/%k"
KERNEL=="nflog",					SYMLINK+="netlink/%k"
KERNEL=="xfrm",					SYMLINK+="netlink/%k"
KERNEL=="arpd",					SYMLINK+="netlink/%k"
KERNEL=="route6",				SYMLINK+="netlink/%k"
KERNEL=="ip6_fw",				SYMLINK+="netlink/%k"
KERNEL=="dnrtmsg",				SYMLINK+="netlink/%k"
KERNEL=="tap*",					SYMLINK+="netlink/%k"

# ISDN devices
KERNEL=="ippp0",		NAME="%k", GROUP="tty"
KERNEL=="ippp0",		NAME="%k", GROUP="tty"

# CAPI devices
KERNEL=="capi",					NAME="capi20", SYMLINK+="isdn/capi20"
KERNEL=="capi*",					NAME="capi/%n"


#-------------------------------------------------
# Misc permissions:

# pilot/palm devices
KERNEL=="pilot",		NAME="%k", GROUP="uucp"

# jaz devices
KERNEL=="jaz*",		NAME="%k", GROUP="disk"

# zip devices
KERNEL=="pocketzip*",	NAME="%k", GROUP="disk"
KERNEL=="zip*",		NAME="%k", GROUP="disk"

# ls120 devices
KERNEL=="ls120",		NAME="%k", GROUP="disk"

# lp devices
SUBSYSTEM=="printer",	GROUP="lp"
KERNEL=="irlpt",		NAME="%k", GROUP="lp"
KERNEL=="usblp",		NAME="%k", GROUP="lp"
BUS=="usb", KERNEL=="lp[0-9]*",	NAME="usb/%k",			GROUP="lp"
KERNEL=="lp[0-9]*",		NAME="%k", 	SYMLINK+="printers/%n par%n",	GROUP="lp"

# tape devices
KERNEL=="ht*",		NAME="%k", GROUP="tape"
KERNEL=="nht*",		NAME="%k", GROUP="tape"
KERNEL=="pt*",		NAME="%k", GROUP="tape"
KERNEL=="npt*",		NAME="%k", GROUP="tape"
KERNEL=="st*",		NAME="%k", GROUP="tape"
KERNEL=="nst*",		NAME="%k", GROUP="tape"
KERNEL=="osst*",		NAME="%k", GROUP="tape"
KERNEL=="nosst*",	NAME="%k", GROUP="tape"

# diskonkey devices
KERNEL=="diskonkey*",	NAME="%k", GROUP="disk"

# rem_ide devices
KERNEL=="microdrive*",	NAME="%k", GROUP="disk"

# kbd devices
KERNEL=="kbd",		NAME="%k", MODE="0664"

# Sony Vaio Jogdial sonypi device
KERNEL=="sonypi",	NAME="%k", MODE="0666"


# allow pci cold plug for firewire and usb controllers only
# alias pci:v*d*sv*sd*bc0Csc00i10* ohci1394
# alias pci:v*d*sv*sd*bc0Csc03i10* ohci-hcd
# alias pci:v*d*sv*sd*bc0Csc03i20* ehci-hcd
# alias pci:v*d*sv*sd*bc0Csc03i00* uhci-hcd
ACTION=="add", SUBSYSTEM=="pci", ENV{UDEV_START}=="1", SYSFS{modalias}=="?*", \
        SYSFS{class}=="0x0c0010|0x0c0300|0x0c0310|0x0c0320", \
        RUN+="/sbin/modprobe %s{modalias}"
# modprobe pci devices on hot plug
ACTION=="add", SUBSYSTEM=="pci", ENV{UDEV_START}!="1", SYSFS{modalias}=="?*", \
        RUN+="/sbin/modprobe %s{modalias}"


# usbfs-like devices
SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c"
# libusb device access (mount usbfs or usbdev nodes)
DEVPATH=="/module/usbcore", ACTION=="add", \
              RUN+="/bin/sh -c 'sleep 1; /bin/mount -t usbfs -o devmode=0664,devgid=43 none /proc/bus/usb'"
# usbhid should be loaded before usbmouse, or else some Microsoft mice move vertically only
ACTION=="add", SYSFS{modalias}=="usb:v*p*d*dc*dsc*dp*ic03isc01ip02*", RUN+="/sbin/modprobe usbhid"

# modprobe on hot plug (and cold plug, which is processed by udevstart)
ACTION=="add", SUBSYSTEM=="usb",      SYSFS{modalias}=="?*", RUN+="/sbin/modprobe %s{modalias}"
ACTION=="add", SUBSYSTEM=="ieee1394", SYSFS{modalias}=="?*", RUN+="/sbin/modprobe %s{modalias}"
ACTION=="add", SUBSYSTEM=="input",    SYSFS{modalias}=="?*", RUN+="/sbin/modprobe %s{modalias}"
ACTION=="add", SUBSYSTEM=="ide",      SYSFS{modalias}=="?*", RUN+="/sbin/modprobe %s{modalias}"

# disks & magneto-optical disk:
ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[07]", \
              RUN+="/sbin/modprobe sd_mod"

# enclosure:
ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="14", \
              RUN+="/sbin/modprobe sd_mod"

# WORM & ROM:
ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[45]", \
              RUN+="/sbin/modprobe sr_mod"

# Tape:
ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}=="Onstream", \
              SYSFS{model}!="ADR*", RUN+="/sbin/modprobe osst"

ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}=="Onstream", \
              SYSFS{model}=="ADR*", RUN+="/sbin/modprobe st"

ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="1", SYSFS{vendor}!="Onstream", \
              RUN+="/sbin/modprobe st"

# printer, scanner (hp & all), changer & comm :
ACTION=="add", SUBSYSTEM=="scsi", SYSFS{type}=="[23689]", \
              RUN+="/sbin/modprobe sg"
SUBSYSTEM=="scsi_device", ACTION=="add", RUN+="/sbin/modprobe sg"

ACTION=="add", SUBSYSTEM=="firmware", ENV{FIRMWARE}=="?*", \
              RUN+="firmware.sh"

SUBSYSTEM!="drivers", SUBSYSTEM!="module", ACTION=="add", SYSFS{dev}=="?*", RUN+="/sbin/pam_console_apply $env{DEVNAME} $env{DEVLINKS}"
SUBSYSTEM=="usb", ACTION=="add", ENV{DEVICE}=="?*", RUN+="/sbin/pam_console_apply $env{DEVICE}"