Learn to confidently develop; debug; and deploy robust embedded Linux systems with hands-on examples using BeagleBone and QEMU
Key Features:
- Step-by-step guide from toolchain setup to real-time programming with hands-on implementation
- Practical insights on kernel configuration; device drivers; and memory management
- Covers hardware integration using BeagleBone Black and virtual environments via QEMU
Book Description:
Embedded Linux runs many of the devices we use every day; from smart TVs to WiFi routers; test equipment to industrial controllers - all of them have Linux at their heart. Linux is a core technology in the implementation of the inter-connected world of the Internet of Things.
You will begin by learning about the fundamental elements that underpin all embedded Linux projects: the toolchain; the bootloader; the kernel; and the root filesystem. You'll see how to create each of these elements from scratch; and how to automate the process using Buildroot and the Yocto Project.
Moving on; you'll find out how to implement an effective storage strategy for flash memory chips; and how to install updates to the device remotely once it is deployed. You'll also get to know the key aspects of writing code for embedded Linux; such as how to access hardware from applications; the implications of writing multi-threaded code; and techniques to manage memory in an efficient way. The final chapters show you how to debug your code; both in applications and in the Linux kernel; and how to profile the system so that you can look out for performance bottlenecks.
By the end of the book; you will have a complete overview of the steps required to create a successful embedded Linux system.
What You Will Learn:
- Evaluate the Board Support Packages offered by most manufacturers of a system on chip or embedded module
- Use Buildroot and the Yocto Project to create embedded Linux systems quickly and efficiently
- Update IoT devices in the field without compromising security
- Reduce the power budget of devices to make batteries last longer
- Interact with the hardware without having to write kernel device drivers
- Debug devices remotely using GDB; and see how to measure the performance of the systems using powerful tools such as perk; ftrace; and valgrind
Who this book is for:
This book is for embedded engineers; Linux developers; and computer science students looking to build real-world embedded systems. It suits readers who are familiar with basic Linux use and want to deepen their skills in kernel configuration; debugging; and device integration.
Table of Contents
- Starting out
- Learning about Toolchains
- All about Bootloaders
- Porting and Configuring the Kernel
- Building a Root filesystem
- Selecting a Build System
- Creating a storage strategy
- Updating software in the field
- Interfacing with Device Drivers
- Starting up: the init program
- Power management
- Learning about processes and threads
- Managing Memory
- Debugging with GDB
- Profiling and tracing
- Real time programming