linux-hotplug.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Michael Hamilton <michael@actrix.gen.nz>
To: linux-hotplug@vger.kernel.org
Subject: Re: USB/desktop integration - how to guess /dev/sd* when hotplugging?
Date: Sun, 15 Feb 2004 02:38:42 +0000	[thread overview]
Message-ID: <200402151538.42685.michael@actrix.gen.nz> (raw)
In-Reply-To: <200402130844.30279.michael@actrix.gen.nz>

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

      parent reply	other threads:[~2004-02-15  2:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 ` Michael Hamilton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200402151538.42685.michael@actrix.gen.nz \
    --to=michael@actrix.gen.nz \
    --cc=linux-hotplug@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).