The device image is built from the official Milk-V duo-buildroot-sdk with an Ageless Linux overlay applied. The overlay includes:
os-release — identifies the system as Ageless LinuxREFUSAL notice — the machine-readable noncompliance declarationageless-store client — curated app catalog for the devicegitClone the Milk-V SDK, clone the Ageless overlay into it, and run the build script.
# Clone the SDK git clone https://github.com/milkv-duo/duo-buildroot-sdk cd duo-buildroot-sdk # Clone the Ageless overlay git clone https://github.com/agelesslinux/agelesslinux ageless-overlay # Apply overlay and build ./ageless-overlay/build-ageless.sh duo-s-wifi # Output: output/ageless-duos-wifi.img
# Flash to MicroSD sudo dd if=output/ageless-duos-wifi.img of=/dev/sdX bs=4M status=progress
For Duo S boards with onboard eMMC, flash over USB while the board is in burn mode.
# Flash to eMMC via USB (Duo S with eMMC) ./usb-burn.sh output/ageless-duos-wifi.img
The overlay is a directory tree that maps directly onto the target root filesystem. The build script copies these files into the Buildroot output and configures the first-boot service.
ageless-overlay/ ├── etc/ │ ├── os-release │ ├── ageless/ │ │ ├── REFUSAL │ │ └── ab1043-compliance.txt │ └── systemd/system/ │ └── ageless-firstboot.service ├── opt/ageless/ │ ├── firstboot.py │ ├── store/ │ └── apps/ └── build-ageless.sh
The build system and overlay are under active development. This page will be updated with tested instructions when the image pipeline is working. The structure and commands above reflect the planned approach and may change.