lager is a launcher for running Box64 workloads on LoongArch systems whose
native userland uses 16 KiB pages. It primarily targets LoongArch AOSC OS,
which provides a 4 KiB page-size kernel by default.
Other LoongArch distributions may also work, provided that a 4 KiB page-size kernel and matching kernel modules are available.
lager starts a compact 4 KiB page-size LoongArch guest with QEMU-KVM. The
same lager binary runs as the guest init program, mounts the host filesystem
through virtiofsd, prepares the runtime environment, and starts the requested
command.
Graphics are provided through virtio-gpu Venus and Zink, allowing applications inside the guest to use Vulkan and OpenGL.
Required:
- A LoongArch64 system with KVM access
- A 4 KiB page-size LoongArch kernel and matching modules
- QEMU and virtiofsd
- passt
- Box64 in
PATH - dbus
- PulseAudio
- Weston
- seatd
- Xwayland
- dunst
- zstd
The invoking user must be able to access /dev/kvm.
Install runtime dependencies:
sudo oma install qemu passt virtiofsd dbus pulseaudio weston seatd xwayland dunst zstdAdd your user to the kvm group:
sudo usermod -aG kvm "$USER"
sudo chown $USER /dev/kvmLog out and back in for the group change to take effect.
cmake -S . -B build
cmake --build buildInstall:
sudo cmake --install buildRun a command:
lager COMMAND [ARGS...]Run a command without the graphical session:
lager -headless -- COMMAND [ARGS...]Examples:
lager xeyes
lager -headless -- ls
lager box64 wine game.exeShow configuration:
lager -config