Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Linux Foundation

Debugging Usually Slightly Broken - USB Devices and Drivers

Linux Foundation via YouTube

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Explore USB device and driver debugging techniques in this comprehensive conference talk. Delve into the fundamentals of USB protocol, Linux host-side infrastructure, and driver selection processes. Learn how to modify driver matching rules and monitor USB traffic without expensive analyzers. Gain insights into USB communication sniffing, endpoint types, USB classes, and device configurations. Discover practical tips for automating USB device management, limiting allowed devices, and changing configurations. Investigate common USB driver bugs and explore both commercial and open-source hardware USB sniffers. Master the use of USB Mon and Wireshark for effective USB debugging, equipping yourself with essential skills to tackle USB-related issues in your development projects.

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

Reviews

Start your review of Debugging Usually Slightly Broken - USB Devices and Drivers

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.