NAME
usbhid-dump - dump USB HID device report descriptors and streams
SYNOPSIS
usbhid-dump [OPTION]...
DESCRIPTION
usbhid-dump uses libusb to dump report descriptors and streams from HID (human interface device) interfaces of USB devices. By default, it dumps HID interfaces of all connected USB devices, but could be limited to a subset of them, or to a single interface, using options. NOTE: usbhid-dump detaches kernel drivers from the interfaces it dumps and uses them exclusively, so no other program receives the input in the meantime. The report descriptor dumping is instantaneous, but the stream dumping continues until terminated with SIGINT (^C from the terminal) or a timeout expires. If you accidentally start dumping a stream from the USB keyboard you use to control the terminal, the system will stop receiving the input and you won't be able to terminate usbhid-dump. Just stop your input and wait until the timeout expires. The stream dumping will stop, the keyboard will be reattached to the kernel driver and you will regain control. The default stream dumping timeout is 60 seconds and could be changed with the -t option.
OPTIONS
-h, --help Output a help message and exit. -v, --version Output version information and exit. -s, -a, --address=bus[:dev] Limit interfaces by bus number and device address. Both 1-255, decimal. Zeroes match any bus or device. -d, -m, --model=vid[:pid] Limit interfaces by device vendor and product IDs. Both 1-FFFF, hexadecimal. Zeroes match any vendor or product. -i, --interface=NUMBER Limit interfaces by number (0-254), decimal. 255 matches any interface. -e, --entity=STRING The entity to dump: either "descriptor", "stream" or "all". The value can be abbreviated down to one letter. The default is "descriptor". -t, --stream-timeout=NUMBER Stream interrupt transfer timeout, ms. Zero means infinity. The default is 60000 (60 seconds). -p, --stream-paused Start with the stream dump output paused. -f, --stream-feedback Enable stream dumping feedback: print a dot to stderr for every transfer dumped.
SIGNALS
USR1/USR2 Pause/resume stream dump output.
OUTPUT FORMAT
usbhid-dump outputs dumps in chunks. Each chunk is separated by an empty line and starts with the following header line: BUS:DEVICE:INTERFACE:ENTITY TIMESTAMP Here, BUS, DEVICE and INTERFACE are bus, device and interface numbers respectively. ENTITY is either "DESCRIPTOR" or "STREAM". TIMESTAMP is timestamp in seconds since epoch. After the header the actual dump data follows as hex bytes. A descriptor chunk includes the whole report descriptor. Every stream chunk includes a whole report, usually, but if a report is bigger than endpoint's wMaxPacketSize, it will span several chunks.
EXAMPLES
Dump report descriptor for a device with address 3 on bus number 2: usbhid-dump -a 2:3 Dump report stream for a device with vendor ID 0x5543 and product ID 0x0005: usbhid-dump -m 5543:0005 -es Dump report descriptor from interface 1 of a device with vendor ID 0x5543: usbhid-dump -m 5543 -i 1 -ed Dump report streams from all HID interfaces of all USB devices (caution: you will loose control over the terminal if you use USB keyboard): usbhid-dump -es
AUTHOR
Nikolai Kondrashov <spbnick@gmail.com> February 2012 usbhid-dump(8)
More Linux Commands
manpages/systemd-fsck@.service.8.html
systemd-fsck .service(8) File system checker logic..........
systemd-fsck@.service is a service responsible for file system checks. It is instantiated for each device that requires a file system check. systemd-fsck-root.s
manpages/uuencode.5.html
uuencode(5) - format of an encoded uuencode file (Man Page)
Files output by uuencode(1) consist of a header line, followed by a number of body lines, and a trailer line. The uudecode(1) command will ignore any lines prec
manpages/smyrna.1.html
smyrna(1) - interactive graph viewer - Linux manual page....
smyrna is a viewer for graphs in the DOT format. It is especially designed to handle large graphs, and allows flat and topological fisheye views. It is assumed
manpages/fts_open.3.html
fts_open(3) - traverse a file hierarchy - Linux manual page
The fts functions are provided for traversing file hierarchies. A simple overview is that the fts_open() function returns a handle on a file hierarchy, which is
manpages/Tcl_WriteChars.3.html
Tcl_WriteChars(3) - buffered I/O facilities using channels
The Tcl channel mechanism provides a device-independent and platform-independent mechanism for performing buffered input and output operations on a variety of f
manpages/XkbNoteNameChanges.3.html
XkbNoteNameChanges(3) - Note the changed names in a changes
When your application receives a XkbNamesNotify event, you can note the changed names in a changes structure using XkbNoteNameChanges. The wanted parameter is t
manpages/xfsinfo.1.html
xfsinfo(1) - X font server information utility (Man Page)...
Xfsinfo is a utility for displaying information about an X font server. It is used to examine the capabilities of a server, the predefined values for various pa
manpages/nocbreak.3ncurses.html
nocbreak(3ncurses) - curses input options - Linux man page
Normally, the tty driver buffers typed characters until a newline or carriage return is typed. The cbreak routine disables line buffering and erase/kill charact
manpages/registerrpc.3.html
registerrpc(3) - library routines for remote procedure calls
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s
manpages/XCompositeUnredirectWindow.3.html
XCompositeUnredirectWindow(3) - X Composite Extension librar
The composite extension provides several related mechanisms: Per-hierarchy storage The rendering of an entire hierarchy of windows is redirected to off-screen s
manpages/gvfs-cat.1.html
gvfs-cat(1) Concatenate files (Commands - Linux man page)...
gvfs-cat concatenates the given files and prints them to the standard output. gvfs-cat works just like the traditional cat utility, but using gvfs locations ins
manpages/access.5.html
access(5) - Postfix SMTP server access table (Man Page).....
This document describes access control on remote SMTP client information: host names, network addresses, and envelope sender or recipient addresses; it is imple
