Linux USB subsystem, drivers explained
Jan 23, 2007 — by LinuxDevices Staff — from the LinuxDevices Archive — 3 viewsA free presentation about writing Linux drivers for USB devices is available for download from Free Electrons, a French embedded Linux training and consulting firm. The 92-page presentation is available in English, in several document formats, under a Copyleft license.
Free Electrons publishes all the tutorials and training presentations that it produces under the Creative Commons ShareAlike 2.5 license. This allows the material to be studied by anyone, and even used by other trainers, provided they acknowledge the original author and keep the license for any edited or enhanced versions they produce.
Michael Opdenacker, author of the USB driver presentation, stated, “These new slides give details about the Linux USB implementation and the data structure it uses. They explain the API to create, transmit, and process the completion of USB Request Blocks. And, they detail the resources a driver needs to register to support a USB device.”
Opdenacker adds:
Do you need to write a Linux driver for a new USB device? Did you ask for help on a community mailing list, but the answer was “Use the Source, Luke?”
This was wise advice. The Linux sources contain hundreds of USB driver sources which you can learn from. You are also likely to find code for devices which are pretty similar to yours. You could reuse some of this code for your device!
Now, you realize how fortunate you are compared to when you had to write the equivalent driver for a proprietary operating system. The only documentation you could find was the OS driver manual, and there was just one example from that manual. In addition, you couldn't even reuse that sample driver code, as it was copyright-protected by the OS vendor!
Now, you should be ready to use the Source. Just the Source? Some documentation would still help in understanding existing code faster. Fortunately, an increasing number of documentation sources exist for Free and Open Source Software, like the new USB training slides from Free Electrons.
Availability
Free Electron's 92-page USB driver presentation is available for download in PDF, OO.org, and HTML formats, here. Also available is a brief 4-page lab exercise demonstrating how USB module loading is automated under Linux, and how USB drivers are registered.
Free presentations on USB host controllers and USB gadget drivers are planned for the future, added Opdenacker.
New Year's card
Additionally, Free Electons has made its excellent Year of the Penguin New Year's card design (depicted below) available under the ShareAlike license.
Free Electrons's free New Year's card design
Opdenacker said, “Free Electrons sends its best wishes to the whole user and developer community. Just like everything produced by Free Electrons, this card is available under a free license. You can reuse it if you like it!”
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.