The Build Pipeline

JARVIS OS is assembled by a sequence of modular scripts under scripts/ in the jarvisos repo. Each script handles one stage of the build, can be run individually for debugging, and is orchestrated end-to-end by a Makefile.

The scripts

Script Stage What it does
00-install-prereq.sh Prerequisites Detects the host distro (Arch/Fedora/Ubuntu/openSUSE) and installs arch-install-scripts, squashfs-tools, xorriso, p7zip, dosfstools, fakeroot, git, curl, python3.
01-extract-iso.sh Extract Mounts the CachyOS source ISO and copies its contents into build/iso-extract/.
02-unsquash-fs.sh Unsquash Extracts the SquashFS rootfs into build/iso-rootfs/ for modification via arch-chroot.
03-bake-wayland.sh Desktop Installs KDE Plasma Wayland, PipeWire audio, NetworkManager, input drivers, and hardware firmware; creates the liveuser account with passwordless sudo; configures SDDM autologin.
03b-build-kernel.sh Kernel Builds linux-jarvisos and linux-jarvisos-headers with makepkg, installs into the rootfs via pacman -U, regenerates the initramfs. See Building the Kernel.
04-bake-jarvis.sh AI stack Copies Project-JARVIS into the rootfs, creates the Python venv, installs Ollama, sets up the jarvis.service systemd unit and CLI wrappers.
05-bake-calamares.sh Installer Installs Calamares and applies JARVIS OS branding, partitioning, and post-install configuration.
06-squash-fs.sh Repack Repacks build/iso-rootfs/ back into a SquashFS image with zstd compression.
07-rebuild-iso.sh Assemble Assembles the final ISO with xorriso, dynamically sizes efiboot.img, and updates the syslinux/GRUB bootloader entries.

Running it

git clone --recursive https://github.com/JarvisOSLinux/jarvisos.git
cd jarvisos/scripts

make all         # run every stage in sequence
make status      # show which steps are complete
make clean       # remove all build artifacts

Or run stages individually when debugging — see Building the ISO for the full step-by-step walkthrough, requirements, and QEMU testing instructions.