lkml.org 
[lkml]   [2004]   [Mar]   [14]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
FromAndrey Borzenkov <>
SubjectRe: Does sysfs really provides persistent hardware path to devices?
DateSun, 14 Mar 2004 14:53:56 +0300
On Monday 19 January 2004 16:08, Olaf Hering wrote:
>  On Sat, Jan 17, Andrey Borzenkov wrote:
> > > > Well, we did not move a tiny bit since the beginning of this thread
> > > > :) You still did not show me namedev configuration that implements
> > > > persistent name for a device based on its physical location :)))
> > >
> > > Ok, do you have any other ideas of how to do this?
> >
> > given current sysfs implementation - using wildcards remains the only
> > solution. I for now am using this trivial script:
> >
> > pts/0}% cat /etc/udev/scripts/removables
> > #!/usr/bin/perl
> >
> > my $devpath, $base;
> >
> > $base = $1 if ($ARGV[0] =~ /(.*\D)\d*$/);
> > $devpath = readlink "/sys/block/$base/device";
> >
> > if ($devpath =~
> > m|/devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2.4/2-2.4:1.0/host\d+/\d+:0
> >:0:0|) {
> >         print "flash0";
> > } elsif ($devpath =~
> > m|/devices/pci0000:00/0000:00:1f.4/usb2/2-2/2-2.1/2-2.1:1.0/host\d+/\d+:0
> >:0:0|) {
> >         print "flash1";
> > } elsif ($devpath =~ m|/devices/legacy/host\d+/\d+:0:4:0|) {
> >         print "jaz";
> > } else {
> >         exit(1);
> > }
>
> I'm not sure what you are trying to do.

I am trying to assign name for a USB slot on my PCs front so that when I plug 
in USB stick or USB drive or whatever I get the same name. Always.

> Working with the 'physical 
> location' of removeable devices will probably fail.

why? The 'physical location' is the only thing that is unlikely to change 
unless you physically change you hardware.

Anyway - it appears that udev (as of 022 now) still does not support doing it. 
Once more - I want to make sure that SCSI disk plugged in specific USB slot 
(that does not ever change) always gets the same name. So that I always know 
how to access it.

naive user would think that something like

KERNEL="sd*" BUS="usb" PLACE="2.4:1.0" SYMLINK="flash0/sd%n"

would work. Surely it does not. When udev sees "sd*" it does not see bus USB. 
When udev sees bus USB it does not see "sd*". It does (probably) see sd* on 
bus SCSI but it does not help me in any way because I have no way to 
associate SCSI ID with USB port. While kernel does know that "sda" is a child 
of USB port 2.4:0.1 I do not see any way to express it in udev.

Could somebody explain what am I doing wrong. Thank you. 

> The usb-storage 
> devices here have a serial field, I really hope it is unique, use it.

Sigh ... let me quote:

> I have 6 different firewire hard drives, and an iPod, a usb stick, a usb
> stick/camera combo, and a bunch of flash memory products (CF, SM, SD) so
> such a thing would be incredibly useful to me.  I'm always modifying my
> fstab to keep things in order.

so you suggest him to add every device separately? And if he has half a dozen 
friends having half a dozen devices each - do you suggest adding yet another 
40 lines for all of them? And keep it in sync with all updates and upgrades?

On the contrary he likely has just a couple of USB ports and one firewire and 
he just needs three lines for *any* device which is ever going to be plugged 
in. Or he would need if it was supported.

thank you

-andrey
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:01    [from the cache]
©2003-2008