{
    "mode": "man",
    "parameter": "usbhid-dump",
    "section": "8",
    "url": "https://www.chedong.com/phpMan.php/man/usbhid-dump/8/json",
    "generated": "2026-10-07T18:18:52Z",
    "synopsis": "usbhid-dump [OPTION]...",
    "sections": {
        "NAME": {
            "content": "usbhid-dump - dump USB HID device report descriptors and streams\n",
            "subsections": []
        },
        "SYNOPSIS": {
            "content": "usbhid-dump [OPTION]...\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "usbhid-dump  uses libusb to dump report descriptors and streams from HID (human interface de‐\nvice) interfaces of USB devices.  By default, it dumps HID interfaces of  all  connected  USB\ndevices, but could be limited to a subset of them, or to a single interface, using options.\n\nNOTE:  usbhid-dump  detaches kernel drivers from the interfaces it dumps and uses them exclu‐\nsively, so no other program receives the input in the meantime.  The report descriptor  dump‐\ning  is instantaneous, but the stream dumping continues until terminated with SIGINT (^C from\nthe terminal) or a timeout expires.\n\nIf you accidentally start dumping a stream from the USB keyboard you use to control the  ter‐\nminal,  the  system  will stop receiving the input and you won't be able to terminate usbhid-\ndump. Just stop your input and wait until the timeout expires. The stream dumping will  stop,\nthe keyboard will be reattached to the kernel driver and you will regain control.\n\nThe default stream dumping timeout is 60 seconds and could be changed with the -t option.\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "",
            "subsections": [
                {
                    "name": "-h, --help",
                    "content": "Output a help message and exit.\n",
                    "flag": "-h",
                    "long": "--help"
                },
                {
                    "name": "-v, --version",
                    "content": "Output version information and exit.\n",
                    "flag": "-v",
                    "long": "--version"
                },
                {
                    "name": "-s, -a, --address=bus[:dev]",
                    "content": "Limit  interfaces by bus number and device address. Both 1-255, decimal.  Zeroes match\nany bus or device.\n",
                    "flag": "-a",
                    "long": "--address",
                    "arg": "bus[:dev]"
                },
                {
                    "name": "-d, -m, --model=vid[:pid]",
                    "content": "Limit interfaces by device vendor and product IDs. Both 1-FFFF,  hexadecimal.   Zeroes\nmatch any vendor or product.\n",
                    "flag": "-m",
                    "long": "--model",
                    "arg": "vid[:pid]"
                },
                {
                    "name": "-i, --interface=NUMBER",
                    "content": "Limit interfaces by number (0-254), decimal. 255 matches any interface.\n",
                    "flag": "-i",
                    "long": "--interface",
                    "arg": "NUMBER"
                },
                {
                    "name": "-e, --entity=STRING",
                    "content": "The  entity to dump: either \"descriptor\", \"stream\" or \"all\". The value can be abbrevi‐\nated down to one letter. The default is \"descriptor\".\n",
                    "flag": "-e",
                    "long": "--entity",
                    "arg": "STRING"
                },
                {
                    "name": "-t, --stream-timeout=NUMBER",
                    "content": "Stream interrupt transfer timeout, ms. Zero means infinity. The default is  60000  (60\nseconds).\n",
                    "flag": "-t",
                    "long": "--stream-timeout",
                    "arg": "NUMBER"
                },
                {
                    "name": "-p, --stream-paused",
                    "content": "Start with the stream dump output paused.\n",
                    "flag": "-p",
                    "long": "--stream-paused"
                },
                {
                    "name": "-f, --stream-feedback",
                    "content": "Enable stream dumping feedback: print a dot to stderr for every transfer dumped.\n",
                    "flag": "-f",
                    "long": "--stream-feedback"
                }
            ]
        },
        "SIGNALS": {
            "content": "USR1/USR2\nPause/resume stream dump output.\n",
            "subsections": []
        },
        "OUTPUT FORMAT": {
            "content": "usbhid-dump outputs dumps in chunks. Each chunk is separated by an empty line and starts with\nthe following header line:\n\nBUS:DEVICE:INTERFACE:ENTITY TIMESTAMP\n\nHere, BUS, DEVICE and INTERFACE are bus, device and interface numbers respectively. ENTITY is\neither \"DESCRIPTOR\" or \"STREAM\". TIMESTAMP is timestamp in seconds since epoch.\n\nAfter  the  header the actual dump data follows as hex bytes. A descriptor chunk includes the\nwhole report descriptor. Every stream chunk includes a whole report, usually, but if a report\nis bigger than endpoint's wMaxPacketSize, it will span several chunks.\n",
            "subsections": []
        },
        "EXAMPLES": {
            "content": "Dump report descriptor for a device with address 3 on bus number 2:\nusbhid-dump -a 2:3\n\n\nDump report stream for a device with vendor ID 0x5543 and product ID 0x0005:\nusbhid-dump -m 5543:0005 -es\n\n\nDump report descriptor from interface 1 of a device with vendor ID 0x5543:\nusbhid-dump -m 5543 -i 1 -ed\n\n\nDump report streams from all HID interfaces of all USB devices (caution: you will lose con‐\ntrol over the terminal if you use USB keyboard):\nusbhid-dump -es\n\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Nikolai Kondrashov <spbnick@gmail.com>\n\nusbutils-017                                February 2012                             usbhid-dump(8)",
            "subsections": []
        }
    },
    "summary": "usbhid-dump - dump USB HID device report descriptors and streams",
    "flags": [
        {
            "flag": "-h",
            "long": "--help",
            "arg": null,
            "description": "Output a help message and exit."
        },
        {
            "flag": "-v",
            "long": "--version",
            "arg": null,
            "description": "Output version information and exit."
        },
        {
            "flag": "-a",
            "long": "--address",
            "arg": "bus[:dev",
            "description": "Limit interfaces by bus number and device address. Both 1-255, decimal. Zeroes match any bus or device."
        },
        {
            "flag": "-m",
            "long": "--model",
            "arg": "vid[:pid",
            "description": "Limit interfaces by device vendor and product IDs. Both 1-FFFF, hexadecimal. Zeroes match any vendor or product."
        },
        {
            "flag": "-i",
            "long": "--interface",
            "arg": "NUMBER",
            "description": "Limit interfaces by number (0-254), decimal. 255 matches any interface."
        },
        {
            "flag": "-e",
            "long": "--entity",
            "arg": "STRING",
            "description": "The entity to dump: either \"descriptor\", \"stream\" or \"all\". The value can be abbrevi‐ ated down to one letter. The default is \"descriptor\"."
        },
        {
            "flag": "-t",
            "long": "--stream-timeout",
            "arg": "NUMBER",
            "description": "Stream interrupt transfer timeout, ms. Zero means infinity. The default is 60000 (60 seconds)."
        },
        {
            "flag": "-p",
            "long": "--stream-paused",
            "arg": null,
            "description": "Start with the stream dump output paused."
        },
        {
            "flag": "-f",
            "long": "--stream-feedback",
            "arg": null,
            "description": "Enable stream dumping feedback: print a dot to stderr for every transfer dumped."
        }
    ],
    "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 lose con‐",
        "trol over the terminal if you use USB keyboard):",
        "usbhid-dump -es"
    ],
    "see_also": []
}