How to log USB modem data for a specific device?

Greg KH greg at kroah.com
Tue Nov 12 00:37:54 EST 2019


On Mon, Nov 11, 2019 at 05:57:24PM -0500, Jeffrey Walton wrote:
> On Mon, Nov 11, 2019 at 12:24 PM Greg KH <greg at kroah.com> wrote:
> >
> > On Mon, Nov 11, 2019 at 11:40:51AM -0500, Jeffrey Walton wrote:
> > > On Mon, Nov 11, 2019 at 11:31 AM Greg KH <greg at kroah.com> wrote:
> > > >
> > > > On Mon, Nov 11, 2019 at 11:11:06AM -0500, Jeffrey Walton wrote:
> > > > > Hi Everyone,
> > > > >
> > > > > I'm having trouble with a C application that opens a USB modem. The
> > > > > application is not receiving some data from a USR modem. Conexant
> > > > > modems are OK.
> > > > >
> > > > > I'm working through
> > > > > https://www.kernel.org/doc/Documentation/usb/usbmon.txt . I found the
> > > > > modem at Bus=01 Dev=24:
> > > > >
> > > > > T:  Bus=01 Lev=03 Prnt=07 Port=00 Cnt=01 Dev#= 24 Spd=480  MxCh= 0
> > > > > D:  Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
> > > > > P:  Vendor=0baf ProdID=0303 Rev= 2.00
> > > > > S:  Manufacturer=U.S.Robotics
> > > > > S:  Product=USB Modem
> > > > >
> > > > > This is where my confusion lies. It is not clear to me how to
> > > > > determine which socket to use for step #3 in usbmon.txt. Step #3 says:
> > > > >
> > > > >    # cat /sys/kernel/debug/usb/usbmon/3u > /tmp/1.mon.out
> > > > >
> > > > > How do I determine which socket to use for Bus=01 Dev=24?
> > > >
> > > > From the above documentation, it says to use "3u" for all devices on the
> > > > 3rd bus.  You want the 1st bus, right?  So did you try using "1u"?
> > > >
> > > > I think wireshark can intrepret usbmon output, so maybe just use that
> > > > instead and point it at the USB bus you want to watch?
> > >
> > > Thanks Greg.
> > >
> > > I want Bus 1, but I want Device 24 (not all devices).
> >
> > That's not what usbmon will show.  Look at wireshark and see if it can
> > filter the output for just that one device.
> >
> > There's also the old-style USB device snoop interface, that works on a
> > per-device level.
> 
> Ack, thanks.
> 
> Would you happen to know the old-style program name? I am having
> trouble finding it.

It's the "usbfs_snoop" module parameter for the usb core.  It only works
on usbfs connections, sorry, not for anything that you already have a
kernel driver bound for.

> Here's why I want to specify a device number:
> 
>     $ cat /sys/kernel/debug/usb/devices | grep -i -c 'Bus=01'
>     13
> 
> It is too much information for me to sift through. I'll do it if I
> have to, but I prefer the tools do the work for me (rather than me do
> the work of the tools).

That explains why you only want one device's data, but does not answer
why you want that data at all :)

thanks,

greg k-h



More information about the Kernelnewbies mailing list