u/tropix126

Image 1 — X11 (openbox) session running on the V5 Brain.
Image 2 — X11 (openbox) session running on the V5 Brain.
Image 3 — X11 (openbox) session running on the V5 Brain.
Image 4 — X11 (openbox) session running on the V5 Brain.
▲ 15 r/vex

X11 (openbox) session running on the V5 Brain.

hi everyone!!! :3

It's been a second since my original V5 linux post. I've been working on and off on it (mostly on the bootloader side of things to polish it up), but I thought i'd share some neat progress. I now have a working X11 graphical session running under the openbox window manager! This is made possible by some bringup work to make Linux properly use the brain's display controller, so now there's a proper DRM/KMS "gpu" (note: not really a gpu) driver that graphical apps can run on.

The buildroot tree that i'm working on is now open-sourced here: https://github.com/tropicaaal/buildroot-vex-v5, although you will not be able to run it yourself due to my bootloader staying closed source for the time being (mostly due to concerns around people possibly using it to cheat).

Since someone from the previous post wanted a techical writeup on how this is possible: The boot chain is split into two stages, with the first stage being a V5 user program that loads the second stage into memory and takes control of VEXos. The second stage is a custom ARMv7 linux kernel bootloader that does the bare minimum to follow the arm linux boot protocol. Both stages are written in Rust. I will likely open-source the second stage soon, but there's a lot of sensitive information in the first stage that I probably shouldn't release. The Brain's SoC is a Xilinx Zynq 7000, which has pretty good mainline Linux support already. The brain's display controller also thankfully already had a (somewhat broken) upstream display driver. Most of the time spent on this is figuring out the Brain's specific hardware configuration (e.g. GPIO pinouts, peripheral memory mappings, interrupt controllers and IDs, etc...) so that the kernel knew where to find the required hardware.

Currently I'm now working on running a wayland session under weston. I might also try to chroot into an Arch Linux ARM userspace from the sdcard, which seems fun.

u/tropix126 — 5 days ago