Splits the ARM64 build into two tracks per docs/arm64-architecture.md: Generic ARM64 (mainline kernel.org, UEFI, virtio, GRUB): - New build/scripts/build-kernel-arm64.sh builds mainline LTS (6.12.x by default) from arm64 defconfig + shared container fragment + arm64-virt enables (VIRTIO_*, EFI_STUB, NVMe). Output: build/cache/kernel-arm64-generic/. - New Makefile targets: kernel-arm64, rootfs-arm64 (now consumes the mainline kernel modules via TARGET_VARIANT=generic). - versions.env: pin MAINLINE_KERNEL_VERSION=6.12.10, declare cdn.kernel.org URL and SHA256 placeholder. Raspberry Pi (raspberrypi/linux fork, custom DTBs, autoboot.txt): - build-kernel-arm64.sh (RPi-flavoured) renamed to build-kernel-rpi.sh; cache dir renamed from custom-kernel-arm64 to custom-kernel-rpi. - New Makefile targets: kernel-rpi, rootfs-arm64-rpi (uses TARGET_VARIANT=rpi). - rpi-image now depends on rootfs-arm64-rpi + kernel-rpi instead of the generic rootfs-arm64. - create-rpi-image.sh + inject-kubesolo.sh updated to reference the new cache path. inject-kubesolo.sh now takes a TARGET_VARIANT env var (rpi|generic) to select which ARM64 kernel modules to consume. Shared substrate: - rpi-kernel-config.fragment renamed to kernel-container.fragment. The contents were never RPi-specific (cgroup, namespaces, AppArmor, netfilter) — just misnamed. Extended with extra subsystem disables (KVM, WLAN, CFG80211, INFINIBAND, PCMCIA, HAMRADIO, ISDN, ATM, INPUT_JOYSTICK, INPUT_TABLET, FPGA) and CONFIG_LSM=lockdown,yama,apparmor. - build-kernel.sh (x86) refactored to apply the shared fragment via a generic apply_fragment function (two-pass for the TC stock config security dance), killing ~50 lines of inline config duplication. Note: rename detection shows build-kernel-arm64.sh as 'modified' because the new file at that path is the mainline build, while the old RPi-flavoured content lives in build-kernel-rpi.sh (which appears as a new file). The git log for build-kernel-rpi.sh is empty; the RPi history is preserved at the original path until this commit. No actual kernel build runs in this commit — that's Phase 3 work. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.8 KiB
Bash
54 lines
1.8 KiB
Bash
# KubeSolo OS Component Versions
|
|
# All external dependencies pinned here for reproducible builds
|
|
|
|
# Tiny Core Linux
|
|
TINYCORE_VERSION=17.0
|
|
TINYCORE_ARCH=x86_64
|
|
TINYCORE_MIRROR=http://www.tinycorelinux.net
|
|
TINYCORE_ISO=CorePure64-${TINYCORE_VERSION}.iso
|
|
TINYCORE_ISO_URL=${TINYCORE_MIRROR}/${TINYCORE_VERSION%%.*}.x/${TINYCORE_ARCH}/release/${TINYCORE_ISO}
|
|
|
|
# KubeSolo
|
|
# Pinned release tag from https://github.com/portainer/kubesolo/releases.
|
|
# Bump here and re-run `make fetch` to pull a new version.
|
|
KUBESOLO_VERSION=v1.1.0
|
|
KUBESOLO_INSTALL_URL=https://get.kubesolo.io
|
|
|
|
# Build tools (used inside builder container)
|
|
GRUB_VERSION=2.12
|
|
SYSLINUX_VERSION=6.03
|
|
|
|
# SHA256 checksums for supply chain verification
|
|
# Populate by running: sha256sum build/cache/<file>
|
|
# Leave empty to skip verification (useful for first fetch)
|
|
TINYCORE_ISO_SHA256=""
|
|
KUBESOLO_SHA256=""
|
|
NETFILTER_TCZ_SHA256=""
|
|
NET_BRIDGING_TCZ_SHA256=""
|
|
IPTABLES_TCZ_SHA256=""
|
|
|
|
# piCore64 (ARM64 — Raspberry Pi)
|
|
PICORE_VERSION=15.0.0
|
|
PICORE_ARCH=aarch64
|
|
PICORE_IMAGE=piCore64-${PICORE_VERSION}.zip
|
|
PICORE_IMAGE_URL=http://www.tinycorelinux.net/${PICORE_VERSION%%.*}.x/${PICORE_ARCH}/releases/RPi/${PICORE_IMAGE}
|
|
|
|
# Raspberry Pi firmware (boot blobs, DTBs)
|
|
RPI_FIRMWARE_TAG=1.20240529
|
|
RPI_FIRMWARE_URL=https://github.com/raspberrypi/firmware/archive/refs/tags/${RPI_FIRMWARE_TAG}.tar.gz
|
|
|
|
# Raspberry Pi kernel source
|
|
RPI_KERNEL_BRANCH=rpi-6.6.y
|
|
RPI_KERNEL_REPO=https://github.com/raspberrypi/linux
|
|
|
|
# Mainline Linux kernel (for generic ARM64 — kernel.org LTS)
|
|
# Bump within the 6.12 LTS series as patch levels release.
|
|
# 6.12 LTS is supported until Dec 2029.
|
|
MAINLINE_KERNEL_VERSION=6.12.10
|
|
MAINLINE_KERNEL_MAJOR=v6.x
|
|
MAINLINE_KERNEL_URL=https://cdn.kernel.org/pub/linux/kernel/${MAINLINE_KERNEL_MAJOR}/linux-${MAINLINE_KERNEL_VERSION}.tar.xz
|
|
MAINLINE_KERNEL_SHA256=""
|
|
|
|
# Output naming
|
|
OS_NAME=kubesolo-os
|