aboutsummaryrefslogtreecommitdiffstats

UXNPI

This is a port of the UXN virtual machine for running on the Raspberry Pi 3/4 without OS (baremetal).

Building from source

To build this software you need a compiler for the aarch64 architecture. More specifically you will need the following programs in your path:

aarch64-elf-as
aarch64-elf-gcc
aarch64-elf-ld
aarch64-elf-objcopy

You can follow the instruction for installing these with your package manager of choice or build them from source.

Additionally you may want to test the compiled software with an emulator, since testing on real hardware can be a bit of a hassle. Luckily, you can use qemu for this. You will need to install qemu-system-aarch64 for this to work.

With all of this ready, you should be able to run make for compiling the kernel image and/or make run to run the kernel on a qemu VM.

To see framebuffer output from qemu, you will need a VNC client. When developing this project I keep gvncviewer running at regular intervals so that when qemu is executed it automatically connects to the screen viewer:

while true; do gvncviewer ::1:5900; sleep 1; done

Note that qvncviewer by default smooths the output so if things look weird just make sure you disable smooths scaling and keep the original aspect ratio.