From 7f1ba7b03f388c1d3d03b0f66a1c0ced7707ac11 Mon Sep 17 00:00:00 2001 From: Kay Sievers Date: Wed, 29 Mar 2006 12:19:21 +0200 Subject: [PATCH] update Debian rules --- etc/udev/debian/cd-aliases.rules | 15 --- etc/udev/debian/compat.rules | 6 +- etc/udev/debian/devfs.rules | 14 +-- etc/udev/debian/hotplug.rules | 25 ++--- etc/udev/debian/hotplugd.rules | 5 +- etc/udev/debian/permissions.rules | 132 ++++++++++++++----------- etc/udev/debian/persistent-input.rules | 29 ++++++ etc/udev/debian/persistent.rules | 48 +++++---- etc/udev/debian/udev.rules | 8 +- 9 files changed, 162 insertions(+), 120 deletions(-) delete mode 100644 etc/udev/debian/cd-aliases.rules create mode 100644 etc/udev/debian/persistent-input.rules diff --git a/etc/udev/debian/cd-aliases.rules b/etc/udev/debian/cd-aliases.rules deleted file mode 100644 index 22f710032..000000000 --- a/etc/udev/debian/cd-aliases.rules +++ /dev/null @@ -1,15 +0,0 @@ -# These rules create the /dev/{cdrom,dvd,...} symlinks. -# -# If you would like to statically configure the aliases instead, you can -# use rules like: -# BUS=="ide", ID=="1.0", SYMLINK+="cdrom" - -# The variables for IDE devices are imported in permissions.rules. -BUS=="scsi", KERNEL=="sr[0-9]*", ACTION=="add", \ - IMPORT{program}="/sbin/cdrom_id --export $tempnode" - -ENV{ID_CDROM}=="?*", SYMLINK+="cdrom%e" -ENV{ID_CDROM_CD_RW}=="?*", SYMLINK+="cdrw%e" -ENV{ID_CDROM_DVD}=="?*", SYMLINK+="dvd%e" -ENV{ID_CDROM_DVD_R}=="?*", SYMLINK+="dvdrw%e" - diff --git a/etc/udev/debian/compat.rules b/etc/udev/debian/compat.rules index 09bb07441..209e3ce7e 100644 --- a/etc/udev/debian/compat.rules +++ b/etc/udev/debian/compat.rules @@ -27,9 +27,9 @@ KERNEL=="rtc", SYMLINK+="%k" #KERNEL=="i2c-[0-9]*", SYMLINK+="%k" #KERNEL=="lp[0-9]*", SYMLINK+="%k" -KERNEL=="audio*" SYMLINK+="%k" -KERNEL=="dsp*" SYMLINK+="%k" -KERNEL=="mixer*" SYMLINK+="%k" +KERNEL=="audio*", SYMLINK+="%k" +KERNEL=="dsp*", SYMLINK+="%k" +KERNEL=="mixer*", SYMLINK+="%k" #KERNEL=="fb[0-9]*", SYMLINK+="%k" #KERNEL=="fd[0-9]*", SYMLINK+="%k" diff --git a/etc/udev/debian/devfs.rules b/etc/udev/debian/devfs.rules index c4a44e3e7..14a67bbdc 100644 --- a/etc/udev/debian/devfs.rules +++ b/etc/udev/debian/devfs.rules @@ -18,15 +18,15 @@ BUS=="ide", KERNEL=="hd[a-z]", SYSFS{removable}=="1", \ ENV{ID_MODEL}=="IOMEGA_ZIP*", NAME="%k", OPTIONS+="all_partitions" # IDE devices -BUS=="ide", KERNEL=="hd[a-z]*", PROGRAM="/lib/udev/ide-devfs.sh %k %b %n", \ +BUS=="ide", KERNEL=="hd[a-z]*", PROGRAM="ide-devfs.sh %k %b %n", \ NAME="%c{1}", SYMLINK+="%k %c{2}" # SCSI devices -BUS=="scsi", PROGRAM="/lib/udev/scsi-devfs.sh %k %b %n", \ +BUS=="scsi", PROGRAM="scsi-devfs.sh %k %b %n", \ NAME="%c{1}", SYMLINK+="%k %c{2}" # RAID controllers -KERNEL=="cciss!*|ida!*|rd!*", PROGRAM="/lib/udev/raid-devfs.sh %k", \ +KERNEL=="cciss!*|ida!*|rd!*", PROGRAM="raid-devfs.sh %k", \ NAME="%c{1}", SYMLINK+="%k" # other block devices @@ -41,11 +41,12 @@ BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k" BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k" BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k" BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \ +BUS=="usb", KERNEL=="ttyUSB*", \ + SYSFS{product}=="Palm Handheld*|Handspring Visor", \ SYMLINK+="pilot" # usbfs-like devices -SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; B=$${K%%%%.*}; D=$${K#*.}; echo bus/usb/$$B/$$D'", \ +SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", \ NAME="%c" # serial devices @@ -67,7 +68,7 @@ KERNEL=="video[0-9]*", NAME="v4l/%k" KERNEL=="radio[0-9]*", NAME="v4l/%k" KERNEL=="vbi[0-9]*", NAME="v4l/%k" KERNEL=="vtx[0-9]*", NAME="v4l/%k" -KERNEL=="dvb*", PROGRAM="/bin/sh -c 'KNAME=%k; KNAME=$${KNAME#dvb}; A=$${KNAME%%%%.*}; D=$${KNAME#*.}; echo dvb/adapter$$A/$$D'", \ +KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", \ NAME="%c" KERNEL=="fb[0-9]*", NAME="fb/%n" KERNEL=="card[0-9]*", NAME="dri/%k" @@ -141,6 +142,7 @@ KERNEL=="zap[0-9]*", NAME="zap/%n" SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k" SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k" SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k" +SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k" # device mapper creates its own device nodes, so ignore these KERNEL=="dm-[0-9]*", NAME="" diff --git a/etc/udev/debian/hotplug.rules b/etc/udev/debian/hotplug.rules index f4c99ec8e..d592c5e9d 100644 --- a/etc/udev/debian/hotplug.rules +++ b/etc/udev/debian/hotplug.rules @@ -1,24 +1,25 @@ ACTION!="add", GOTO="hotplug_not_add_event" # check if the device has already been claimed by a driver -ENV{PHYSDEVDRIVER}=="?*", GOTO="hotplug_driver_loaded" +ENV{PHYSDEVDRIVER}=="?*", SUBSYSTEM!="input", GOTO="hotplug_driver_loaded" # workarounds for kernels which lack $MODALIAS support -SUBSYSTEM=="ieee1394", ENV{MODALIAS}!="?*", \ - IMPORT{program}="/lib/udev/modalias_ieee1394" -SUBSYSTEM=="serio", ENV{MODALIAS}!="?*", \ - IMPORT{program}="/lib/udev/modalias_serio" +SUBSYSTEM=="ieee1394", ENV{MODALIAS}!="?*", IMPORT{program}="modalias_ieee1394" +SUBSYSTEM=="serio", ENV{MODALIAS}!="?*", IMPORT{program}="modalias_serio" # load the drivers ENV{MODALIAS}=="?*", RUN+="/sbin/modprobe $env{MODALIAS}" -SUBSYSTEM=="ide", ENV{MODALIAS}!="?*", RUN+="/lib/udev/ide.agent" -#SUBSYSTEM=="input", ENV{MODALIAS}!="?*", RUN+="/lib/udev/input.agent" -SUBSYSTEM=="vio", ENV{MODALIAS}!="?*", RUN+="/lib/udev/vio.agent" +SUBSYSTEM=="ide", ENV{MODALIAS}!="?*", RUN+="ide.agent" +SUBSYSTEM=="vio", ENV{MODALIAS}!="?*", RUN+="vio.agent" SUBSYSTEM=="pnp", ENV{MODALIAS}!="?*", RUN+="/bin/sh -c 'while read id; do /sbin/modprobe pnp:d$$id; done < /sys$devpath/id'" SUBSYSTEM=="pcmcia_socket", RUN+="/sbin/modprobe pcmcia" +# rules for subsystems which lack proper hotplug support +#SUBSYSTEM=="i2o", RUN+="/sbin/modprobe i2o-block" +#SUBSYSTEM=="mmc", RUN+="/sbin/modprobe mmc-block" + SUBSYSTEM=="scsi_device", SYSFS{type}=="0|7|14", RUN+="/sbin/modprobe sd_mod" SUBSYSTEM=="scsi_device", SYSFS{type}=="1", RUN+="/sbin/modprobe osst", \ SYSFS{vendor}=="Onstream", SYSFS{model}!="ADR*" @@ -26,7 +27,7 @@ SUBSYSTEM=="scsi_device", SYSFS{type}=="1", RUN+="/sbin/modprobe st", \ SYSFS{vendor}=="Onstream", SYSFS{model}=="ADR*" SUBSYSTEM=="scsi_device", SYSFS{type}=="1", RUN+="/sbin/modprobe st", \ SYSFS{vendor}!="Onstream" -SUBSYSTEM=="scsi_device", SYSFS{type}=="[345]", RUN+="/sbin/modprobe sr_mod" +SUBSYSTEM=="scsi_device", SYSFS{type}=="[45]", RUN+="/sbin/modprobe sr_mod" SUBSYSTEM=="scsi_device", SYSFS{type}=="[235689]", RUN+="/sbin/modprobe sg" # From here on follows the hotplug agents which do not load modules @@ -34,14 +35,14 @@ LABEL="hotplug_driver_loaded" # FIXME: does a sane default exist? #SUBSYSTEM=="scsi_device", SYSFS{idVendor}=="...", \ -# RUN+="/lib/udev/scsi-re-add" +# RUN+="scsi-re-add" -SUBSYSTEM=="firmware", RUN+="/lib/udev/firmware.agent" +SUBSYSTEM=="firmware", RUN+="firmware.agent" LABEL="hotplug_not_add_event" SUBSYSTEM=="net", RUN+="/bin/sh -c '/lib/udev/net.agent &'" # Log every event to /dev/hotplug.log (for debugging). -#RUN+="/lib/udev/logger.agent" +#RUN+="logger.agent" diff --git a/etc/udev/debian/hotplugd.rules b/etc/udev/debian/hotplugd.rules index d79ce85e5..cd30fa49b 100644 --- a/etc/udev/debian/hotplugd.rules +++ b/etc/udev/debian/hotplugd.rules @@ -3,7 +3,6 @@ SUBSYSTEM=="drivers", OPTIONS="last_rule" SUBSYSTEM=="module", OPTIONS="last_rule" # compatibility support for the obsolete hotplug.d and dev.d directories -# do not run the hotplug.d scripts when started from udevstart -ENV{UDEVD_EVENT}=="1", RUN+="/lib/udev/udev_run_hotplugd" -RUN+="/lib/udev/udev_run_devd" +RUN+="udev_run_hotplugd $env{SUBSYSTEM}" +RUN+="udev_run_devd $env{SUBSYSTEM}" diff --git a/etc/udev/debian/permissions.rules b/etc/udev/debian/permissions.rules index bc97566b5..b010353a2 100644 --- a/etc/udev/debian/permissions.rules +++ b/etc/udev/debian/permissions.rules @@ -1,95 +1,107 @@ -# workaround needed to make udevd wait for the "bus" link -ACTION=="add", DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", \ - WAIT_FOR_SYSFS="bus" +ACTION!="add", GOTO="permissions_end" + +# workarounds needed to synchronize with sysfs +DEVPATH=="/devices/*", ENV{PHYSDEVBUS}=="?*", WAIT_FOR_SYSFS="bus" +SUBSYSTEM=="scsi", WAIT_FOR_SYSFS="ioerr_cnt" +# only needed for kernels < 2.6.16 +SUBSYSTEM=="net", WAIT_FOR_SYSFS="address" # default permissions for block devices SUBSYSTEM=="block", GROUP="disk" SUBSYSTEM=="block", SYSFS{removable}=="1", GROUP="floppy" # IDE devices -BUS=="ide", KERNEL=="hd[a-z]|pcd[0-9]*", ACTION=="add", \ - IMPORT{program}="/sbin/cdrom_id --export $tempnode" +BUS=="ide", KERNEL=="hd[a-z]|pcd[0-9]*", DRIVER=="ide-cdrom|pcd", \ + IMPORT{program}="cdrom_id --export $tempnode" ENV{ID_CDROM}=="?*", GROUP="cdrom" BUS=="ide", KERNEL=="ht[0-9]*", GROUP="tape" BUS=="ide", KERNEL=="nht[0-9]*", GROUP="tape" # SCSI devices -BUS=="scsi", SYSFS{type}=="1", GROUP="tape" -BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom" -BUS=="scsi", SYSFS{type}=="6", GROUP="scanner" +BUS=="scsi", SYSFS{type}=="1", GROUP="tape" +BUS=="scsi", SYSFS{type}=="3", SYSFS{vendor}=="HP", GROUP="scanner" +BUS=="scsi", SYSFS{type}=="5", GROUP="cdrom" +BUS=="scsi", SYSFS{type}=="6", GROUP="scanner" # USB devices BUS=="usb", KERNEL=="legousbtower*", MODE="0666" -BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp" +BUS=="usb", KERNEL=="lp[0-9]*", GROUP="lp" # usbfs-like devices -SUBSYSTEM=="usb_device", MODE="0664" +SUBSYSTEM=="usb_device", MODE="0664" + +# iRiver music players +SUBSYSTEM=="usb_device", GROUP="plugdev", \ + SYSFS{idVendor}=="4102", SYSFS{idProduct}=="10[01][135789]" # serial devices -SUBSYSTEM=="tty", GROUP="dialout" -SUBSYSTEM=="capi", GROUP="dialout" -SUBSYSTEM=="slamr", GROUP="dialout" +SUBSYSTEM=="tty", GROUP="dialout" +SUBSYSTEM=="capi", GROUP="dialout" +SUBSYSTEM=="slamr", GROUP="dialout" +SUBSYSTEM=="zaptel", GROUP="dialout" # vc devices (all members of the tty subsystem) -KERNEL=="ptmx", MODE="0666", GROUP="root" -KERNEL=="console", MODE="0600", GROUP="root" -KERNEL=="tty", MODE="0666", GROUP="root" -KERNEL=="tty[0-9]*", GROUP="root" -KERNEL=="pty*", MODE="0666", GROUP="tty" +KERNEL=="ptmx", MODE="0666", GROUP="root" +KERNEL=="console", MODE="0600", GROUP="root" +KERNEL=="tty", MODE="0666", GROUP="root" +KERNEL=="tty[0-9]*", GROUP="root" +KERNEL=="pty*", MODE="0666", GROUP="tty" # video devices -SUBSYSTEM=="video4linux", GROUP="video" -SUBSYSTEM=="drm", GROUP="video" -SUBSYSTEM=="dvb", GROUP="video" -SUBSYSTEM=="em8300", GROUP="video" -SUBSYSTEM=="graphics", GROUP="video" -SUBSYSTEM=="nvidia", GROUP="video" +SUBSYSTEM=="video4linux", GROUP="video" +SUBSYSTEM=="drm", GROUP="video" +SUBSYSTEM=="dvb", GROUP="video" +SUBSYSTEM=="em8300", GROUP="video" +SUBSYSTEM=="graphics", GROUP="video" +SUBSYSTEM=="nvidia", GROUP="video" # misc devices -KERNEL=="random", MODE="0666" -KERNEL=="urandom", MODE="0666" -KERNEL=="mem", MODE="0640", GROUP="kmem" -KERNEL=="kmem", MODE="0640", GROUP="kmem" -KERNEL=="port", MODE="0640", GROUP="kmem" -KERNEL=="full", MODE="0666" -KERNEL=="null", MODE="0666" -KERNEL=="zero", MODE="0666" -KERNEL=="inotify", MODE="0666" -KERNEL=="sgi_fetchop", MODE="0666" -KERNEL=="sonypi", MODE="0666" -KERNEL=="agpgart", GROUP="video" -KERNEL=="nvram", GROUP="nvram" -KERNEL=="rtc", GROUP="audio" -KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss" -KERNEL=="fuse", GROUP="fuse" - -KERNEL=="cdemu[0-9]*", GROUP="cdrom" -KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" -KERNEL=="pktcdvd", MODE="0644" - -KERNEL=="uverbs*", GROUP="rdma" -KERNEL=="ucm*", GROUP="rdma" +KERNEL=="random", MODE="0666" +KERNEL=="urandom", MODE="0666" +KERNEL=="mem", MODE="0640", GROUP="kmem" +KERNEL=="kmem", MODE="0640", GROUP="kmem" +KERNEL=="port", MODE="0640", GROUP="kmem" +KERNEL=="full", MODE="0666" +KERNEL=="null", MODE="0666" +KERNEL=="zero", MODE="0666" +KERNEL=="inotify", MODE="0666" +KERNEL=="sgi_fetchop", MODE="0666" +KERNEL=="sonypi", MODE="0666" +KERNEL=="agpgart", GROUP="video" +KERNEL=="nvram", GROUP="nvram" +KERNEL=="rtc", GROUP="audio" +KERNEL=="tpm*", MODE="0600", OWNER="tss", GROUP="tss" +KERNEL=="fuse", GROUP="fuse" + +KERNEL=="cdemu[0-9]*", GROUP="cdrom" +KERNEL=="pktcdvd[0-9]*", GROUP="cdrom" +KERNEL=="pktcdvd", MODE="0644" + +KERNEL=="uverbs*", GROUP="rdma" +KERNEL=="ucm*", GROUP="rdma" # printers and parallel devices -SUBSYSTEM=="printer", GROUP="lp" -SUBSYSTEM=="ppdev", GROUP="lp" -KERNEL=="pt[0-9]*", GROUP="tape" -KERNEL=="pht[0-9]*", GROUP="tape" +SUBSYSTEM=="printer", GROUP="lp" +SUBSYSTEM=="ppdev", GROUP="lp" +KERNEL=="pt[0-9]*", GROUP="tape" +KERNEL=="pht[0-9]*", GROUP="tape" # sound devices -SUBSYSTEM=="sound", GROUP="audio" +SUBSYSTEM=="sound", GROUP="audio" # ieee1394 devices -KERNEL=="raw1394", GROUP="disk" -KERNEL=="dv1394*", GROUP="video" -KERNEL=="video1394*", GROUP="video" +KERNEL=="raw1394", GROUP="disk" +KERNEL=="dv1394*", GROUP="video" +KERNEL=="video1394*", GROUP="video" # input devices -KERNEL=="event[0-9]*", PROGRAM="/lib/udev/inputdev.sh %k", \ - RESULT=="inputdev", MODE="0664", GROUP="video" -KERNEL=="js[0-9]*", MODE="0664" +KERNEL=="event[0-9]*", SYSFS{name}=="*dvb*|*DVB*|* IR *" \ + MODE="0664", GROUP="video" +KERNEL=="js[0-9]*", MODE="0664" # AOE character devices -SUBSYSTEM=="aoe", MODE="0220", GROUP="disk" -SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440" +SUBSYSTEM=="aoe", MODE="0220", GROUP="disk" +SUBSYSTEM=="aoe", KERNEL=="err", MODE="0440" + +LABEL="permissions_end" diff --git a/etc/udev/debian/persistent-input.rules b/etc/udev/debian/persistent-input.rules new file mode 100644 index 000000000..95021b164 --- /dev/null +++ b/etc/udev/debian/persistent-input.rules @@ -0,0 +1,29 @@ +SUBSYSTEM!="input", GOTO="persistent_input_end" +ACTION!="add", GOTO="persistent_input_end" +# ignore the mid-level drivers +KERNEL=="input[0-9]*", GOTO="persistent_input_end" + +# usb devices +BUS=="usb", IMPORT{program}="usb_id -x" +BUS=="usb", SYSFS{bInterfaceClass}="03", SYSFS{bInterfaceProtocol}="01", \ + ENV{ID_CLASS}="kbd" +BUS=="usb", SYSFS{bInterfaceClass}="03", SYSFS{bInterfaceProtocol}="02", \ + ENV{ID_CLASS}="mouse" + +# by-id links, generic and for the event devices +KERNEL=="mouse*", \ + ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", ENV{ID_CLASS}=="?*", \ + SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_CLASS}" +KERNEL=="event*", \ + ENV{ID_BUS}=="?*", ENV{ID_SERIAL}=="?*", ENV{ID_CLASS}=="?*", \ + SYMLINK+="input/by-id/$env{ID_BUS}-$env{ID_SERIAL}-event-$env{ID_CLASS}" + +# by-path links +IMPORT{program}="path_id %p" +KERNEL=="mouse*", ENV{ID_PATH}=="?*", \ + SYMLINK+="input/by-path/$env{ID_PATH}-$env{ID_CLASS}" +KERNEL=="event*", ENV{ID_PATH}=="?*", \ + SYMLINK+="input/by-path/$env{ID_PATH}-event-$env{ID_CLASS}" + +LABEL="persistent_input_end" + diff --git a/etc/udev/debian/persistent.rules b/etc/udev/debian/persistent.rules index 4b591b02f..7fc86246f 100644 --- a/etc/udev/debian/persistent.rules +++ b/etc/udev/debian/persistent.rules @@ -8,30 +8,33 @@ ACTION!="add", GOTO="no_volume_id" KERNEL=="ram*|loop*|fd*|nbd*", GOTO="no_volume_id" # skip removable ide devices, because open(2) on them causes an events loop -BUS=="ide", SYSFS{removable}=="1", DRIVER!="ide-cdrom", GOTO="no_volume_id" +KERNEL=="hd*[!0-9]", SYSFS{removable}=="1", DRIVER=="ide-cs|ide-floppy", \ + GOTO="no_volume_id" +KERNEL=="hd*[0-9]", SYSFS{../removable}=="1", \ + GOTO="no_volume_id" # look for different kinds of unique identificators KERNEL=="hd*[!0-9]", \ - IMPORT{program}="/sbin/ata_id --export $tempnode" + IMPORT{program}="ata_id --export $tempnode" -KERNEL=="sd*[!0-9]|sr*", SYSFS{ieee1394_id}=="?*", \ +KERNEL=="sd*[!0-9]|sr*|st*", SYSFS{ieee1394_id}=="?*", \ ENV{ID_BUS}="ieee1394", ENV{ID_SERIAL}="$sysfs{ieee1394_id}" -KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", \ - IMPORT{program}="/sbin/usb_id -x" -KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", \ - IMPORT{program}="/sbin/scsi_id -g -x -s $devpath -d $tempnode" -KERNEL=="sd*[!0-9]|sr*", ENV{ID_SERIAL}=="", \ - IMPORT{program}="/sbin/scsi_id -g -x -a -s $devpath -d $tempnode" +KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}=="", \ + IMPORT{program}="usb_id -x" +KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}=="", \ + IMPORT{program}="scsi_id -g -x -s $devpath -d $tempnode" +KERNEL=="sd*[!0-9]|sr*|st*", ENV{ID_SERIAL}=="", \ + IMPORT{program}="scsi_id -g -x -a -s $devpath -d $tempnode" KERNEL=="dasd*[!0-9]", \ - IMPORT{program}="/sbin/dasd_id --export $tempnode" + IMPORT{program}="dasd_id --export $tempnode" -KERNEL=="*[!0-9]", SYSFS{removable}!="1", \ - IMPORT{program}="/sbin/edd_id --export $tempnode" +KERNEL=="*[!0-9]", \ + IMPORT{program}="edd_id --export $tempnode" # find the physical path of the device -KERNEL=="*[!0-9]|sr*", ENV{ID_TYPE}=="?*", \ - IMPORT{program}="/sbin/path_id $devpath" +KERNEL=="*[!0-9]|sr*|st*", ENV{ID_TYPE}=="?*", \ + IMPORT{program}="path_id $devpath" # import the variables of partitions from the parent disks KERNEL=="*[0-9]", IMPORT{parent}="ID_*" @@ -44,6 +47,8 @@ KERNEL=="sd*[!0-9]|dasd[!0-9]*|sr*", ENV{ID_SERIAL}=="?*", \ SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="sd*[0-9]|dasd*[0-9]", ENV{ID_SERIAL}=="?*", \ SYMLINK+="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}-part%n" +KERNEL=="st*", ENV{ID_SERIAL}=="?*", \ + SYMLINK+="tape/by-id/$env{ID_BUS}-$env{ID_SERIAL}" KERNEL=="*[!0-9]", ENV{ID_EDD}=="?*", \ SYMLINK+="disk/by-id/edd-$env{ID_EDD}" KERNEL=="*[0-9]", ENV{ID_EDD}=="?*", \ @@ -51,15 +56,22 @@ KERNEL=="*[0-9]", ENV{ID_EDD}=="?*", \ KERNEL=="*[!0-9]|sr*", ENV{ID_PATH}=="?*", \ SYMLINK+="disk/by-path/$env{ID_PATH}" -KERNEL=="sr*", GOTO="no_volume_id" +KERNEL=="st*", ENV{ID_PATH}=="?*", \ + SYMLINK+="tape/by-path/$env{ID_PATH}" +KERNEL=="sr*|st*", GOTO="no_volume_id" KERNEL=="*[0-9]", ENV{ID_PATH}=="?*", \ SYMLINK+="disk/by-path/$env{ID_PATH}-part%n" # UUID and volume label KERNEL=="*[!0-9]", SYSFS{removable}=="1", GOTO="no_volume_id" -IMPORT{program}="/sbin/vol_id --export $tempnode" -ENV{ID_FS_UUID}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}" -ENV{ID_FS_LABEL_SAFE}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}" +IMPORT{program}="vol_id --export $tempnode" +ENV{ID_FS_UUID}=="?*", ENV{ID_FS_USAGE}=="filesystem|other", \ + SYMLINK+="disk/by-uuid/$env{ID_FS_UUID}" +ENV{ID_FS_LABEL_SAFE}=="?*", ENV{ID_FS_USAGE}=="filesystem|other", \ + SYMLINK+="disk/by-label/$env{ID_FS_LABEL_SAFE}" + +#KERNEL=="dm-[0-9]*", PROGRAM="/sbin/dmsetup info -c --noopencount --noheadings -o name -j %M -m %m", \ +# SYMLINK+="disk/by-name/%c" # end of processing LABEL="no_volume_id" diff --git a/etc/udev/debian/udev.rules b/etc/udev/debian/udev.rules index b5dfd0057..023337445 100644 --- a/etc/udev/debian/udev.rules +++ b/etc/udev/debian/udev.rules @@ -27,11 +27,12 @@ BUS=="usb", KERNEL=="dabusb*", NAME="usb/%k" BUS=="usb", KERNEL=="hiddev*", NAME="usb/%k" BUS=="usb", KERNEL=="legousbtower*", NAME="usb/%k" BUS=="usb", KERNEL=="lp[0-9]*", NAME="usb/%k" -BUS=="usb", KERNEL=="ttyUSB*", SYSFS{product}=="Palm Handheld*", \ +BUS=="usb", KERNEL=="ttyUSB*", \ + SYSFS{product}=="Palm Handheld*|Handspring Visor", \ SYMLINK+="pilot" # usbfs-like devices -SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; B=$${K%%%%.*}; D=$${K#*.}; echo bus/usb/$$B/$$D'", \ +SUBSYSTEM=="usb_device", PROGRAM="/bin/sh -c 'K=%k; K=$${K#usbdev}; printf bus/usb/%%03i/%%03i $${K%%%%.*} $${K#*.}'", \ NAME="%c" # serial devices @@ -39,7 +40,7 @@ KERNEL=="capi", NAME="capi20", SYMLINK+="isdn/capi20" KERNEL=="capi[0-9]*", NAME="capi/%n" # video devices -KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; A=$${K%%%%.*}; D=$${K#*.}; echo dvb/adapter$$A/$$D'", \ +KERNEL=="dvb*", PROGRAM="/bin/sh -c 'K=%k; K=$${K#dvb}; printf dvb/adapter%%i/%%s $${K%%%%.*} $${K#*.}", \ NAME="%c" KERNEL=="card[0-9]*", NAME="dri/%k" @@ -91,6 +92,7 @@ KERNEL=="zap[0-9]*", NAME="zap/%n" SUBSYSTEM=="aoe", KERNEL=="discover", NAME="etherd/%k" SUBSYSTEM=="aoe", KERNEL=="err", NAME="etherd/%k" SUBSYSTEM=="aoe", KERNEL=="interfaces", NAME="etherd/%k" +SUBSYSTEM=="aoe", KERNEL=="revalidate", NAME="etherd/%k" # device mapper creates its own device nodes, so ignore these KERNEL=="dm-[0-9]*", NAME="" -- 2.30.2