* 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).