Base system for Kira Linux.
Build scripts, runit init stages, service definitions, and core system configuration for the Kira Linux base layer. Builds a complete root filesystem from source against musl libc.
| Component | Package | Version |
|---|---|---|
| libc | musl | 1.2.6 |
| Init | runit | 2.3.1 |
| Userland | BusyBox (static) | 1.37.0 |
| Device management | eudev | 3.2.14 |
| DHCP | dhcpcd | 10.3.2 |
| TLS | LibreSSL | 4.3.1 |
| Remote access | OpenSSH | 10.3p1 |
| Shell | ZSH | 5.9 |
| Package manager | flux | — |
Requires: gcc, make, wget, git, cpio, gzip, gperf, pkg-config, libmount-dev
Clone the Shinigami kernel and flux alongside this repo first:
git clone https://github.com/shinigami-os/shinigami ../shinigami
git clone https://github.com/shinigami-os/flux ../fluxCopy the Kira project minisign public key into config/etc/flux/flux.pub before building.
Then build:
make # builds sysroot (will ask for sudo password)
sudo make build/stamps/packages.stamp # installs flux packages (requires root)
make build/initramfs.cpio.gz # packages initramfs
make qemu # bootsSSH into the running system:
ssh -o StrictHostKeyChecking=no root@localhost -p 2222To rebuild without re-downloading sources:
make soft-clean && make # may require rootkira-base/
Makefile build system
runit/ stage scripts: 1 (early boot), 2 (supervision), 3 (shutdown)
services/ runit service directories (/etc/sv/)
config/
etc/ static config files installed to /etc/
flux/ flux default config
zsh/ ZSH default config (zshrc, p10k.zsh)
ssh/ sshd config
busybox.config BusyBox build config
build/ GITIGNORED: sources, stamps, sysroot, initramfs
kernel → runit-init (PID 1)
└── stage 1: mount proc/sys/dev, set hostname, loopback
└── stage 2: runsvdir /etc/sv
├── eudev device management
├── dhcpcd DHCP on eth0
└── sshd remote access
└── stage 3: shutdown cleanup
GPL-2.0