How to determine link of umass/da devices

M. Warner Losh imp at bsdimp.com
Wed Oct 19 08:40:44 PDT 2005


In message: <20051017143356.GA12188 at zoopee.org>
            Tom Alsberg <alsbergt at cs.huji.ac.il> writes:
: With tools like usbdevs and sysctl, I can find out what USB devices
: are connected, and also what USB drivers handle them (so I can see,
: for example, that there is a SanDisk Cruzer Micro connected to port 2
: in bus 3 and the umass driver under it).

You can find this out best via the devinfo interface.

: I can also find out what da devices there are using camcontrol.

Right.  cam doesn't hook the da devices into the device tree.

: However, how can I find out which da device was assigned to which
: umass/usb device?

Generally, you can't.  There's not really an interface to get this
information.  devinfo assumes that things like disk drives would be in
the device tree and except for cam, all other drivers conform to this
world view.  There's some efforts to update and lock cam which I think
will rectify this.

: I see this info in some inconvenient form in
: dmesg.  But I need something easier to handle programmatically to
: write a program that uses that data.  I prefer not to resort to some
: ugly hack like trying to parse dmesg.

Especially since dmesg can disapper quickly on some systems.

: Also, I'd be interested if it were possible to have my program
: informed when devices are connected/disconnected.  Can a process ask
: usbd to send it some signal and somehow provide the details of the
: event when a device is connected/disconnected?

devd provides a pipe of all events from the kernel in
/var/run/devd.pipe.

Warner


More information about the freebsd-hackers mailing list