From mboxrd@z Thu Jan 1 00:00:00 1970 From: Patrick Mansfield Date: Tue, 01 Nov 2005 22:53:57 +0000 Subject: udev user specified or human readable /dev names Message-Id: <20051101225357.GA13215@us.ibm.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-hotplug-devel@lists.sourceforge.net, dm-devel@redhat.com Hi - Per posts and an accepted patch on dm-devel about dm multipath user friendly names: https://www.redhat.com/archives/dm-devel/2005-October/msg00004.html https://www.redhat.com/archives/dm-devel/2005-October/msg00067.html But the above is a dm multipath only solution. It's a good idea to allow user specified names on top of the /dev/disk/by-* device names. Though dm likely needs a dm_id in order to support the method outlined here. If we could set and compare environment variables, or compare SYMLINK, a separate rules file (doesn't have to be separate, just seems like a good idea) could be used to add symlinks to user specified names. i.e. move udev_rules.c:apply_format() into udev_utils.c, and call it before comparison as well as before (AFAIUI) generating names, though I somehow doubt the change is that simple. Then, we could have rules like: KERNEL="sd*[!0-9]|sr*|dasd*[!0-9]", ENV{ID_SERIAL}="?*", ENV{ID_FULL_PATH}="disk/by-id/$env{ID_BUS}-$env{ID_SERIAL}" ENV{ID_FULL_PATH}="?*", SYMLINK+="$env{ID_FULL_PATH}" And for each device that we want to give a user specified name, use (would also need partition specific rules): ENV{ID_FULL_PATH}="disk/by-id/scsi-360a98000686f68656c6e7a416f4b6849" SYMLINK+="media-files" And similar for the other disk/by-* methods. Any comments on the above? Is my rule just wrong, or is there a better method? Running with udev 069 on FC rawhide, with these rules: SYMLINK="*foo*" SYMLINK+="user/bar" KERNEL="sdm" ENV{VAL1}="somevalue" KERNEL="sdm" ENV{VAL2}="$env{VAL1}" KERNEL="sdm" SYMLINK+="user/show-val1-$env{VAL1}" KERNEL="sdm" SYMLINK+="user/show-val2-$env{VAL2}" ENV{VAL1}="somevalue" SYMLINK+="user/val1" ENV{VAL2}="somevalue" SYMLINK+="user/val2" Do not work as might be expected: since the env values are not expanded, the last rule never matches, and user/val2 link is never created. The above generated (sdaz is the last device found): [elm3a49 ~]$ ls -l /dev/user total 0 lrwxrwxrwx 1 root root 7 Nov 1 14:18 bar -> ../sdaz lrwxrwxrwx 1 root root 6 Nov 1 14:18 show-val1-somevalue -> ../sdm lrwxrwxrwx 1 root root 6 Nov 1 14:18 show-val2-somevalue -> ../sdm lrwxrwxrwx 1 root root 6 Nov 1 14:18 val1 -> ../sdm -- Patrick Mansfield ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net Linux-hotplug-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel