usbhid-dump(8) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | OPTIONS | SIGNALS | OUTPUT FORMAT | EXAMPLES | AUTHOR | COLOPHON

usbhid-dump(8)             Linux USB Utilities             usbhid-dump(8)

NAME         top

       usbhid-dump - dump USB HID device report descriptors and streams

SYNOPSIS         top

       usbhid-dump [OPTION]...

DESCRIPTION         top

       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         top

       -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         top

       USR1/USR2
              Pause/resume stream dump output.

OUTPUT FORMAT         top

       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         top

       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 lose control over the terminal if you use USB
       keyboard):
              usbhid-dump -es

AUTHOR         top

       Nikolai Kondrashov <spbnick@gmail.com>

COLOPHON         top

       This page is part of the usbutils (USB utilities for Linux)
       project.  Information about the project can be found at 
       ⟨http://www.linux-usb.org/⟩.  If you have a bug report for this
       manual page, send it to linux-usb@vger.kernel.org.  This page was
       obtained from the project's upstream Git repository
       ⟨https://github.com/gregkh/usbutils.git⟩ on 2025-02-02.  (At that
       time, the date of the most recent commit that was found in the
       repository was 2025-01-20.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

usbutils                      February 2012                usbhid-dump(8)