Linux Device Driver Development Cookbook

Linux Device Driver Development Cookbook
Downloaded: 298 times

**Over 30 recipes to develop custom drivers for your embedded Linux applications.**

Key Features

Use Kernel facilities to develop powerful drivers

Via a practical approach, learn core concepts of developing device drivers

Program a custom character device to get access to kernel internals

Book Description

Linux is a unified kernel that is widely used to develop embedded systems. As Linux has turned out to be one of the most popular operating systems used, the interest in developing proprietary device drivers has also increased. Device drivers play a critical role in how the system performs and ensures that the device works in the manner intended.

By offering several examples on the development of character devices and how to use other kernel internals, such as interrupts, kernel timers, and wait queue, as well as how to manage a device tree, you will be able to add proper management for custom peripherals to your embedded system. You will begin by installing the Linux kernel and then configuring it. Once you have installed the system, you will learn to use the different kernel features and the character drivers. You will also cover interrupts in-depth and how you can manage them. Later, you will get into the kernel internals required for developing applications. Next, you will implement advanced character drivers and also become an expert in writing important Linux device drivers.

By the end of the book, you will be able to easily write a custom character driver and kernel code as per your requirements.

What you will learn

Become familiar with the latest kernel releases (4.19+/5.x) running on the ESPRESSObin devkit, an ARM 64-bit machine

Download, configure, modify, and build kernel sources

Add and remove a device driver or a module from the kernel

Master kernel programming

Understand how to implement character drivers to manage different kinds of computer peripherals

Become well versed with kernel helper functions and objects that can be used to build kernel applications

Acquire a knowledge of in-depth concepts to manage custom hardware with Linux from both the kernel and user space

Who this book is for

This book will help anyone who wants to develop their own Linux device drivers for embedded systems. Having basic hand-on with Linux operating system and embedded concepts is necessary.

Table of Contents

Installing the developing system

A Peek Inside the Kernel

Working with Char drivers

Using the Device Tree

Managing Interrupts and Concurrency

Miscellaneous Kernel Internals

Advanced Char Driver Operations

(Appendix A): Additional Information on Working with Char Drivers

(Appendix B): Additional Information on using the Device Tree

(Appendix C): Additional Information on managing Interrupts and Concurrency on

(Appendix D): Additional Information on miscellaneous Kernel Internals

(Appendix E): Additional Information on advanced Char Driver Operations