Embedded Linux Development using Yocto Projects(Second Edition)
上QQ阅读APP看书,第一时间看更新

Running images in QEMU

As many projects have a small portion that is hardware dependent, the hardware emulation comes to speed up the development process by enabling a test run without involving any actual hardware.

Quick EMUlator (QEMU) is a free and open source software package that performs hardware virtualization. The QEMU-based machines allow test and development without real hardware. Currently, the ARM, ARM64, MIPS, MIPS64, PowerPC, and x86 and x86-64 emulations are supported.

The runqemu script enables and makes use of QEMU with the OpenEmbedded-Core supported machines easier. The way to run the script is as follows:

$ runqemu <machine> <zimage> <filesystem>

Here, <machine> is the machine/architecture to be used as qemuarm, qemumips, qemuppc, qemux86, or qemux86-64. Also, <zimage> is the path to a kernel (for example, zimage-qemuarm.bin). Finally, <filesystem> is the path to an ext3 image (for example, filesystem-qemuarm.ext3) or an NFS directory. The parameters <zimage> and <filesystem> are optional.

So, for example, in case we run runqemu qemuarm core-image-full-cmdline, we can see something as shown in the following screenshot:


We can log in to the root account using an empty password. The system behaves as a regular system even being used inside the QEMU. The process to deploy an image in a real hardware varies depending on the type of storage used, bootloader, and so on. However, the process to generate the image is the same. We explore how to build and run an image in the BeagleBone Black, Raspberry Pi 3, and Wandboard machines in Chapter 14, Booting Our Custom Embedded Linux.