𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Linux Driver Development with Raspberry Pi - Practical Labs

✍ Scribed by Alberto Liberal de los Ríos


Publisher
Independently published
Year
2021
Tongue
English
Leaves
648
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Linux Driver Development with Raspberry Pi - Practical Labs

Embedded systems have become an integral part of our daily life. They are deployed in mobile devices, networking infrastructure, home and consumer devices, digital signage, medical imaging, automotive infotainment and many other industrial applications. The use of embedded systems is growing exponentially. Many of these embedded systems are powered by an inexpensive yet powerful system-on-chip (SoC) that is running a Linux operating system. The BCM2837 from Broadcom is one of these SoCs, running quad ARM Cortex A53 cores at 1.2GHz. This is the SoC used in the popular Raspberry Pi 3 boards.

This book follows the learning by doing approach, so you will be playing with your Raspberry Pi since the first chapter. Besides the Raspberry Pi board, you will use several low-cost boards to develop the hands-on examples. In the labs, it is described what each step means in detail so that you can use your own hardware components adapting the content of the book to your needs.

You will learn how to develop Linux drivers for the Raspberry Pi boards. You will start with the simplest ones that do not interact with any external hardware, then you will develop Linux drivers that manage different kind of devices: Accelerometer, DAC, ADC, RGB LED, Buttons, Joystick controller, Multi-Display LED controller and I/O expanders controlled via I2C and SPI buses. You will also develop DMA drivers, USB device drivers, drivers that manage interrupts and drivers that write and read on the internal registers of the SoC to control its GPIOs. To ease the development of some of these drivers, you will use different types of Linux kernel subsystems: Miscellaneous, LED, UIO, USB, Input and Industrial I/O. More than 30 kernel modules have been written (besides several user applications), which can be downloaded from the book's GitHub repository.

This book uses the Long Term Support (LTS) Linux kernel 5.4, which was released on November 2019 and will be maintained until December 2025. The Linux drivers and applications developed in the labs have been ported to three different Raspberry Pi boards: Raspberry Pi 3 Model B, Raspberry Pi 3 Model B+ and Raspberry Pi 4 Model B.

This book is a learning tool to start developing drivers without any previous knowledge about this field, so the intention during its writing has been to develop drivers without a high level of complexity that both serve to reinforce the main driver development concepts and can be a starting point to help you to develop your own drivers. And, remember that the best way to develop a driver is not to write it from scratch. You can reuse free code from similar Linux kernel mainline drivers. All the drivers written throughout this book are GPL licensed, so you can modify and redistribute them under the same license.

✦ Table of Contents


Table of Contents
Preface
Chapter 1: Building the System
Chapter 2: The Linux Device and Driver Model
Chapter 3: The Simplest Drivers
Chapter 4: Character Drivers
Chapter 5: Platform Drivers
Chapter 6: I2C Client Drivers
Chapter 7: Handling Interrupts in Device Drivers
Chapter 8: Allocating Kernel Memory
Chapter 9: DMA in Device Drivers
Chapter 10: Input Subsystem
Chapter 11: Industrial I/O Subsystem
Chapter 12: Using the Regmap API in Device Drivers
Chapter 13: USB Device Drivers
References
Index


πŸ“œ SIMILAR VOLUMES


Linux Driver Development with Raspberry
✍ Alberto Liberal de los RΓ­os πŸ“‚ Library πŸ“… 2021 πŸ› Independently published 🌐 English

<p><b>Linux Driver Development with Raspberry Pi - Practical Labs</b></p><p>Embedded systems have become an integral part of our daily life. They are deployed in mobile devices, networking infrastructure, home and consumer devices, digital signage, medical imaging, automotive infotainment and many o

Practical Linux with Raspberry Pi OS: Qu
✍ Ashwin Pajankar πŸ“‚ Library πŸ“… 2021 πŸ› Apress 🌐 English

Quickly start programming with Linux while learning the Raspberry Pi OS―the Linux distribution designed specifically for low-cost Raspberry Pis. This short guide reviews Linux commands, GUI, and shell scripting in a holistic manner by diving into both advanced and day-to-day tasks using the Raspberr

Practical Linux with Raspberry Pi OS: Qu
✍ Ashwin Pajankar πŸ“‚ Library πŸ“… 2021 πŸ› Apress 🌐 English

Quickly start programming with Linux while learning the Raspberry Pi OS―the Linux distribution designed specifically for low-cost Raspberry Pis. This short guide reviews Linux commands, GUI, and shell scripting in a holistic manner by diving into both advanced and day-to-day tasks using the Raspberr

Practical Linux with Raspberry Pi OS: Qu
✍ Ashwin Pajankar πŸ“‚ Library πŸ“… 2021 πŸ› Apress 🌐 English

<span>Quickly start programming with Linux while learning the Raspberry Pi OS―the Linux distribution designed specifically for low-cost Raspberry Pis. This short guide reviews Linux commands, GUI, and shell scripting in a holistic manner by diving into both advanced and day-to-day tasks using the Ra

Learn Raspberry Pi with Linux
✍ P Membrey, D Hows πŸ“‚ Library πŸ“… 2012 πŸ› Apress 🌐 English

Learn Raspberry Pi with Linux will tell you everything you need to know about the Raspberry Pi's GUI and command line so you can get started doing amazing things. You'll learn how to set up your new Raspberry Pi with a monitor, keyboard and mouse, and you'll discover that what may look unfamiliar in