Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sikkiladho/leo
Leo Hypervisor. ARM64 Hypervisor on Raspberry Pi 4 machine.
https://github.com/sikkiladho/leo
arm64 armv8-a baremetal hypervisor raspberry-pi raspberry-pi-4 raspberry-pi-4b raspberrypi virtualisation vmm
Last synced: 3 months ago
JSON representation
Leo Hypervisor. ARM64 Hypervisor on Raspberry Pi 4 machine.
- Host: GitHub
- URL: https://github.com/sikkiladho/leo
- Owner: SikkiLadho
- License: gpl-2.0
- Created: 2021-10-28T12:07:10.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-13T17:05:17.000Z (over 2 years ago)
- Last Synced: 2024-10-11T02:02:17.169Z (3 months ago)
- Topics: arm64, armv8-a, baremetal, hypervisor, raspberry-pi, raspberry-pi-4, raspberry-pi-4b, raspberrypi, virtualisation, vmm
- Language: C
- Homepage:
- Size: 149 KB
- Stars: 28
- Watchers: 1
- Forks: 6
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Generic badge](https://img.shields.io/github/commit-activity/m/sikkiladho/leo)
[![C/C++ CI](https://github.com/SikkiLadho/Leo/actions/workflows/c-cpp.yml/badge.svg)](https://github.com/SikkiLadho/Leo/actions/workflows/c-cpp.yml)# 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,
```shell
sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
```2. Install the 64-bit toolchain for a 64-bit kernel,
```shell
sudo apt install crossbuild-essential-arm64
```3. Compile ARM-trusted-Firmware for Raspiberry Pi,
```shell
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
```4. Copy the `bl31.bin` from [Trusted Firmware-A (TF-A)](https://trustedfirmware-a.readthedocs.io/en/latest/) to the `/boot/` directory on the Raspberry Pi 4B's SD card,
```shell
cp build/rpi4/debug/bl31.bin /media/me/boot/
```5. Rename `kerne8.img` to `el1-kernel.img` in the SD Card's boot directory,
```shell
mv /media/boot/kernel8.img el1-kernel8.img
```6. Compile Leo ARM64 Hypervisor
```shell
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.
7. Add following to /boot/config.txt in Raspberry Pi Model 4B
```txt
enable_uart=1
arm_64bit=1
enable_gic=1
armstub=bl31.bin
initramfs el1-kernel.img 0x400000
```