Eclipse Linux is an experimental Void Linux (musl) based distribution that boots with the dynamod init system. This repository contains the build tooling to generate a live ISO (BIOS + UEFI) and a TUI installer.
- Target architecture:
x86_64 - Base: Void Linux musl rootfs tarball + packages installed via
xbpsin a chroot - Output: a hybrid live ISO with SquashFS rootfs and GRUB boot (BIOS + UEFI)
Makefile— main entrypoints (make iso,make test-qemu, etc.)scripts/build-rootfs.sh— buildsbuild/rootfsfrom a Void musl rootfs tarballscripts/build-iso.sh— turnsbuild/rootfsintobuild/eclipse-linux-<version>.isoscripts/eclipse-install— dialog-based installer that runs inside the live ISOconfig/— branding and boot config (os-release,motd,issue,grub-live.cfg)
The build expects a dynamod/ directory at the repo root (see Makefile and the scripts). It is intentionally ignored by .gitignore, so you need to provide it locally (e.g. clone it into ./dynamod).
You need a Linux host with sudo and the ability to mount, chroot, and create loop devices.
The ISO builder checks for these commands:
mksquashfs(fromsquashfs-tools)xorrisogrub-mkimage,grub-mkstandalonemformat,mmd,mcopy(frommtools)cpio,gzip
The rootfs builder also needs tar with xz support and either wget or curl.
Package hints (also printed by the scripts):
- Void:
xbps-install -S squashfs-tools xorriso grub grub-x86_64-efi mtools cpio - Arch:
pacman -S squashfs-tools xorriso grub mtools cpio
qemu-system-x86_64qemu-img(only formake test-qemu-install)
- Build the init system bits (runs unprivileged):
make dynamod- Build the root filesystem (invokes
sudointernally):
make rootfs- Build the ISO (invokes
sudointernally):
make isoThe ISO is written to:
build/eclipse-linux-<ECLIPSE_VERSION>.iso
After make iso:
make test-qemu # graphical
make test-qemu-serial # serial console
make test-qemu-install # boots with a blank qcow2 diskbuild-iso.sh prints a dd example. Be careful to choose the correct device:
sudo dd if=build/eclipse-linux-<version>.iso of=/dev/sdX bs=4M status=progress oflag=syncEnvironment variables used by the scripts:
ECLIPSE_VERSION— ISO filename version string (default0.1.0)VOID_DATE— Void rootfs tarball date stamp (default20250202)
Examples:
ECLIPSE_VERSION=0.2.0 make iso
VOID_DATE=20250202 make rootfsmake dynamodshould not be run undersudo(it builds as the current user).scripts/build-rootfs.shremoves firmware blobs and most locales to shrink the live ISO; expect Wi‑Fi / some GPUs to be missing firmware in the live environment.
GPL-3.0 (see LICENSE).