aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-09-08 18:21:11 +0200
committerBad Diode <bd@badd10de.dev>2021-09-08 18:21:11 +0200
commitf344c83420d43193fd630012613a04085f4b1918 (patch)
tree51bb4c0e718a01c03a4d086032e843213eb51eab
parente98ffd3a32cff5d367d360be9ebe2d1e1a416054 (diff)
downloaduxnrpi-f344c83420d43193fd630012613a04085f4b1918.tar.gz
uxnrpi-f344c83420d43193fd630012613a04085f4b1918.zip
Add README
-rw-r--r--README.md39
1 files changed, 39 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..22f99ce
--- /dev/null
+++ b/README.md
@@ -0,0 +1,39 @@
1# UXNPI
2
3This is a port of the [UXN virtual machine][uxn] for running on the Raspberry Pi
43/4 without OS (baremetal).
5
6[uxn]: https://wiki.xxiivv.com/site/uxn.html
7
8## Building from source
9
10To build this software you need a compiler for the aarch64 architecture. More
11specifically you will need the following programs in your path:
12
13```
14aarch64-elf-as
15aarch64-elf-gcc
16aarch64-elf-ld
17aarch64-elf-objcopy
18```
19
20You can follow the instruction for installing these with your package manager of
21choice or [build them from source](https://github.com/bztsrc/raspi3-tutorial/tree/master/00_crosscompiler).
22
23Additionally you may want to test the compiled software with an emulator, since
24testing on real hardware can be a bit of a hassle. Luckily, you can use qemu for
25this. You will need to install `qemu-system-aarch64` for this to work.
26
27With all of this ready, you should be able to run `make` for compiling the
28kernel image and/or `make run` to run the kernel on a qemu VM.
29
30To see framebuffer output from qemu, you will need a VNC client. When developing
31this project I keep `gvncviewer` running at regular intervals so that when qemu
32is executed it automatically connects to the screen viewer:
33
34```
35while true; do gvncviewer ::1:5900; sleep 1; done
36```
37
38Note that qvncviewer by default smooths the output so if things look weird just
39make sure you disable smooths scaling and keep the original aspect ratio.