Linux Device Drivers Development
Packt Publishing Limited (Verlag)
978-1-78528-000-9 (ISBN)
Key Features
Develop custom drivers for I2C, SPI, GPIO, RTC, and input devices using modern Linux kernel APIs
Learn memory management, IRQ handling, DMA, and the device tree through hands on examples
Explore embedded driver development with platform drivers, regmap, and IIO frameworks
Book DescriptionLinux kernel is a complex, portable, modular and widely used piece of software, running on around 80% of servers and embedded systems in more than half of devices throughout the World. Device drivers play a critical role in how well a Linux system performs. As Linux has turned out to be one of the most popular operating systems used, the interest in developing proprietary device drivers is also increasing steadily.
This book will initially help you understand the basics of drivers as well as prepare for the long journey through the Linux Kernel. This book then covers drivers development based on various Linux subsystems such as memory management, PWM, RTC, IIO, IRQ management, and so on. The book also offers a practical approach on direct memory access and network device drivers.
By the end of this book, you will be comfortable with the concept of device driver development and will be in a position to write any device driver from scratch using the latest kernel version (v4.13 at the time of writing this book).What you will learn
Use kernel facilities to develop powerful drivers
Develop drivers for widely used I2C and SPI devices and use the regmap API
Write and support devicetree from within your drivers
Program advanced drivers for network and frame buffer devices
Delve into the Linux irqdomain API and write interrupt controller drivers
Enhance your skills with regulator and PWM frameworks
Develop measurement system drivers with IIO framework
Get the best from memory management and the DMA subsystem
Access and manage GPIO subsystems and develop GPIO controller drivers
Who this book is forThis book is ideal for embedded systems developers, engineers, and Linux enthusiasts who want to learn how to write device drivers from scratch. Whether you're new to kernel development or looking to deepen your understanding of subsystems like I2C, SPI, and IRQs, this book provides practical, real-world instructions tailored for working with embedded Linux platforms. Foundational knowledge of C and basic Linux concepts is recommended.
John Madieu is an embedded Linux and kernel engineer living in Paris, France. His main activities consist of developing device drivers and Board Support Packages (BSPs) for companies in domains such as IoT, automation, transport, healthcare, energy, and the military. John is the founder and chief consultant at LABCSMART, a company that provides training and services for embedded Linux and Linux kernel engineering. He is an open source and embedded systems enthusiast, convinced that it is only by sharing knowledge that we can learn more. He is passionate about boxing, which he practiced for 6 years professionally, and continues to channel this passion through training sessions that he provides voluntarily.
Table of Contents
Introduction to Kernel Development
Device Driver Basis
Kernel Facilities and Helper Functions
Character Device Drivers
Platform Device Drivers
The Concept of Device Tree
I2C Client Drivers
SPI Device Drivers
Regmap API - A Register Map Abstraction
IIO Framework
Kernel Memory Management
DMA
Linux Device Model
Pin Control and GPIO Subsystem
GPIO Controller Drivers
Advanced IRQ Management
Input Devices Drivers
RTC Drivers
PWM Drivers
Regulator Framework
Framebuffer Drivers
Network Interface Card Drivers
| Erscheinungsdatum | 25.10.2017 |
|---|---|
| Verlagsort | Birmingham |
| Sprache | englisch |
| Maße | 191 x 235 mm |
| Themenwelt | Informatik ► Betriebssysteme / Server ► Unix / Linux |
| ISBN-10 | 1-78528-000-7 / 1785280007 |
| ISBN-13 | 978-1-78528-000-9 / 9781785280009 |
| Zustand | Neuware |
| Informationen gemäß Produktsicherheitsverordnung (GPSR) | |
| Haben Sie eine Frage zum Produkt? |
aus dem Bereich