search
0
cart
close
You have no products in your basket yet
left
Tech Categories
Best Sellers
New Releases
Books
Videos
Audiobooks
Articles
Newsletters
Free Learning
right
Linux Device Driver Development - Second Edition

Linux Device Driver Development: Everything you need to start with device driver development for Linux kernel and embedded Linux, Second Edition

By John Madieu
$43.99 $29.99
Book Apr 2022 708 pages 2nd Edition
eBook
$43.99 $29.99
Print
$54.99
Subscription
$15.99 Monthly
eBook
$43.99 $29.99
Print
$54.99
Subscription
$15.99 Monthly

What do you get with eBook?

Feature icon Instant access to your Digital eBook purchase
Feature icon Download this book in EPUB and PDF formats
Feature icon Access this title in our online reader with advanced features
Feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Apr 21, 2022
Length 708 pages
Edition : 2nd Edition
Language : English
ISBN-13 : 9781803240060
Category :
toc View table of contents toc Preview Book toc Download Code

Key benefits

  • Write feature-rich and customized Linux device drivers for any character, SPI, and I2C device
  • Develop a deep understanding of locking primitives, IRQ management, memory management, DMA, and so on
  • Gain practical experience in the embedded side of Linux using GPIO, IIO, and input subsystems
  • Purchase of the print or Kindle book includes a free eBook in the PDF format

Description

Linux is by far the most-used kernel on embedded systems. Thanks to its subsystems, the Linux kernel supports almost all of the application fields in the industrial world. This updated second edition of Linux Device Driver Development is a comprehensive introduction to the Linux kernel world and the different subsystems that it is made of, and will be useful for embedded developers from any discipline. You'll learn how to configure, tailor, and build the Linux kernel. Filled with real-world examples, the book covers each of the most-used subsystems in the embedded domains such as GPIO, direct memory access, interrupt management, and I2C/SPI device drivers. This book will show you how Linux abstracts each device from a hardware point of view and how a device is bound to its driver(s). You’ll also see how interrupts are propagated in the system as the book covers the interrupt processing mechanisms in-depth and describes every kernel structure and API involved. This new edition also addresses how not to write device drivers using user space libraries for GPIO clients, I2C, and SPI drivers. By the end of this Linux book, you’ll be able to write device drivers for most of the embedded devices out there.

What you will learn

Download, configure, build, and tailor the Linux kernel Describe the hardware using a device tree Write feature-rich platform drivers and leverage I2C and SPI buses Get the most out of the new concurrency managed workqueue infrastructure Understand the Linux kernel timekeeping mechanism and use time-related APIs Use the regmap framework to factor the code and make it generic Offload CPU for memory copies using DMA Interact with the real world using GPIO, IIO, and input subsystems

What do you get with eBook?

Feature icon Instant access to your Digital eBook purchase
Feature icon Download this book in EPUB and PDF formats
Feature icon Access this title in our online reader with advanced features
Feature icon DRM FREE - Read whenever, wherever and however you want
Buy Now

Product Details


Publication date : Apr 21, 2022
Length 708 pages
Edition : 2nd Edition
Language : English
ISBN-13 : 9781803240060
Category :

Table of Contents

