Running KVM on Arndale Exynos boards
This page covers bringing up KVM on the Arndale boards, and references git branches that have some Arndale patches in. For a general ARM KVM implementation against mainline please see:
https://github.com/virtualopensystems/linux-kvm-arm.git branch kvm-arm-master-hugetlb
Before booting the kernel, one needs a hypervisor-enabled u-boot. A clone of Rony's u-boot tree with Christoffer Dall's modifcations can be found at:
Build & installation instructions as per Rony's .
Kernel - hypervisor
A clone of Christoffer's Arndale KVM tree with my NUMA patches applied, can be found at:
A more recent set of ARM KVM sources for the Arndale can be found at:
The KVM configuration can be found in: arndale_kvm_defconfig
Kernel and dt installed as per .
As a heads-up, the device tree has some extra timer information required for KVM; so do make sure to re-install the dt.
I opted to use kvmtool to manage kvm guests. The source tree I used was:
The source for kvmtool can be found in tools/kvm. I built this and copied the lkvm binary somewhere safe.
Kernel - guest
To run a guest under kvmtool, one requires mach-virt support. This can be found in 3.9-rc1.
I used the vexpress_defconfig and enabled the following extra options:
"System Type->Dummy Virtual Machine" (ARCH_VIRT)
"Device Drivers->Virtio Drivers" (VIRTIO)
"Device Drivers->Virtio Drivers->Virtio balloon driver" (VIRTIO_BALLOON)
"Device Drivers->Virtio Drivers->Platform bus driver for memory mapped virtio devices" (VIRTIO_MMIO)
"Device Drivers->Block Devices->Virtio block driver" (VIRTIO_BLK)
"Device Drivers->Character Devices->Virtio console" (VIRTIO_CONSOLE)
"Device Drivers->Network device support->Virtio network driver" (VIRTIO_NET)
Running the guest
One can fire up a guest vm via: ./lkvm run ./kvmtool/arch/arm/boot/zImage --network trans=mmio,mode=user --console virtio -d ./disk.img -p "console=hvc0,38400 rw root=/dev/vda1"
Console output will appear from the guest in the current window.
To stop all guests running one can invoke: ./lkvm stop --all
To debug a guest, one can run the following: ./lkvm debug -a -d (this displays the PC & LR of all the CPUs in the guests).
LEG/Engineering/Kernel/KVM (last modified 2013-07-31 01:24:53)