Using QEMU to Get Started with Embedded Linux
Getting started with embedded Linux can be a daunting task due to the inherent complexity of the Linux kernel; it can also be costly, since generally any sort of driver development and testing requires hardware. QEMU can serve as an alternative to allow engineers to get started with embedded Linux with minimal cost.
In this workshop, Mohammed Billoo will walk through what QEMU is and the different workflows that it enables, with hands-on demonstrations that attendees can follow along. Demonstrations will include setting up QEMU to emulate an ARM-based machine on a x86-based host PC and launching into a terminal, using QEMU to step through the Linux kernel, and developing and testing a simple device driver with device emulation in QEMU.
This workshop has the following prerequisites:
- Install Ubuntu >= 18.04 on your PC (either on bare-metal or as a VM):
- Install qemu-system-arm (sudo apt-get install qemu-system-arm)
- Install your favorite text editor (e.g. nano, vim)
- Clone the buildroot repository on your Ubuntu installation by executing the following from the command line: $> git clone git://git.buildroot.net/buildroot
- Clone the qemu repository on your Ubuntu installation by executing the following from the command line: $> git clone --depth 1 --branch v6.2.0 https://github.com/qemu/qemu.git
- Clone the Linux kernel repository on your Ubuntu installation by executing the following from the command line: $> git clone --depth 1 --branch v5.17 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
What is the primary practical reason Mohammed Billoo recommends using QEMU when getting started with embedded Linux?
Hi Mohammed, thank you for the workshop. What benefits would you say using QEMU has, compared to using a development board to start developing a project, if cost is not a problem? Also, based on your experience, does it makes sense to use QEMU in more complex or simpler projects?
Hi,
Excellent questions! Usually, I use QEMU to test out a driver if I'm running into hardware issues on a custom board, or when I'm waiting for a component/part to arrive. When using a development board, the latter may be more of a reason to use QEMU. I would say it makes more sense to use QEMU for simpler projects, or tasks that are pretty localized, such as when working on a specific driver, kernel module, or kernel feature.
I did not see the setup instructions. Where are they please?
Click into the [Abstract] tab above. see: This workshop has the following prerequisites:
Install Ubuntu >= 18.04 on your PC (either on bare-metal or as a VM):
Install qemu-system-arm (sudo apt-get install qemu-system-arm)
Install your favorite text editor (e.g. nano, vim)
Clone the buildroot repository on your Ubuntu installation by executing the following from the command line: $> git clone git://git.buildroot.net/buildroot
Clone the qemu repository on your Ubuntu installation by executing the following from the command line: $> git clone --depth 1 --branch v6.2.0 https://github.com/qemu/qemu.git
Clone the Linux kernel repository on your Ubuntu installation by executing the following from the command line: $> git clone --depth 1 --branch v5.17 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Never mind... :(











Hi may I know where we can obtain the config and dts files for the digi board?
I was under the impression that the instruction might be under Abstract but that does not seem to be the case