23 Chapters
Preface Packt Packt
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Share Your Thoughts
Section 1 -Linux Kernel Development Basics Packt Packt
Section 1 -Linux Kernel Development Basics
Chapter 1: Introduction to Kernel Development Packt Packt
Chapter 1: Introduction to Kernel Development
Setting up the development environment
Configuring and building the Linux kernel
Building and installing modules
Summary
Chapter 2: Understanding Linux Kernel Module Basic Concepts Packt Packt
Chapter 2: Understanding Linux Kernel Module Basic Concepts
An introduction to the concept of modules
Building a Linux kernel module
Handling module parameters
Dealing with symbol exports and module dependencies
Learning some Linux kernel programming tips
Summary
Chapter 3: Dealing with Kernel Core Helpers Packt Packt
Chapter 3: Dealing with Kernel Core Helpers
Linux kernel locking mechanisms and shared resources
Dealing with kernel waiting, sleeping, and delay mechanisms
Understanding Linux kernel time management
Implementing work-deferring mechanisms
Kernel interrupt handling
Summary
Chapter 4: Writing Character Device Drivers Packt Packt
Chapter 4: Writing Character Device Drivers
The concept of major and minor
Character device data structure introduction
Creating a device node
Implementing file operations
Summary
Section 2 - Linux Kernel Platform Abstraction and Device Drivers Packt Packt
Section 2 - Linux Kernel Platform Abstraction and Device Drivers
Chapter 5: Understanding and Leveraging the Device Tree Packt Packt
Chapter 5: Understanding and Leveraging the Device Tree
Understanding the basic concept of the device tree mechanism
Representing and addressing devices
Handling resources
Summary
Chapter 6: Introduction to Devices, Drivers, and Platform Abstraction Packt Packt
Chapter 6: Introduction to Devices, Drivers, and Platform Abstraction
Linux kernel platform abstraction and data structures
Device and driver matching mechanism explained
Summary
Chapter 7: Understanding the Concept of Platform Devices and Drivers Packt Packt
Chapter 7: Understanding the Concept of Platform Devices and Drivers
Understanding the platform core abstraction in the Linux kernel
Dealing with platform devices
Platform driver abstraction and architecture
Example of writing a platform driver from scratch
Summary
Chapter 8: Writing I2C Device Drivers Packt Packt
Chapter 8: Writing I2C Device Drivers
I2C framework abstractions in the Linux kernel
The I2C driver abstraction and architecture
How not to write I2C device drivers
Summary
Chapter 9: Writing SPI Device Drivers Packt Packt
Chapter 9: Writing SPI Device Drivers
Understanding the SPI framework abstractions in the Linux kernel
Dealing with the SPI driver abstraction and architecture
Learning how not to write SPI device drivers
Summary
Section 3 - Making the Most out of Your Hardware Packt Packt
Section 3 - Making the Most out of Your Hardware
Chapter 10: Understanding the Linux Kernel Memory Allocation Packt Packt
Chapter 10: Understanding the Linux Kernel Memory Allocation
An introduction to Linux kernel memory-related terms
Demystifying address translation and MMU
Working with I/O memory to talk to hardware
Memory (re)mapping
Summary
Chapter 11: Implementing Direct Memory Access (DMA) Support Packt Packt
Chapter 11: Implementing Direct Memory Access (DMA) Support
Setting up DMA mappings
Introduction to the concept of completion
Working with the DMA engine's API
Putting it all together – Single-buffer DMA mapping
A word on cyclic DMA
Understanding DMA and DT bindings
Summary
Chapter 12: Abstracting Memory Access – Introduction to the Regmap API: a Register Map Abstraction Packt Packt
Chapter 12: Abstracting Memory Access – Introduction to the Regmap API: a Register Map Abstraction
Introduction to the Regmap data structures
Handling Regmap initialization
Using Regmap register access functions
Regmap-based SPI driver example – putting it all together
Leveraging Regmap from the user space
Summary
Chapter 13: Demystifying the Kernel IRQ Framework Packt Packt
Chapter 13: Demystifying the Kernel IRQ Framework
Brief presentation of interrupts
Understanding interrupt controllers and interrupt multiplexing
Diving into advanced peripheral IRQ management
Demystifying per-CPU interrupts
Summary
Chapter 14: Introduction to the Linux Device Model Packt Packt
Chapter 14: Introduction to the Linux Device Model
Introduction to LDM data structures
Getting deeper inside LDM
Overview of the device model from sysfs
Summary
Section 4 - Misc Kernel Subsystems for the Embedded World Packt Packt
Section 4 - Misc Kernel Subsystems for the Embedded World
Chapter 15: Digging into the IIO Framework Packt Packt
Chapter 15: Digging into the IIO Framework
Introduction to IIO data structures
Integrating IIO triggered buffer support
Accessing IIO data
Dealing with the in-kernel IIO consumer interface
Writing user-space IIO applications
Walking through user-space IIO tools
Summary
Chapter 16: Getting the Most Out of the Pin Controller and GPIO Subsystems Packt Packt
Chapter 16: Getting the Most Out of the Pin Controller and GPIO Subsystems
Introduction to some hardware terms
Introduction to the pin control subsystem
Dealing with the GPIO controller interface
Getting the most out of the GPIO consumer interface
Learning how not to write GPIO client drivers
Summary
Chapter 17: Leveraging the Linux Kernel Input Subsystem Packt Packt
Chapter 17: Leveraging the Linux Kernel Input Subsystem
Introduction to the Linux kernel input subsystem – its data structures and APIs
Allocating and registering an input device
Using polled input devices
Generating and reporting input events
Handling input devices from the user space
Summary
Why subscribe?
Other Books You May Enjoy Packt Packt
Other Books You May Enjoy
Packt is searching for authors like you
Share Your Thoughts
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQS

