expand swappable component options

This commit is contained in:
Astral
2026-09-01 08:06:22 +02:00
parent f0b06a1685
commit 6729f58ed6
3 changed files with 20 additions and 19 deletions
+11 -10
View File
@@ -17,21 +17,22 @@ package manager that simply runs the commands in each recipe. No binary
packages, no opaque package machinery. The whole system — toolchain included — packages, no opaque package machinery. The whole system — toolchain included —
is compiled from original source. is compiled from original source.
Runit handles services. The standard Linux kernel drives the hardware. Nothing is fixed. Nothing you didn't ask for is forced on you.
`nmtui` manages networking. Nothing you didn't ask for ends up on the disk.
## The differentiator: craft your system at install time ## The differentiator: everything is swappable
Keru's installer is a TUI that walks you through designing your exact machine Keru's installer is a TUI that walks you through designing your exact machine
*before* it ever boots: *before* it ever boots. Every major component is selectable:
- **init system** — Runit (default), s6, OpenRC, systemd - **init system** — Runit (default), s6, OpenRC, systemd, busybox init, and more
- **C library** — glibc or musl - **C library** — glibc, musl, uClibc-ng, and more
- **filesystem** — ext4, btrfs, xfs, zfs, f2fs - **filesystem** — ext4, btrfs, xfs, zfs, f2fs, jfs, reiserfs, swap, and more
- **kernel** — linux, linux-lts, linux-hardened - **kernel** — linux, linux-lts, linux-hardened, linux-cachyos, and more
- **kernel parameters, locale, clock, keymap** — all configurable
Swappable at install time, fixed at first boot. The system that lands on your Every init, every libc, every filesystem, everything. The selections are made
disk is precisely the one you chose. during install and fixed at first boot. The system that lands on your disk is
precisely the one you chose.
## Repository layout ## Repository layout
+4 -4
View File
@@ -49,16 +49,16 @@ pick() { # prompt, array-of-labels, defaults -> writes choice to $CHOICE
# ---- swappable selections ------------------------------------------------ # ---- swappable selections ------------------------------------------------
banner "Keru OS — craft your system" banner "Keru OS — craft your system"
pick "Init system" runit runit s6 openrc systemd pick "Init system" runit runit s6 openrc systemd busybox-init sysvinit dinit shepherd
INIT="$CHOICE" INIT="$CHOICE"
pick "C library" glibc glibc musl pick "C library" glibc glibc musl uclibc-ng
LIBC="$CHOICE" LIBC="$CHOICE"
pick "Filesystem" ext4 ext4 btrfs xfs zfs f2fs pick "Filesystem" ext4 ext4 ext2 ext3 btrfs xfs zfs f2fs jfs reiserfs
TARGET_FS="$CHOICE" TARGET_FS="$CHOICE"
pick "Kernel" linux linux linux-lts linux-hardened pick "Kernel" linux linux linux-lts linux-hardened linux-cachyos linux-zen
KERNEL="$CHOICE" KERNEL="$CHOICE"
pick "Network tools" nmtui networkmanager nmtui connman pick "Network tools" nmtui networkmanager nmtui connman
+5 -5
View File
@@ -9,23 +9,23 @@
## --------------------------------------------------------------------------- ## ---------------------------------------------------------------------------
# Which init system gets installed # Which init system gets installed
# runit (default) | s6 | openrc | systemd # runit (default) | s6 | openrc | systemd | busybox-init | sysvinit | dinit | shepherd
INIT=runit INIT=runit
# Which libc the toolchain and packages build against # Which libc the toolchain and packages build against
# glibc (default) | musl # glibc (default) | musl | uclibc-ng
LIBC=glibc LIBC=glibc
# Which filesystem the target root is formatted as # Which filesystem the target root is formatted as
# ext4 (default) | btrfs | xfs | zfs | f2fs # ext4 (default) | ext2 | ext3 | btrfs | xfs | zfs | f2fs | jfs | reiserfs | swap
TARGET_FS=ext4 TARGET_FS=ext4
# Which kernel you want built # Which kernel you want built
# linux (sane default) | linux-lts | linux-hardened # linux (default) | linux-lts | linux-hardened | linux-cachyos | linux-zen
KERNEL=linux KERNEL=linux
# Base package set pulled into every install # Base package set pulled into every install
BASE_PACKAGES=(base toolchain kernel runit nmtui openssh) BASE_PACKAGES=(base toolchain kernel nmtui openssh)
# Locale / clock / keymap applied to the target # Locale / clock / keymap applied to the target
LOCALE=en_US.UTF-8 LOCALE=en_US.UTF-8