Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Coursera

Embedded Linux Essentials Handbook

Packt via Coursera

Overview

Google, IBM & Meta Certificates – 40% Off
One Coursera Plus subscription covers most Professional Certificates on Coursera.
Unlock All Certificates
This book reviews Embedded Linux from the ground up, exploring the different components of Embedded Linux in detail and demonstrating how to build embedded Linux systems for a Raspberry Pi using popular frameworks. This course provides a hands-on introduction to Embedded Linux, covering essential concepts and practical applications. You'll gain experience with real-world projects and simulation tools, preparing you to build and deploy embedded systems effectively. This course is ideal for beginner to intermediate embedded systems engineers and software developers looking to gain hands-on experience with Embedded Linux. A basic understanding of embedded systems, programming in C, C++, or Python, and familiarity with the terminal are recommended. This book is a comprehensive guide to creating a complete Embedded Linux system. It uses hands-on examples to demonstrate different topics. This book starts with the basics of Embedded Linux, describing when to use Embedded Linux and the requirements of an embedded system to support Linux. It dives deeper into individual components and wraps up with CI/CD implementation. This course is based on Embedded Linux Essentials Handbook, by Mohammed Billoo. Packt is one of the world's most prolific publishers of cutting-edge technical content. For over two decades we've made it our mission to curate and publish the knowledge of only the very best technical experts. We focus on real-world courses that help our customers get the job done, with coverage that extends across a wide range of established and cutting-edge technical topics. If you're an individual or an organisation that embraces learning by doing, Packt is the perfect fit for you.

Syllabus

  • Exploring Embedded Linux's Architecture and Its Use Cases
    • This module delves into the architecture of embedded Linux systems, how they differ from traditional Linux, and when they are most effectively used. Learners will explore the boot process, U-Boot, and the Devicetree, gaining practical insights into configuring and understanding embedded environments.
  • Learning About U-Boot
    • This module provides an in-depth look at U-Boot, focusing on its source code structure, command implementation, and how to build and test it using QEMU. Learners will gain practical skills in working with embedded Linux bootloaders and device drivers.
  • Navigating the Linux Kernel
    • This module provides an in-depth exploration of the Linux kernel, including its structure, configuration, and implementation on hardware like the Raspberry Pi 5 and QEMU. Learners will gain practical knowledge on building, compiling, and loading the kernel, as well as understanding its role in embedded systems and device drivers.
  • Describing Hardware Using the Devicetree
    • This module provides an in-depth exploration of the Devicetree structure, its role in Linux kernel interactions, and how to customize hardware through overlays. Learners will gain practical skills in implementing device configurations, validating hardware functionality, and integrating peripheral devices like ADCs, DACs, and GPIOs.
  • Exploring Frameworks to Build an Image
    • This module provides an in-depth look at two popular frameworks for building embedded Linux images-Yocto Project and Buildroot. Learners will explore their structures, tools, and use cases to develop the skills needed to select the most appropriate framework for different hardware requirements.
  • Building an Image Using the Yocto Project
    • This module teaches learners how to build and customize embedded Linux images using the Yocto Project. It covers setting up the build environment, managing layers, and customizing components like the kernel, U-Boot, and final image. Learners will gain practical skills in embedded system development and testing on real and emulated devices.
  • Building an Image Using Buildroot
    • This module guides learners through the process of building and customizing embedded Linux images using Buildroot. It covers setting up the environment, adding custom applications, and configuring U-Boot and the final image. Learners will gain hands-on experience with practical implementation and validation techniques.
  • Building, Debugging, and Launching Applications on Startup
    • This module covers the essential steps for building, debugging, and launching applications on embedded Linux systems. Learners will gain hands-on experience with toolchains, debugging tools like gdbserver and Valgrind, and systemd configuration for automatic application startup.
  • Project 1: Using Python to Build a Web Server to Display Sensor Data
    • This module guides learners through the process of building a web server using Python and Raspberry Pi 5 to display real-time sensor data. It covers sensor data collection, device tree overlays, InfluxDB integration, and Flask web server implementation. By the end, learners will have the skills to create interactive embedded systems for data monitoring.
  • Project 2: Using Qt to Build a Scientific Instrument
    • This module guides learners through the process of building a scientific instrument using Qt for GUI development and C++ for backend implementation. It covers hardware interaction, asynchronous programming, and the integration of sensors with the Raspberry Pi 5. Learners will gain hands-on experience in creating a functional data collection application.
  • Project 3: Using Qt to Build a Medical Device
    • This module teaches learners how to build a user interface for a medical device using the Qt framework. It covers assembling GUI elements, interacting with hardware through synchronous methods, and implementing sensor data handling. By the end, learners will be able to design and implement functional Qt-based medical device interfaces.
  • Debugging the Linux Kernel
    • This module covers essential techniques for debugging the Linux kernel in embedded systems, including the use of kgdb, ftrace, and lockdep. Learners will gain practical skills in identifying and resolving both functional and performance issues, as well as understanding how to trace and prevent deadlocks.
  • Securing Code Execution with eBF
    • This module introduces learners to eBPF as a secure method for executing code in the Linux kernel, focusing on packet and file monitoring. It compares eBPF with its predecessor, cBPF, and explains how to develop and run eBPF applications. Learners will gain hands-on skills in monitoring and securing network traffic using eBPF on a Raspberry Pi 5.
  • Rust in Embedded Linux: The Kernel and Applications
    • This module introduces learners to the fundamentals of using Rust in embedded Linux systems, focusing on memory safety, cross-compilation, and kernel integration. It covers key Rust concepts like ownership and borrowing, and demonstrates how to apply these features in real-world embedded development scenarios.
  • Implementing Continuous Integration/Continuous Delivery (CI/CD)
    • This module provides an in-depth look at implementing CI/CD pipelines for Embedded Linux systems, covering automated builds, Docker for consistency, and GitHub Actions for real-world automation. Learners will understand how to eliminate build variations and streamline software release processes.
  • Looking to the Future
    • This module explores emerging trends in embedded Linux, such as edge AI, real-time capabilities, and asymmetric multiprocessing. Learners will gain insights into how these technologies shape the future of embedded systems and how to adapt to rapid technological changes.

Taught by

Packt - Course Instructors

Reviews

Start your review of Embedded Linux Essentials Handbook

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.