Skip to Content

Embedded Linux is the leading platform for embedded devices.

This exciting and fast-paced course is designed to give you practical, hands-on experience in writing and debugging Linux-based application programs on real embedded Linux hardware. You will install an embedded linux development environment and learn how to develop both for host and target embedded devices. Using the popular Raspberry Pi 4 board, you will learn how to write user-mode programs, daemons, kernel modules, and even how to configure and build the Linux kernel.
Course Highlights:

  • Explain the Host and Target environments and how they interact
  • Building command-line programs
  • Building services/daemons
  • Building Kernel Modules
  • Building Device Drivers
  • Building the Linux Kernel

Course Learning Outcomes:

  • Ability to set up and use an embedded Linux development environment
  • Execute key commands used with embedded Linux development
  • Access peripheral hardware with or without device drivers
  • Develop of command-line programs
  • Develop services/daemons
  • Develop kernel modules
  • Develop device drivers
  • Configure and build the Linux Kernel

Software: During the first lesson you'll follow the provided links to download and install the software required for the course. All the software is from free and open-source sites.

Hardware: Students are expected to have a Raspberry Pi 4 available from Raspberry Pi or any reputable electronics dealer.

Course Typically Offered: Online in Fall and Spring quarters.

Prerequisites: This course is intended for engineers and programmers involved in developing embedded computing systems and devices using the Linux Operating System. Students unfamiliar with Linux operating system are encouraged to complete the course CSE-41333 Linux Operating System Fundamentals prior to enrolling in this course. Some knowledge of the material covered in CSE-40476 C/C++ Programming II: Dynamic Memory and File I/O Concepts and ECE-40291 Embedded Controller Programming with Embedded C will be helpful to students but not required.

Students who possess proficient knowledge of these prerequisite courses as well as the bullet points below may enroll in this course. (no formal department waiver for the prerequisites is needed)

  • Familiarity with the Linux command line
  • Working knowledge of bash shell
  • Experience with basic digital hardware components such as network and serial ports

Next Step: After completing this course, consider taking other courses in the Embedded Systems Engineering or Linux System Administration certificate programs.

Contact: For more information about this course, please email

Course Number: ECE-40105
Credit: 3.00 unit(s)
Related Certificate Programs: Embedded Systems Engineering

+ Expand All