Introduction to Linux kernel driver programming
This introductory presentation will explain the Device Model, the mechanism that the Linux kernel offers to bind drivers to devices and to expose each device to userspace. Even though the way to detect or describe devices can depend on the bus or CPU architecture, the infrastructure binding devices with drivers is universal and therefore applies to all types of device drivers in the Linux kernel. Similarly, exposing devices to userspace always follows the same philosophy.
This session won’t have practical labs but will be illustrated by studying several types of drivers, showing various ways of managing multiple devices in the same driver, and implementing the references between devices managed by a bus and devices that userspace sees. Of course, the use of the Device Tree will play an essential part of the picture. Even though there are neither trees nor kernels in Antarctica, penguins love them!
Michael Opdenacker is the founder of Bootlin, an engineering company specializing on cool embedded Linux integration and porting projects. Through Bootlin, he has contributed to the LWD (Linux World Domination) project by training hundreds of engineers from all around the world on embedded Linux and its kernel. By the way, all training materials and conference presentations from Bootlin are freely available on http://bootlin.com/docs/