Skip to content
All courses
EMB 220
Term 4
4 credits

Embedded Linux Fundamentals

Students will explore the fundamental architecture of embedded Linux, including bootloaders, the kernel, root filesystems, and device drivers. Practical hands-on experience will be gained through cross-compilation, toolchain usage, and basic system configuration on target hardware. The course aims to equip students with the foundational knowledge necessary to develop and debug embedded Linux applications.

Prerequisites

Course outline

Lectures, virtual labs, and graded assignments — completed in your browser.

01Introduction to Embedded Linux & Course Overviewlecture
02Embedded System Architectures and Linux Fundamentalslecture
03Setting up the Development Host Environment & Toolchainslecture
04Lab 1: Installing Cross-Compilation Toolchains and Building a Simple Hello Worldlab
05Bootloaders (U-Boot) and the Boot Processlecture
06The Linux Kernel: Configuration, Compilation, and Bootinglecture
07Lab 2: Building and Booting a Custom Linux Kernel on a Target Boardlab
08Root Filesystems: BusyBox, Buildroot, and Yocto Project Basicslecture
09Assignment 1: Designing a Minimal Root Filesystem Configurationassignment
10Device Trees and Device Drivers Fundamentalslecture
11Lab 3: Working with Device Tree Overlays for Peripheralslab
12Embedded Application Development and Debugginglecture
13Midterm Review and Q&A Sessionlecture
14Assignment 2: Embedded Linux Final Project Setup and Planassignment

Syllabus

*   **Course Description:** This 4-credit course provides a comprehensive introduction to embedded Linux, covering its architecture, development tools, and practical application in embedded systems. Topics include bootloaders, kernel configuration, root filesystem creation, device tree overlays, cross-compilation, and basic device driver concepts. Students will gain hands-on experience setting up and configuring embedded Linux systems on development boards.
*   **Learning Outcomes:**
    *   Understand the architecture and components of an embedded Linux system, including the bootloader, kernel, and user space.
    *   Be able to set up a cross-compilation environment and build a custom Linux kernel for an embedded target.
    *   Design and create a basic root filesystem for an embedded device using tools like Buildroot or Yocto.
    *   Develop and debug simple applications on an embedded Linux target, utilizing common command-line tools.
    *   Explain the role of device trees and create/modify simple device tree overlays for peripheral integration.
*   **Assessment Breakdown:**
    *   Quizzes: 15%
    *   Lab Assignments: 45%
    *   Midterm Exam: 20%
    *   Final Project/Exam: 20%
*   **Policies:**
    *   **Attendance:** Regular attendance is expected. Students are responsible for all material covered regardless of attendance.
    *   **Late Work:** Late lab assignments may incur a penalty of 10% per day unless prior arrangements are made with the instructor.
    *   **Academic Integrity:** All work submitted must be original. Plagiarism or cheating will result in a failing grade for the assignment and potential disciplinary action.
    *   **Disability Services:** Students with disabilities who may need accommodations in this class are encouraged to contact the Disability Services office early in the semester.