From 0a8dd7f37c6f788c74aa528949c45aca66638e5a Mon Sep 17 00:00:00 2001 From: "david@fubar.dk" Date: Fri, 10 Sep 2004 21:04:13 -0700 Subject: [PATCH] compatibility symlinks for udev On Mon, 2004-09-06 at 17:45 +0200, Kay Sievers wrote: > On Mon, 2004-09-06 at 16:46 +0200, David Zeuthen wrote: > > Nice, I like it. It's a easy way to group device nodes of the same type, > but coming from different kernel subsystems. > That's a good way of putting it, yeah. > > Here's a patch against udev-030 that can help create compatibility > > symlinks like /dev/cdrom, /dev/cdrom1 etc. The patch introduces a new > > substitution type %C (for Compatibility) that can be used as follows > > I suggest using %e for enumeration here, cause "compatibility" can > easily be misunderstood. > Good point, I've changed that. > And we need a few lines added to the man page at udev.8.in :) > Done. I've also added an example. Also, Kay pointed out offlist that the rules can be written to not require a shell script; this actually works KERNEL="sr*", NAME="%k", SYMLINK="cdrom%e" KERNEL="scd*", NAME="%k", SYMLINK="cdrom%e" KERNEL="pcd*", NAME="%k", SYMLINK="cdrom%e" KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", NAME="\%k", SYMLINK="cdrom%e" KERNEL="fd[0-9]", NAME="%k", SYMLINK="floppy%e" KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="floppy", NAME=\"%k", SYMLINK="floppy%e" New patch is attached. David --- udev.8.in | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'udev.8.in') diff --git a/udev.8.in b/udev.8.in index 6d1dfd9d18..9c22f8aa63 100644 --- a/udev.8.in +++ b/udev.8.in @@ -272,6 +272,13 @@ all remaining parts of the result string are substituted: .BI %s{ filename } The content of a sysfs attribute. .TP +.B %e +If a device node already exists with the name, the smallest positive +decimal integer N is substituted such that the resulting name doesn't +match an existing device node. Otherwise nothing is substituted. This +can be used to create compatibility symlinks and enumerate devices of +the same type originating from different kernel subsystems. +.TP .B %% The '%' character itself. .P @@ -302,6 +309,14 @@ KERNEL="ttyUSB1", NAME="pda", SYMLINK="palmtop handheld" # multiple USB webcams with symlinks to be called webcam0, webcam1, ... BUS="usb", SYSFS{model}="XV3", NAME="video%n", SYMLINK="webcam%n" + +# grouping of optical drives from multiple kernel subsystems +KERNEL="sr*", NAME="%k", SYMLINK="cdrom%e" +KERNEL="scd*", NAME="%k", SYMLINK="cdrom%e" +KERNEL="pcd*", NAME="%k", SYMLINK="cdrom%e" +KERNEL="hd[a-z]", PROGRAM="/bin/cat /proc/ide/%k/media", RESULT="cdrom", + NAME="%k", SYMLINK="cdrom%e" + .fi .P The permissions and ownership of the created device file is read from -- cgit v1.2.3-54-g00ecf