mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-02 01:18:08 +01:00
A tiny bootloader bootstrap has been added to compile the builder-hex0 kernel from hex0 source. The boot compiler is builder-hex0-x86-stage1.hex0 and builder-hex0-x86-stage1.bin. The builder-hex0 kernel is now named builder-hex0-x86-stage2.hex0. The inclusion of a binary seed resolves the problem with the previous strategy which used an architecture-specific hex0 compiler. If sysb detects a full disk (i.e. DISK=sda) it now partitions the disk unconditionally because previously fdisk was reporting existing but empty partitions which resulted in no parititions being created. e2fsprogs is now built with --disable-tls because musl was built on Fiwix without full threading support and mkfs.ext4 was crashing without disabling thread local storage. kexec-linux writes the linux kernel and initramfs to a RAM drive on Fiwix which ensure a pre-allocated contiguous memory block. The following is written to the ram drive: a 32-bit number which is the size of the kernel in bytes, a 32-bit number which is the size of the initramfs in bytes, followed by the Linux kernel image, followed by the initramfs. kexec-fiwix invokes a sync syscall to ensure all writes are flushed to the ram drive and then initiates the kexec by shutting down Fiwix with a reboot syscall. Fiwix knows whether and how to perform the kexec based on kernel parameters passed to it.
16 lines
451 B
Text
Executable file
16 lines
451 B
Text
Executable file
# SPDX-FileCopyrightText: 2023 Richard Masters <grick23@gmail.com>
|
|
# SPDX-License-Identifier: MIT
|
|
cd src
|
|
tcc -static -m32 -march=i386 -std=c89 -I../../tcc/tcc-0.9.27/include -o ${bindir}/kexec-linux kexec-linux.c
|
|
cd ..
|
|
|
|
# Checksums
|
|
if match x${UPDATE_CHECKSUMS} xTrue; then
|
|
sha256sum /usr/bin/kexec-linux
|
|
sha256sum -o ${pkg}.checksums \
|
|
/usr/bin/kexec-linux
|
|
|
|
cp ${pkg}.checksums ${srcdir}
|
|
else
|
|
sha256sum -c ${pkg}.checksums
|
|
fi
|