scraps add scraplinux-base-kernel
scraplinux-base-kernel |
the default. Linux 7.1.3, broad hardware support, most drivers as modules. |
scraplinux-kernel |
Linux 6.12 LTS with the ZEN patchset merged on top. See below. |
scraplinux-libre-kernel |
no binary blob loading paths, no nonfree microcode. |
scraplinux-small-kernel |
monolithic: no module loader at all, so no initramfs is needed either. Fast boot, fixed hardware. |
scraplinux-rt-kernel |
realtime preemption. |
scraplinux-hardened-kernel |
hardening-focused config options turned up. |
More than one kernel can be installed on the same machine at once; the bootloader gets a separate entry for each - the same mechanism generations use, below, for a different purpose.
Source at github.com/apiwo/scraplinux-kernel. Linux 6.12 LTS with the ZEN patchset merged directly into the tree, plus one small ScrapLinux-authored patch on top.
ntsync - the Wine/Proton synchronisation primitives backportvhba - a virtual SCSI host adapter, used for CD/DVD image emulationThe ScrapLinux-authored patch raises the default readahead window to 512 KiB.
ZEN is maintained against a moving 6.12 point-release line; this
fork pinned to 6.12.100 after the patchset itself had drifted through
83 upstream point releases since the patches were originally written.
One hunk genuinely did not apply cleanly and was dropped rather than
forced - ZEN's AMD INVLPGB broadcast-TLB-flush backport conflicted
with upstream changes in a way that risked subtle TLB invalidation
bugs - recorded in the repository's PATCHES.md rather
than silently skipped.
A complete, self-contained record of what the system was declared
to be at one moment: the six config files, the explicit package set
with exact versions, enabled services, and which kernel was in use.
Every scraplinux-rebuild writes one before it changes
anything, and another once it has succeeded - so a rebuild that fails
partway through still leaves a clean "before" record.
scraplinux generations GEN DATE PACKAGES SERVICES DESCRIPTION *5 2026-08-01 14:02:11 84 7 rebuild 4 2026-08-01 14:02:03 82 6 before rebuild 3 2026-07-31 09:14:55 82 6 rebuild 2 2026-07-31 09:14:48 79 6 before rebuild 1 2026-07-30 22:41:02 79 6 initial install * = current
scraplinux rollback go back one generation scraplinux rollback 3 go back to generation 3 specifically scraplinux diff 3 5 what changed between them scraplinux-generation show 3 everything generation 3 recorded
Rolling back restores that generation's config and reconciles the running machine to it - the same reconciling operation an ordinary rebuild performs, against an older set of files instead of the current one. Switching to a generation is itself recorded as a new generation first, so a rollback is also undoable.
The recent generations are listed directly in the bootloader:
ScrapLinux ScrapLinux (verbose) ScrapLinux (recovery shell) ScrapLinux (generation 4) ScrapLinux (generation 3)
Choosing one boots with scraplinux.generation=N on the
kernel command line. /etc/rc.boot checks for it very
early, before any service starts, and reconciles the system to that
generation if it isn't already current - so booting that entry means
the same thing as scraplinux-generation switch N before
powering on. If the switch itself fails, the machine still finishes
booting normally and reports the failure - an escape hatch that can
get stuck is not an escape hatch.