SkillAgentSearch skills...

Leo

Leo Hypervisor. ARM64 Hypervisor on Raspberry Pi 4 machine.

Install / Use

/learn @SikkiLadho/Leo

README

Generic badge C/C++ CI

Leo Hypervisor

Leo is a Type 1 Hypervisor for the Raspberry Pi 4.

Set Up

This setup was tested on Debian.

  1. Install the required dependencies and toolchain,
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
  1. Install the 64-bit toolchain for a 64-bit kernel,
sudo apt install crossbuild-essential-arm64
  1. Compile ARM-trusted-Firmware for Raspiberry Pi,
git clone https://github.com/ARM-software/arm-trusted-firmware.git
cd arm-trusted-firmware/
CROSS_COMPILE=aarch64-linux-gnu- make PLAT=rpi4 DEBUG=1
  1. Copy the bl31.bin from Trusted Firmware-A (TF-A) to the /boot/ directory on the Raspberry Pi 4B's SD card,
cp build/rpi4/debug/bl31.bin /media/me/boot/
  1. Rename kerne8.img to el1-kernel.img in the SD Card's boot directory,
mv /media/boot/kernel8.img el1-kernel8.img
  1. Compile Leo ARM64 Hypervisor
git clone https://github.com/sikkiladho/leo.git leo
cd leo
make

You will get the kernel8.img binary, which is the hypervisor binary. Copy it to you SD Card.

  1. Add following to /boot/config.txt in Raspberry Pi Model 4B
enable_uart=1
arm_64bit=1
enable_gic=1
armstub=bl31.bin
initramfs el1-kernel.img 0x400000
View on GitHub
GitHub Stars39
CategoryDevelopment
Updated3d ago
Forks8

Languages

C

Security Score

95/100

Audited on Apr 1, 2026

No findings