Install Xen and MirageOS Environment on Rasperry Pi 3
Aim
This document records attempts to get the Xen Hypervisor running on a RaspberryPi 3.
Links
- Raspberry Pi 3 on sale now 1.2GHz 64-bit quad-core ARM Cortex-A53 CPU.
- http://wiki.xenproject.org/wiki/Xen_ARM_with_Virtualization_Extensions Seems to meet the requirements described on the Xen site.
- The Cubieboard seems to be a comparable machine and there is a method for running Xen, Ubuntu and Mirage on it. Build an SDcard image for Xen/ARM, for a Cubieboard Could this be forked/modified for the RPi3?
Attempted:
Use Cubieboard Image on Pi (FAILING)
Follow the build instructions for xen-arm-builder.
# bulit in Ubuntu VM
# copy out the img
scp {{user}}@{{vm address}}:xen-arm-builder/cubietruck.img ~/
# insert sd get disk number (n)
diskutil list
# unmount
diskutil unmountDisk /dev/disk{{n}}
# copy to sd
sudo dd bs=8m if=~/cubietruck.img of=/dev/disk{{n}}
Not surprisingly, the Pi doesn't boot.
Install via apt-get in Ubuntu Mate (FAILING):
Ubuntu MATE for the Raspberry Pi 2 and Raspberry Pi 3
Write image to an SD card in (OSX)
diskutil list
diskutil unmountDisk /dev/disk{{x}}
sudo dd bs=8m if=~/mirage-downloads/ubuntu-mate-15.10.3-desktop-armhf-raspberry-pi-2.img of=/dev/disk{{x}}
SSH on to Pi3:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vim
sudo apt-get install xen-hypervisor-4.5-armhf bridge-utils build-essential git
reboot
SSH in:
sudo xl list
# ERROR: Can't find hypervisor information in sysfs!
Can't find hypervisor information in sysfs!
It doesn't appear that there is a grub bootloader on Raspberry Pi Ubuntu Mate.
U-Boot seems to be an alternative and is used on the Cubieboard image.
To try:
- Solo5/Mirage on QEMU in emulation-only mode
- Run Mirage Unikernels on KVM/QEMU with Solo5
- QEMU
- QEMU can be installed on a Linux on RPi QEMU User Emulation
- This would no longer be a Xen based set-up.
- The Solo5/Mirage Unikernel
- Solo5: Building a Unikernel Base from Scratch
From solo5 makefile
sudo qemu-system-x86_64 -s -nographic -name foo -m 1024 -cdrom kernel.iso -net nic,model=virtio -net tap,ifname=veth0,script=kvm-br.bash -drive file=disk.img,if=virtio -boot d
- Solo5 creates a .iso which can be booted using qemu
- Fork xen-arm-builder and create custom Pi3 build.
- Experiment with U-Boot and Linux kernels cross compiled for arm.
- Try the KVM+Solo5 combo
- Ubuntu 14.04 LTS (Trusty Tahr) image for the Raspberry Pi 2
- Alpine Linux