Debugging Usually Slightly Broken (USB) Devices and Drivers
Talkat Embedded Linux Conference + OpenIoT Summit North America 2017 · on Tuesday, 2017-02-21· at 15:00· Skyline II·
summary
Covers USB descriptors, Linux matching and how to force or change bindings by writing to sysfs (for example echo 04e8 6860 > driver/g_serial/new_id), shows using interface authorization and device authorization to block or permit functions, demonstrates building a gadget with ConfigFS on an Odroid and getting a TTY, and uses usbmon + Wireshark to capture transfer-level traffic (notes usbmon shows transfers only, not low-level transactions; hardware analyzers cost more).
AI-written summary · about
chapters (32)
- 0:00Intro
- 1:42This presentation...
- 2:28What USB is about?
- 3:38Endpoints...
- 4:57Endpoint types
- 7:14USB descriptors
- 9:00USB classes
- 10:45Step by step
- 12:00USB Device Details
- 13:11What USB driver really is?
- 14:16How driver is chosen?
- 14:43USB device identity
- 15:54USB Host Big Picture
- 16:46Automation is good...
- 17:54sys/bus/usb/devices/demystified
- 19:17Limit number of allowed devices
- 20:26Use only subset of functionality
- 21:52Change configuration
- 22:10Add Device ID to driver
- 23:14Dynamic IDs formats
- 24:45Bind/Unbind particular interface Check which driver is bound
- 34:08USB bus
- 34:38USB transfer vs transaction
- 35:42USB Request Block
- 37:49Typical USB driver
- 39:06Typical bugs?
- 41:25HW USB sniffers - Commercial
- 42:10HW USB sniffers - Open Hardware
- 42:49USB Mon
- 44:14Data validity
- 44:38Good old friend Wireshark
- 47:54Summary
related talks
40mUSB on Embedded Linux Systems Deep Dive
36mUSB Arsenal for Masses
40mA Tour of USB Device Controller (UDC) in Linux
25mDon't Trust Your USB! How to Find Bugs in USB Device Drivers
28mEmulating Devices in Linux Using Greybus Subsystem
45mBadUSB - On Accessories that Turn Evil
43mThe Tao of Hardware the Te of Implants
33mMaking USB Great Again with USBFILTER
