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