Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 15 Sep 2014 14:07:15 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Vitaly Magerya <vmagerya@gmail.com>, freebsd-usb@freebsd.org
Subject:   Re: How to obtain the "ugen" that corresponds to an "ums", "uep" or "uhid"?
Message-ID:  <5416D673.5010001@selasky.org>
In-Reply-To: <5416D0E8.3030806@gmail.com>
References:  <5416D0E8.3030806@gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 09/15/14 13:43, Vitaly Magerya wrote:
> Hi, folks. Is there a way to obtain the name of an ugen device that
> corresponds to a particular ums/uep/uhid device?

Hi,

Have you tried:

usbconfig show_ifdrv

> The situation I'm working with is this: there's a (custom) DEVD
> rule that executes a script when any new "ums" or "uhid" device is
> created. This script has access to the device name (and any other
> info DEVD provides), and needs to figure out manufacturer name,
> product name and ID numbers of this device. To do that, it parses
> the output of this command:
>
>      usbconfig -d ugen<unit>.<address> dump_device_desc
>
> The question is how should the script obtain these <unit> and
> <address> numbers?
>
> Now, when a new device is attached DEVD receives a message like this:
>
>      +uhid0 at bus=1 hubaddr=1 port=3 devaddr=2 interface=0
>      vendor=0x0079 product=0x0011 devclass=0x00 devsubclass=0x00
>      sernum="" release=0x0106 mode=host intclass=0x03 intsubclass=0x00
>      intprotocol=0x00  on uhub0
>
>      (The correct ugen for this device happens to be ugen3.2).
>
> ... or a message like this:
>
>      +ums0 at bus=0 hubaddr=2 port=2 devaddr=3 interface=1
>      vendor=0x046d product=0xc52b devclass=0x00 devsubclass=0x00
>      sernum="" release=0x1201 mode=host intclass=0x03 intsubclass=0x01
>      intprotocol=0x02  on uhub3
>
>      (In this case the correct ugen is ugen0.3).
>
> It seems that we have the correct <address> number in the "devaddr"
> variable, but the correct <unit> number is nowhere to be found.
>

That might be a bug. We can easily add a unit=%d argument to the devd 
events, if not already there.

> So, again, given an ums/uep/uhid device name (and, possibly
> <address> number), how should one fine what to pass into
> usbconfig's "ugen<unit>.<address>" parameter?
>
> (This question is triggered by the discussion in PR 183478 [1]).
>
> [1] https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=183478

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5416D673.5010001>