Anatomy of the USB Subsystem
The Linux kernel contains a complete subsystem for creating the device end of a USB connection. This means a capable embedded Linux system can look like a thumb drive, HID device, serial device, video device, audio device, or other type of device using a range of built-in drivers. It’s also possible to create custom drivers for moving data to and from custom devices. This presentation and hands-on lab will describe some of the basics of USB and then describe how to create USB devices using the Linux gadget subsystem and communicate with them from a host using libusb.
Alan started programming when he was four years old on his dad’s Commodore 64 and began using Linux in the mid-90s while in high school. He currently works for SoftIron, a Silicon Valley startup making the world’s finest appliances for the data center. Alan is the creator and maintainer of M-Stack, a free and open source USB device stack for PIC microcontrollers, and HIDAPI, a cross-platform host-side USB HID library; and is a contributor to the Linux kernel in the areas of USB and 802.15.4. He has presented at Microchip MASTERs, at Embedded Linux Conference in the US and Europe, and as an instructor for the Linux Foundation.