Commit d9ac2cfc authored by Pete Zaitcev's avatar Pete Zaitcev Committed by Greg Kroah-Hartman

[PATCH] USB: update usbmon.txt

Fix up the documentation. Apparently, I left unedited copy-paste results
in examples. Also, Alan helped me to improve the most confusing parts.
Signed-off-by: default avatarPete Zaitcev <zaitcev@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 12e72fea
...@@ -29,14 +29,13 @@ if usbmon is built into the kernel. ...@@ -29,14 +29,13 @@ if usbmon is built into the kernel.
# mount -t debugfs none_debugs /sys/kernel/debug # mount -t debugfs none_debugs /sys/kernel/debug
# modprobe usbmon # modprobe usbmon
#
Verify that bus sockets are present. Verify that bus sockets are present.
[root@lembas zaitcev]# ls /sys/kernel/debug/usbmon # ls /sys/kernel/debug/usbmon
1s 1t 2s 2t 3s 3t 4s 4t 1s 1t 2s 2t 3s 3t 4s 4t
[root@lembas zaitcev]# #
# ls /sys/kernel
2. Find which bus connects to the desired device 2. Find which bus connects to the desired device
...@@ -76,7 +75,7 @@ that the file size is not excessive for your favourite editor. ...@@ -76,7 +75,7 @@ that the file size is not excessive for your favourite editor.
* Raw text data format * Raw text data format
The '0t' type data consists of a stream of events, such as URB submission, The '1t' type data consists of a stream of events, such as URB submission,
URB callback, submission error. Every event is a text line, which consists URB callback, submission error. Every event is a text line, which consists
of whitespace separated words. The number of position of words may depend of whitespace separated words. The number of position of words may depend
on the event type, but there is a set of words, common for all types. on the event type, but there is a set of words, common for all types.
...@@ -97,20 +96,25 @@ Here is the list of words, from left to right: ...@@ -97,20 +96,25 @@ Here is the list of words, from left to right:
Zi Zo Isochronous input and output Zi Zo Isochronous input and output
Ii Io Interrupt input and output Ii Io Interrupt input and output
Bi Bo Bulk input and output Bi Bo Bulk input and output
Device address and Endpoint number are decimal numbers with leading zeroes Device address and Endpoint number are 3-digit and 2-digit (respectively)
or 3 and 2 positions, correspondingly. decimal numbers, with leading zeroes.
- URB Status. This field makes no sense for submissions, but is present - URB Status. In most cases, this field contains a number, sometimes negative,
to help scripts with parsing. In error case, it contains the error code. which represents a "status" field of the URB. This field makes no sense for
In case of a setup packet, it contains a Setup Tag. If scripts read a number submissions, but is present anyway to help scripts with parsing. When an
in this field, they proceed to read Data Length. Otherwise, they read error occurs, the field contains the error code. In case of a submission of
the setup packet before reading the Data Length. a Control packet, this field contains a Setup Tag instead of an error code.
It is easy to tell whether the Setup Tag is present because it is never a
number. Thus if scripts find a number in this field, they proceed to read
Data Length. If they find something else, like a letter, they read the setup
packet before reading the Data Length.
- Setup packet, if present, consists of 5 words: one of each for bmRequestType, - Setup packet, if present, consists of 5 words: one of each for bmRequestType,
bRequest, wValue, wIndex, wLength, as specified by the USB Specification 2.0. bRequest, wValue, wIndex, wLength, as specified by the USB Specification 2.0.
These words are safe to decode if Setup Tag was 's'. Otherwise, the setup These words are safe to decode if Setup Tag was 's'. Otherwise, the setup
packet was present, but not captured, and the fields contain filler. packet was present, but not captured, and the fields contain filler.
- Data Length. This is the actual length in the URB. - Data Length. For submissions, this is the requested length. For callbacks,
this is the actual length.
- Data tag. The usbmon may not always capture data, even if length is nonzero. - Data tag. The usbmon may not always capture data, even if length is nonzero.
Only if tag is '=', the data words are present. The data words are present only if this tag is '='.
- Data words follow, in big endian hexadecimal format. Notice that they are - Data words follow, in big endian hexadecimal format. Notice that they are
not machine words, but really just a byte stream split into words to make not machine words, but really just a byte stream split into words to make
it easier to read. Thus, the last word may contain from one to four bytes. it easier to read. Thus, the last word may contain from one to four bytes.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment