SPS · log · files · refs · tags · releases · people · languages · GitHub · file
man/mkiso.1
3142 bytes at 2909919 · GitHub
.TH MKISO 1 "2026-08-31" "SPS 1.0" "SPS Commands"
.SH NAME
mkiso \- build an SPS Linux live ISO (Splux)
.SH SYNOPSIS
.nf
mkiso --output FILE.iso [options]
mkiso --layout DIR [options]
.fi
.SH DESCRIPTION
.B mkiso
builds a hybrid ISO for
.B SPS Linux
(informally Splux). The image boots with a real init as PID 1 and
.BR setup (1)
on PATH. Default
.B --init
is systemd. If the build host has no systemd binaries, busybox init
respawns gettys on tty1 and ttyS0 instead of exec-ing a shell as PID 1.
SPS the package system does not require these images.
.PP
Flash it to USB, boot, and run
.B setup .
.B --session plasma
copies a host Plasma/Wayland stack; NVIDIA live graphics use nouveau.
Live
.B /bin/sh
is always busybox. Host bash is copied as
.B /bin/bash
only with its library closure, including the real
.B libtinfo
file behind the soname symlink.
The squashfs uses zstd so the live root mounts quickly; xz made QEMU
sit on the loop0 probe while a multi-gigabyte Plasma image decompressed.
Compression level 3 keeps ISO creation short without changing the boot
path. Directory copies use
.B cp --reflink=auto
when the host supports it.
.B --layout
writes the live root only, for tests and inspection.
.PP
Host compiler tools can be copied into the image so
.B setup
can build packages from the bundled recipes. The seed includes gcc,
GNU m4 (autoconf's configure refuses a disc without it),
the Python stdlib, Meson as
.B meson.py
next to
.BR mesonbuild ,
CMake modules, and the Perl library. Host
.B /usr/bin/meson
is a setuptools wrapper and is replaced. Pass
.B --no-seed
to omit them.
.SH OPTIONS
.TP
.BI --output " file"
Write a bootable ISO.
.TP
.BI --layout " dir"
Populate a live root and exit.
.TP
.BI --session " name"
.B tty
or
.B plasma .
.TP
.BI --init " name"
.B systemd
,
.B openrc
,
.B s6
,
.B runit
,
.B dinit
,
.B shepherd
, or
.B sysvinit .
This is the default
.I /etc/sps/init
on the disc. Live PID 1 stays busybox unless the build host has systemd
or OpenRC binaries. Default systemd.
.TP
.BI --busybox " file"
Static busybox used for the initramfs and live
.BR /bin/busybox .
.TP
.BI --kernel " file"
Live kernel. Defaults to
.IR /boot/vmlinuz .
.TP
.BI --core " dir"
.TP
.BI --extra " dir"
Copy recipe trees to
.I /usr/src/sps/core
and
.IR /usr/src/sps/extra .
Those collections are enabled in the live
.BR repos.conf .
Community recipes are a comment in that file and are never copied
into the image.
.TP
.B --with-rust
.TP
.B --with-go
Copy those host toolchains into the live image.
.TP
.B --with-firmware
Copy
.I /lib/firmware
into the squashfs. This tree is often more than a gigabyte, so published
ISOs omit it. Wireless adapters that need blobs will need firmware copied
onto the target after install, or a locally built image with this flag.
.TP
.B --no-modules
Do not copy the full
.I /lib/modules
tree into the squashfs. The initramfs still gets squashfs/overlay/USB
modules so the disc can boot.
.TP
.B --no-seed
Do not copy gcc, Python, and related host tools.
.SH FILES
.I $SPS_LIBDIR/mkiso
holds the live init scripts, motd, and seed binary list.
.SH SEE ALSO
.BR setup (1),
.BR sget (1),
.BR src (1)