diff --git a/Documentation/components/drivers/special/usbmonitor.rst b/Documentation/components/drivers/special/usbmonitor.rst index cc592d8d9954f..86b8f24f1781f 100644 --- a/Documentation/components/drivers/special/usbmonitor.rst +++ b/Documentation/components/drivers/special/usbmonitor.rst @@ -1,3 +1,55 @@ =================== USB Monitor support =================== + +Wireshark +========= +The wireshark software USB capture can capture URBs (USB Request Blocks) rather than raw USB packets when device connect to host directly. +To capture raw USB packets, a sniffer is needed. + +Linux +----- +1. Install Wireshark:: + + sudo apt update + sudo apt install wireshark + +2. (Optional) Configurate Wireshark + + Wireshark offical documentation: https://wiki.wireshark.org/CaptureSetup/USB + +3. Load the usbmon kernel module and run Wireshark:: + + sudo modprobe usbmon + sudo wireshark + +4. Find bus the device connects:: + + $ adb devices -l + List of devices attached + 1234 device usb:1-9.4 product:adb dev model:adb_board device:NuttX device transport_id:1000 + + $ dmesg + [3713722.861582] usb 1-9.4: New USB device found, idVendor=18d1, idProduct=4e11, bcdDevice= 1.01 + + $ lsusb + Bus 001 Device 035: ID 18d1:4e11 Google Inc. Nexus One + +5. Filter address + + - Select usbmon (Bus 001): usbmon1 + - Wireshark filter (Bus 001 Device 035): usb.addr[0:4] == "1.35" + +6. Example + + Capturing ADB packets with filter (usb.addr[0:4] == "1.35"), on board `ESP32S3-DevKit:ADB `_:: + + adb -s 1234 shell ls /dev/ + + The example PcapNg(Packet CAPture Next Generation) file can be downloaded from :download:`here <./usbmonitor_wireshark_linux_example_adb.pcapng>`. + +.. figure:: usbmonitor_wireshark_linux_example_adb.png + :align: center + + Wireshark Capturing + diff --git a/Documentation/components/drivers/special/usbmonitor_wireshark_linux_example_adb.pcapng b/Documentation/components/drivers/special/usbmonitor_wireshark_linux_example_adb.pcapng new file mode 100644 index 0000000000000..8c3b8a2c1e677 Binary files /dev/null and b/Documentation/components/drivers/special/usbmonitor_wireshark_linux_example_adb.pcapng differ diff --git a/Documentation/components/drivers/special/usbmonitor_wireshark_linux_example_adb.png b/Documentation/components/drivers/special/usbmonitor_wireshark_linux_example_adb.png new file mode 100644 index 0000000000000..7ca5680425405 Binary files /dev/null and b/Documentation/components/drivers/special/usbmonitor_wireshark_linux_example_adb.png differ