How do I buy and download an eBook? Packt Packt

Where there is an eBook version of a title available, you can buy it from the book details for that title. Add either the standalone eBook or the eBook and print book bundle to your shopping cart. Your eBook will show in your cart as a product on its own. After completing checkout and payment in the normal way, you will receive your receipt on the screen containing a link to a personalised PDF download file. This link will remain active for 30 days. You can download backup copies of the file by logging in to your account at any time.

If you already have Adobe reader installed, then clicking on the link will download and open the PDF file directly. If you don't, then save the PDF file on your machine and download the Reader to view it.

Please Note: Packt eBooks are non-returnable and non-refundable.

Packt eBook and Licensing When you buy an eBook from Packt Publishing, completing your purchase means you accept the terms of our licence agreement. Please read the full text of the agreement. In it we have tried to balance the need for the ebook to be usable for you the reader with our needs to protect the rights of us as Publishers and of our authors. In summary, the agreement says:

  • You may make copies of your eBook for your own use onto any machine
  • You may not pass copies of the eBook on to anyone else
How can I make a purchase on your website? Packt Packt

If you want to purchase a video course, eBook or Bundle (Print+eBook) please follow below steps:

  1. Register on our website using your email address and the password.
  2. Search for the title by name or ISBN using the search option.
  3. Select the title you want to purchase.
  4. Choose the format you wish to purchase the title in; if you order the Print Book, you get a free eBook copy of the same title. 
  5. Proceed with the checkout process (payment to be made using Credit Card, Debit Cart, or PayPal)
Where can I access support around an eBook? Packt Packt
  • If you experience a problem with using or installing Adobe Reader, the contact Adobe directly.
  • To view the errata for the book, see www.packtpub.com/support and view the pages for the title you have.
  • To view your account details or to download a new copy of the book go to www.packtpub.com/account
  • To contact us directly if a problem is not resolved, use www.packtpub.com/contact-us
What eBook formats do Packt support? Packt Packt

Our eBooks are currently available in a variety of formats such as PDF and ePubs. In the future, this may well change with trends and development in technology, but please note that our PDFs are not Adobe eBook Reader format, which has greater restrictions on security.

You will need to use Adobe Reader v9 or later in order to read Packt's PDF eBooks.

What are the benefits of eBooks? Packt Packt
  • You can get the information you need immediately
  • You can easily take them with you on a laptop
  • You can download them an unlimited number of times
  • You can print them out
  • They are copy-paste enabled
  • They are searchable
  • There is no password protection
  • They are lower price than print
  • They save resources and space
What is an eBook? Packt Packt

Packt eBooks are a complete electronic version of the print edition, available in PDF and ePub formats. Every piece of content down to the page numbering is the same. Because we save the costs of printing and shipping the book to you, we are able to offer eBooks at a lower cost than print editions.

When you have purchased an eBook, simply login to your account and click on the link in Your Download Area. We recommend you saving the file to your hard drive before opening it.

For optimal viewing of our eBooks, we recommend you download and install the free Adobe Reader version 9.