Embedded Linux Advanced

course image

Embedded Linux Advanced


This course targets engineers who aim to develop either embedded systems or traditional PC platforms based on the Linux operating system, and specifically those who tend to develop or improve device drivers in the Linux kernel.


The course gives a detailed overview of the internal structure and functionalities of the Linux operating system with emphasis on its usage in embedded systems, such as cars, cellphones, TVs, etc. Through theory, practical labs, and hands-on examples, the course gives the participant essentials of kernel development: (i) kernel architecture, (ii) main kernel APIs, and (iii) integration of device drivers with other kernel subsystems, hardware at the end, and with applications in user space.

Course Topics:
  • Linux introduction
  • Linux Kernel overview
  • Compiling and booting Linux
  • Building Linux-based embedded system
  • Driver Development and debugging
  • Linux device model (Platform devices; Device Tree; Interface in user space, I2C API; Pin-multiplexing;)
  • Kernel framework (The principle of kernel frameworks, The input subsystem)


Hardware: A working computer (recommended configuration 8GB RAM or more, at least Intel i7 CPU or equivalent), Raspberry Pi 2b+ Toolkit including Nintendo Nunchuck joystick.

Software: Windows 10 or later, Virtualization feature enabled in BIOS, Latest Oracle VirtualBox (at least 6.1), Virgine installation

Prior knowledge: Students should have a basic knowledge of the C programming language. The recommendation is that the Embedded Linux course is already taken.