Incus - statically linked, OpenWrt / aarch64 (Filogic)

Hi all,

I’ve put together a statically linked build of(the LXC-based container/VM manager) packaged for OpenWrt, and wanted to share it in case it’s useful to others running Filogic hardware:

Why static? Incus doesn’t ship a prebuilt incusd (daemon) binary upstream for arm64 - only the client - so there’s no official binary/package for it, static or otherwise. I built incusd and incus from source against musl (Alpine), fully statically linked, so there’s no dependency on matching shared library versions on the router itself.

Target hardware: Built and tested on a Banana Pi BPI-R4 (MediaTek MT7988A / Filogic 880, quad-core Cortex-A73). Compiled with -mcpu=cortex-a73 for that core specifically. Should be straightforward to re-target for other cores if there’s interest.

Runtime dependencies, also statically linked

Install:

wget -O /etc/apk/keys/incus-openwrt-filogic.pem \
    https://gonciarz.github.io/incus-openwrt-filogic/incus-openwrt-filogic.pem
echo 'https://gonciarz.github.io/incus-openwrt-filogic/aarch64_cortex-a53/packages.adb' \
    > /etc/apk/repositories.d/incus.list

apk update
apk add attr-static squashfs-tools-unsquashfs-static xz-static incus-static

/etc/init.d/incus enable
/etc/init.d/incus start

Cool! incusd and incus for OpenWRT hardware.