linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* USB/desktop integration - how to guess /dev/sd* when hotplugging?
@ 2004-02-12 19:44 Michael Hamilton
  2004-02-12 21:39 ` Marco d'Itri
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Michael Hamilton @ 2004-02-12 19:44 UTC (permalink / raw)
  To: linux-hotplug

How do I systematically determine /dev/sd[abc] when hotplugging?
Is sg_map from sg3_utils the best/only way?  In more detail...

I've got some scripts that attempt to integrate hotplug and 
the desktop so that icons for each partition pop onto the 
desktop and change state when usb devices are plugged in,
see http:/users.actrix.co.nz/michael .  My scripts were 
an interim measure - pending a universally accepted 
solution from distro or desktop makers - but my scripts
are still in use after  more than a year. I'm trying 
to tidy them up and add firewire support, plus get them
to work for kernel 2.6.

There doesn't seem to be an easy way to figure out the scsi
/dev/sd* from the hotplug device passed in, for example:
from /proc/bus/usb/004/002 to what /dev/sd*?

I was hoping there was a easy way to use /proc or /sys, to 
get this info.  But I can't see anything there solving the
problem.  I'm thinking of using the sg_map utility from 
sg3_utils.  The only problem with sg_map is that it probes
non-existant devices, and the probes produce a lot of 
dmesg chatter which in turn creates a CPU burst from the
syslogd.  Some log chatter can be eliminated by assigning
dummy devices, but I prefer not to have to do that.

If there isn't a way to do this simply and cleanly, could
I suggest that kernel people consider adding something
to the sysfs under 2.6.   

Thanks,
Michael


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&op=click
_______________________________________________
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: USB/desktop integration - how to guess /dev/sd* when hotplugging?
  2004-02-12 19:44 USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
@ 2004-02-12 21:39 ` Marco d'Itri
  2004-02-13  1:31 ` Greg KH
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Marco d'Itri @ 2004-02-12 21:39 UTC (permalink / raw)
  To: linux-hotplug

On Feb 12, Michael Hamilton <michael@actrix.gen.nz> wrote:

 >How do I systematically determine /dev/sd[abc] when hotplugging?
http://dev.gentoo.org/~wmertens/

-- 
ciao, |
Marco | [4577 otc77YvTJHuu6]


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&op=click
_______________________________________________
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: USB/desktop integration - how to guess /dev/sd* when hotplugging?
  2004-02-12 19:44 USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
  2004-02-12 21:39 ` Marco d'Itri
@ 2004-02-13  1:31 ` Greg KH
  2004-02-13 11:01 ` USB/desktop integration - how to guess /dev/sd* when Michael Hamilton
  2004-02-15  2:38 ` USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
  3 siblings, 0 replies; 5+ messages in thread
From: Greg KH @ 2004-02-13  1:31 UTC (permalink / raw)
  To: linux-hotplug

On Fri, Feb 13, 2004 at 08:44:30AM +1300, Michael Hamilton wrote:
> How do I systematically determine /dev/sd[abc] when hotplugging?
> Is sg_map from sg3_utils the best/only way?  In more detail...

Looked at devlabel?

> There doesn't seem to be an easy way to figure out the scsi
> /dev/sd* from the hotplug device passed in, for example:
> from /proc/bus/usb/004/002 to what /dev/sd*?

Why not just catch either the block hotplug events, or the scsi hotplug
events?  And why would you ever want to map usb-storage devices to their
usbfs entry?

> I was hoping there was a easy way to use /proc or /sys, to 
> get this info.

Look at /sys/block/{block_device}/device

That's the symlink I think you want, right?

thanks,

greg k-h


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&op=click
_______________________________________________
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: USB/desktop integration - how to guess /dev/sd* when
  2004-02-12 19:44 USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
  2004-02-12 21:39 ` Marco d'Itri
  2004-02-13  1:31 ` Greg KH
@ 2004-02-13 11:01 ` Michael Hamilton
  2004-02-15  2:38 ` USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
  3 siblings, 0 replies; 5+ messages in thread
From: Michael Hamilton @ 2004-02-13 11:01 UTC (permalink / raw)
  To: linux-hotplug

I think gentoo uses devfs, which is quite unlike the one I'm using
(Redhat 9) - I looked at this gentoo solution and its quite nice.
But I believe it wouldn't work for Redhat (and I don't have the
bandwidth to go with gentoo).  Also this gentoo solution seems 
to assume FAT and only 1 partition - which isn't true for my 
usb hard drive enclosure.

> Date: Thu, 12 Feb 2004 22:39:32 +0100
> From: Marco d'Itri <md@Linux.IT>
> To: linux-hotplug-devel@lists.sourceforge.net
> Subject: Re: USB/desktop integration - how to guess /dev/sd* when
> hotplugging?
>
> On Feb 12, Michael Hamilton <michael@actrix.gen.nz> wrote:
>  >How do I systematically determine /dev/sd[abc] when hotplugging?
>
> http://dev.gentoo.org/~wmertens/
>
> --
> ciao, |
> Marco | [4577 otc77YvTJHuu6]
>
>
> --__--__--



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&op=click
_______________________________________________
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: USB/desktop integration - how to guess /dev/sd* when hotplugging?
  2004-02-12 19:44 USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
                   ` (2 preceding siblings ...)
  2004-02-13 11:01 ` USB/desktop integration - how to guess /dev/sd* when Michael Hamilton
@ 2004-02-15  2:38 ` Michael Hamilton
  3 siblings, 0 replies; 5+ messages in thread
