--- trunk/udev/udev.rules.magellan 2007/05/17 19:23:35 188 +++ trunk/udev/udev.rules.magellan 2007/05/17 19:24:29 189 @@ -1,5 +1,5 @@ # /etc/udev/rules/50-udev.rules: device naming rules for udev -# $Header: /root/magellan-cvs/src/udev/udev.rules.magellan,v 1.1 2007-03-21 16:48:37 niro Exp $ +# $Header: /root/magellan-cvs/src/udev/udev.rules.magellan,v 1.2 2007-05-17 19:24:29 niro Exp $ # # There are a number of modifiers that are allowed to be used in some # of the different fields. They provide the following subsitutions: @@ -42,15 +42,11 @@ SUBSYSTEM=="block", 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" -BUS=="scsi", KERNEL=="sg[0-9]*", ACTION=="add", DRIVERS=="sr", GROUP="cdrom" -ENV{ID_CDROM}=="?*", PROGRAM="seq_node.sh %r %k cdrom", SYMLINK+="%c", GROUP="cdrom" -ENV{ID_CDROM_CD_RW}=="?*", PROGRAM="seq_node.sh %r %k cdrw", SYMLINK+="%c" -ENV{ID_CDROM_DVD}=="?*", PROGRAM="seq_node.sh %r %k dvd", SYMLINK+="%c" -ENV{ID_CDROM_DVD_R}=="?*", PROGRAM="seq_node.sh %r %k dvdrw", SYMLINK+="%c" +KERNEL=="sr[0-9]*|hd[a-z]|pcd[0-9]*", ACTION=="add", IMPORT{program}="cdrom_id --export $tempnode" +ENV{ID_CDROM}=="?*", GROUP="cdrom" +# assign cdrom-permission also to associated generic device (for cd-burning ...) +KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom" # disk devices KERNEL=="sd*", NAME="%k", GROUP="disk" @@ -87,18 +83,13 @@ KERNEL=="msr[0-9]*", NAME="cpu/%n/msr" KERNEL=="microcode", NAME="cpu/microcode" -# dm devices (ignore them) -KERNEL=="dm-[0-9]*", OPTIONS="ignore_device" -# 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=="device-mapper", NAME="mapper/control" - # fb devices KERNEL=="fb[0-9]*", NAME="fb/%n", SYMLINK+="%k", GROUP="video" # floppy devices -KERNEL=="fd[0-9]*", NAME="floppy/%n", SYMLINK+="%k", GROUP="floppy" +KERNEL=="fd[0-9]*", NAME="floppy/%k", SYMLINK+="%k", GROUP="floppy" +KERNEL=="fd[0-9]*", ACTION=="add", ATTRS{cmos}=="*", RUN+="create_floppy_devices -c -t $attr{cmos} -m %M -M 0660 -G floppy $root/floppy/%k" +KERNEL=="fd[0-9]*", ACTION=="remove", RUN+="/bin/sh -c 'rm -f $root/floppy/%k?*'" # i2c devices KERNEL=="i2c-[0-9]*", NAME="i2c/%n", SYMLINK+="%k" @@ -107,7 +98,7 @@ KERNEL=="mice", NAME="input/%k", MODE="0644" KERNEL=="mouse*", NAME="input/%k", MODE="0644" KERNEL=="event*", NAME="input/%k", MODE="0600" -KERNEL=="js*", NAME="input/%k", MODE="664" +KERNEL=="js*", NAME="input/%k", MODE="0664" KERNEL=="ts*", NAME="input/%k", MODE="0600" # loop devices @@ -154,7 +145,7 @@ KERNEL=="video1394*", NAME="video1394/%n", GROUP="video" # raw devices -KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk" +SUBSYSTEM=="raw", KERNEL=="raw[0-9]*", NAME="raw/%k", GROUP="disk" KERNEL=="ram*", NAME="%k", GROUP="disk" # sound devices @@ -184,7 +175,7 @@ KERNEL=="auer*", NAME="usb/%k" KERNEL=="legousbtower*", NAME="usb/%k", GROUP="usb" KERNEL=="dabusb*", NAME="usb/%k" -BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k", GROUP="lp" +KERNEL=="lp[0-9]*", SUBSYSTEM=="usb", NAME="usb/%k", GROUP="lp" # v4l devices KERNEL=="video[0-9]*", NAME="v4l/video%n", SYMLINK+="video%n", GROUP="video" @@ -254,7 +245,7 @@ # usbfs-like device nodes -SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", MODE="0644" +SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", NAME="%c", GROUP="usb", MODE="0664" # Setting timeout for tape-devices to 900 seconds @@ -262,34 +253,26 @@ # with correct type-value, or open a bug on bugs.gentoo.org. ACTION=="add", SUBSYSTEM=="scsi" , ATTRS{type}=="1", RUN+="/bin/sh -c 'echo 900 > /sys$$DEVPATH/timeout'" -# assign cdrom-permission also to associated generic device (for cd-burning ...) -KERNEL=="sg[0-9]*", ACTION=="add", ATTRS{type}=="4|5", GROUP="cdrom" - # Module autoloading +ACTION!="add", GOTO="hotplug_no_add_event" + +# check if the device has already been claimed by a driver +ENV{DRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_load_end" + # this driver is broken and should not be loaded automatically -SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="module_load_end" +SUBSYSTEM=="platform", ENV{MODALIAS}=="i82365", GOTO="hotplug_load_end" # Autoload modules that lack aliases but have them defined inutoload modules -ENV{MODALIAS}=="?*", ACTION=="add", RUN+="modprobe.sh $env{MODALIAS}" +ENV{MODALIAS}=="?*", RUN+="modprobe.sh $env{MODALIAS}" # /etc/modprobe.conf. -SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do modprobe.sh pnp:d$$id; done < /sys$devpath/id'" -# If you have problems with some pnp modules being loaded, please enter the -# following aliases into the modprobe configuration files. These are needed by -# udev to autoload some modules -# alias pnp:dPNP0510 irtty-sir -# alias pnp:dPNP0511 irtty-sir -# alias pnp:dPNP0700 floppy -# alias pnp:dPNP0800 pcspkr -# alias pnp:dPNP0b00 rtc -# alias pnp:dPNP0303 atkbd -# alias pnp:dPNP0f13 psmouse -# alias pnp:dPNPb02f analog +SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /lib/udev/modprobe.sh pnp:d$$id; done < /sys$devpath/id'" +# needed aliases are defined in /etc/modprobe.d/pnp-aliases -SUBSYSTEM=="i2o", ACTION=="add", RUN+="modprobe.sh i2o_block" -SUBSYSTEM=="mmc", ACTION=="add", RUN+="modprobe.sh mmc_block" +SUBSYSTEM=="i2o", RUN+="modprobe.sh i2o_block" +SUBSYSTEM=="mmc", RUN+="modprobe.sh mmc_block" # Parts taken from redhat-rules # sd: 0 TYPE_DISK, 7 TYPE_MOD, 14 TYPE_RBC @@ -297,28 +280,22 @@ # st/osst: 1 TYPE_TAPE # Load driver for scsi-device -ACTION=="add", SUBSYSTEM=="scsi_device", RUN+="modprobe.sh sg" -ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="0|7|14", RUN+="modprobe.sh sd_mod" -ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="4|5", RUN+="modprobe.sh sr_mod" -ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="8", RUN+="modprobe.sh ch" +SUBSYSTEM!="scsi_device", GOTO="hotplug_scsi_end" +ATTRS{type}=="?*", RUN+="modprobe.sh sg" +ATTRS{type}=="0|7|14", RUN+="modprobe.sh sd_mod" +ATTRS{type}=="4|5", RUN+="modprobe.sh sr_mod" +ATTRS{type}=="8", RUN+="modprobe.sh ch" -ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st" -ACTION=="add", SUBSYSTEM=="scsi_device", ATTRS{type}=="1", ATTRS{vendor}=="On[sS]tream", ATTRS{model}!="ADR*", ENV{ID_SCSI_TAPE_DRIVER}="osst" +ATTRS{type}=="1", ENV{ID_SCSI_TAPE_DRIVER}="st" +ATTRS{type}=="1", ATTRS{vendor}=="On[sS]tream", ATTRS{model}!="ADR*", ENV{ID_SCSI_TAPE_DRIVER}="osst" ENV{ID_SCSI_TAPE_DRIVER}=="?*", RUN+="modprobe.sh $env{ID_SCSI_TAPE_DRIVER}" +LABEL="hotplug_scsi_end" -SUBSYSTEM=="ide", ACTION=="add", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi" +SUBSYSTEM=="ide", ATTR{media}=="tape", RUN+="modprobe.sh ide-scsi" -LABEL="module_load_end" +LABEL="hotplug_load_end" # Load firmware -SUBSYSTEM=="firmware", ACTION=="add", RUN+="firmware.sh" - -# be backward compatible for a while with the /etc/dev.d and /etc/hotplug.d/ systems -# run /etc/hotplug.d/ stuff only if we came from a hotplug event, not for udevstart -#ENV{UDEVD_EVENT}=="1", RUN+="udev_run_hotplugd $env{SUBSYSTEM}" - -# always run /etc/dev.d/ stuff for now. -RUN+="udev_run_devd $env{SUBSYSTEM}" +SUBSYSTEM=="firmware", RUN+="firmware.sh" -# debugging monitor -RUN+="socket:/org/kernel/udev/monitor" +LABEL="hotplug_no_add_event"