Course Description

Short Course | 12 hours | 1.2 CEUs

In this hands-on training series, Virtualized Embedded Systems Development, we explore the basics of QEMU, OS installation, QEMU networking, and embedded system development for the ARM architecture. In Part 1 we start with the basics of QEMU including how to use QEMU for a generic Linux OS installation and for networking using OpenVPN and TAP/TUN. Then we’ll dig deeper looking at the embedded domain including cross- compilation of the Linux kernel for ARM, how to boot the kernel for QEMU and how to build a small filesystem and then mount it on the vanilla kernel. We’ll start with emulating the ARM processor for two purposes, one to run an ARM program and then to boot and run the ARM kernel. Next we work with bare-metal programming and explore the need for a bootloader. Then we build an ARM Versatile Platform Baseboard, write some data to the serial port of the processor and test with a bare-metal program which runs directly on the processor. We finish with developing and testing the U-Boot (Universal Bootloader).

Course Outline

  • Basic Use of QEMU
    • Building QEMU from source
    • Creating a New Virtual Machine
    • QEMU networking
  • Compiling QEMU for ARM
  • Obtaining an ARM tool-chain
  • Cross-compiling and running the test program for ARM
  • Building the Linux kernel for ARM
  • Modified kernel for u-boot
  • Bare-metal programming
  • Download and compile U-Boot
  • Boot U-Boot in QEMU


  • Prior experience with TCP/IP, and the Linux command line as well as familiarity with C or C++.


12 hours 

Applies Towards the Following Certificates


Thank you for your interest in this course. Unfortunately, the course you have selected is currently not open for enrollment. Please complete a Course Inquiry or call 314-977-3226 so that we may promptly notify you when enrollment opens.

Required fields are indicated by .
*Academic Unit eligibility to be determined by college/university in which you are enrolled in a degree seeking program.