Mastering Embedded Linux Development is designed to be both a learning resource and a reference for your embedded Linux projects. This fourth edition highlights the fundamental elements that underpin all embedded Linux projects—the toolchain, the bootloader, the kernel, and the root filesystem. From downloading and installing a pre-built toolchain to cross-compiling each of the remaining three elements from scratch, this book sets up group for automating the process using Buildroot and the Yocto Project. The book covers over-the-air software updates and rapid prototyping with add-on boards. Two new chapters focus on modern development practices, including Python packaging and deploying containerized applications, followed by a chapter on writing multithreaded code and another on techniques to manage memory efficiently. The final chapters show you how to debug your code, whether it resides in user space or in the Linux kernel itself. In addition to Gnu DeBugger (GDB), the book also covers the different tracers and profilers that are available for Linux so that you can quickly pinpoint any performance bottlenecks in your system. By the end of this book, you will be able to create efficient and secure embedded devices with Linux that will delight your users.
Who is this book for?
If you are a systems software engineer or system administrator who wants to learn how to apply Linux to embedded devices, then this book is for you. The book is also for embedded software engineers accustomed to programming low-power microcontrollers and will help them make the leap to a high-speed system-on-chips that can run Linux. Anyone who develops hardware for Linux will find something useful in this book. But before you get started, you will need a solid grasp of the POSIX standard, C programming, and shell scripting.
What you will learn
- Cross-compile embedded Linux images with Buildroot and Yocto
- Enable Wi-Fi and Bluetooth connectivity with a Yocto board support package
- Update IoT devices securely in the field with Mender or balena
- Prototype peripheral additions by connecting add-on boards, reading schematics, and coding test programs
- Deploy containerized software applications on edge devices with Docker
- Debug devices remotely using GDB and measure the performance of systems using tools like perf and ply