Overview
Syllabus
Intro
This presentation...
What USB is about?
Endpoints...
Endpoint types
USB descriptors
USB classes
Step by step
USB Device Details
Which configuration is the most suitable?
What USB driver really is?
How driver is chosen?
USB device identity
USB Host Big Picture
Automation is good...
sys/bus/usb/devices/demystified
Limit number of allowed devices
Use only subset of functionality
Change configuration
Add Device ID to driver
Dynamic IDs formats
Bind/Unbind particular interface Check which driver is bound
USB bus
USB transfer vs transaction
USB Request Block
Typical USB driver
Typical bugs?
HW USB sniffers - Commercial
HW USB sniffers - Open Hardware
USB Mon
Data validity
Good old friend Wireshark
Summary
Taught by
Linux Foundation