From: Michael Hamilton @ 2004-02-15  2:38 UTC (permalink / raw)
  To: linux-hotplug

On Fri, 13 Feb 2004 14:31, Greg KH wrote:
> On Fri, Feb 13, 2004 at 08:44:30AM +1300, Michael Hamilton wrote:
> > How do I systematically determine /dev/sd[abc] when hotplugging?
> > Is sg_map from sg3_utils the best/only way?  In more detail...
>
> Looked at devlabel?

I did look at devlabel in the past, but the stated need for unique
ID's put me off - I have two devices with the same ID - but I
don't normally plug them in at the same time, so maybe devlabel
would be OK.  For my own scripts I had come to the conclusion 
that it's better not to try and use ID's for usb devices, because, 
in the end, the ID can be pretty much useless and the only
way to tell which device is which is to look at its content.
Because of this issue, I decided to use generic handles 
like usb-device-1, usb-device-2, etc.

> > There doesn't seem to be an easy way to figure out the scsi
> > /dev/sd* from the hotplug device passed in, for example:
> > from /proc/bus/usb/004/002 to what /dev/sd*?
>
> Why not just catch either the block hotplug events, or the scsi hotplug
> events?  And why would you ever want to map usb-storage devices to their
> usbfs entry?

Sorry - I'm a bit out of my depth here.  From reading about 
hotplug from the project website I got the impression that 
a usb device should be handled by adding code in the usb storage 
area of hotplug.  You seem to be saying this is wrong and I 
should trap something more general in the block or scsi area.  
I guess I need a new version of hotplug because mine doesn't 
seem to have agents for these kind of events.

> why would you ever want to map usb-storage devices to their
> usbfs entry

Under kernel 2.4 the only thing hotplug gives you to go on is 
/proc/bus/usb/..., but I had no way to translate this to
a scsi entry except by trying to match GUID's - but GUID's
are not unique, eg I can plug in two usb-flash-drives that
have the same GUID.  Because of the lack of a mapping, on
a hotplug event, I was resorting to mounting every
usb-drive listed as attached under /proc/scsi/usb-storage -
which actually works quite well - most people only plug in
one drive at a time.  Under kernel 2.6, your next hint 
deals with this issue nicely.

> > I was hoping there was a easy way to use /proc or /sys, to
> > get this info.
>
> Look at /sys/block/{block_device}/device
>
> That's the symlink I think you want, right?

Yes this is it - this will allow me to find the scsi host number
of a device that has been plugged in.  I can then use sg_map to
find the /dev/sd[abc...] currently assigned to the host number and
after that its plain sailing.  Because I need to translate the
host number to a /dev/sd[abc..] device, I can't see any way around
using sg_map - does anyone know a way to get this info out of
/proc or /sys? Here is the kind of info I get from sg_map:

  [root@viking2 root]# sg_map -sd -x
  /dev/sg0  1 0 0 0  0  /dev/sda
  /dev/sg1  2 0 0 0  0  /dev/sdb
  /dev/sg2  3 0 0 0  0  /dev/sdc
  /dev/sg3  0 0 0 0  5
  /dev/sg4  4 0 0 0  0  /dev/sdd
  /dev/sg5  5 0 0 0  0  /dev/sde

Note the skip in the numerical sequence due to the cdrom drive 
on host number 3 - skips like this are the reason I need a map.

Thanks for the help,
Michael


-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id\x1356&alloc_id438&op=click
_______________________________________________
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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2004-02-15  2:38 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-02-12 19:44 USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton
2004-02-12 21:39 ` Marco d'Itri
2004-02-13  1:31 ` Greg KH
2004-02-13 11:01 ` USB/desktop integration - how to guess /dev/sd* when Michael Hamilton
2004-02-15  2:38 ` USB/desktop integration - how to guess /dev/sd* when hotplugging? Michael Hamilton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).