Linux Device Driver Development Cookbook: Develop custom drivers for your embedded Linux applications

Linux Device Driver Development Cookbook: Develop custom drivers for your embedded Linux applications

English | 2019 | ISBN: 978-1838558802 | 356 Pages | PDF, EPUB | 30 MB

Over 30 recipes to develop custom drivers for your embedded Linux applications.
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
Homepage