

The following command starts a virtual machine and redirects stdin/stdout directly to its serial console (in this case an emulated PL011). I also made a squahfs image of the same rootfs.

The initramfs (cpio.gz) archive ended up being just slightly above 700kB. #require conf/machine/include/tune-arm1136jf-s.inc

+require conf/machine/include/tune-cortexa7.inc require conf/machine/include/tune-arm926ejs.inc PREFERRED_PROVIDER_virtual/kernel="linux-yocto"ĮXTRA_IMAGE_FEATURES ?= "debug-tweaks read-only-rootfs"Īnd adjusted the machine (meta/conf/machine/nf) slightly to suit my hardware virtualization needs: +++ -3,10 +3,11 arm_versatile_926ejs I used the following nf configuration: MACHINE ?= "qemuarm" I ended up building Yocto Project’s “poky-tiny” distribution. I found it useful to look into Qemu’s “virt” machine setup code ( hw/arm/virt.c) to understand what peripherals are actually emulated (and hence what drivers are actually required).Īs root file system I was looking for something which I easily can spawn multiple images with, e.g. I built a custom kernel directly using v4.7 sources and a modified/stripped down version of the vexpress_defconfig ( virt_guest_defconfig). Virtualization guest setupįor the virtualization guest setup I was looking for something minimalistic. I uploaded the compiled binary of the Kernel (as tared zImage) and initramfs (as cpio.gz). I let Qemu v2.6.0 preinstall (by just adding “qemu” to the image and specifying ANGSTROM_QEMU_VERSION = “2.6.0” in conf/distro/angstrom-v2015.12.conf). Since I run my experiments on a Toradex Colibri iMX7D module, I started with the v4.1 configuration of the BSP kernel and updated that to v4.8 plus enabled KVM as well as KSM (Kernel same-page merging).Īs root file system I use a slightly modified version of the Ångström distributions “development-image”, version 2015.12 (built from scratch with OpenEmbedded). Any recent ARM root file system should do it. The Kernel configuration I used for my platforms Host kernel can be found here. This is part two of my blog post about Kernel-Virtual Machine (KVM) on a 32-Bit ARM architecture. The post is meant as a starting point for those who want to play with KVM and provide a useful collection of Qemu commands for virtualization.
