YoVDO

Debugging Usually Slightly Broken - USB Devices and Drivers

Offered By: Linux Foundation via YouTube

Tags

Conference Talks Courses Linux Courses

Course Description

Overview

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

Tags

Related Courses

Introduction to Linux
Linux Foundation via edX
操作系统原理(Operating Systems)
Peking University via Coursera
Internet of Things: Setting Up Your DragonBoard™ Development Platform
University of California, San Diego via Coursera
Information Security-3
Indian Institute of Technology Madras via Swayam
Introduction to Embedded Systems Software and Development Environments
University of Colorado Boulder via Coursera