mirror of
https://github.com/fosslinux/live-bootstrap.git
synced 2026-03-04 10:25:25 +01:00
This is the last LTS version buildable using GCC 4.0.x. The next one, version 4.19, requires at least GCC 4.6. Fortunately, this is also the first version of the Linux kernel without firmware blobs being included in /firmware, so the FSFLA deblob scripts aren't needed anymore to ensure a fully auditable kernel - the 3 remaining drivers that do include blobs masquerading as source code are removed via a patch, avoiding all the other side effects of the deblob scripts. This doesn't compromise the trustworthiness of the bootstrapped environment, since all the other drivers deblob would remove use the firmware loader mechanism, which does nothing when the actual firmware blobs aren't installed on the system separately. Features dependent on firmware still won't work, but many drivers that load firmware do so only optionally. This includes r8169, the driver for the Realtek gigabit NICs found on many x86 motherboards. This kernel is considerably larger than 4.9.10, and we build more of it (including drivers that would previously get stripped away by the deblob script, such as r8169), so to accommodate that, Fiwix initrd size is increased by 64MiB, while lowering kexec space by the same amount to ensure enough userspace memory available in Fiwix. Fiwix's maximum open file count is also bumped from 1.5K to 2.5K. The Documentation folder is deleted before build, to further save space in the ramdisk.
32 lines
1 KiB
Bash
Executable file
32 lines
1 KiB
Bash
Executable file
#!/bin/bash
|
|
#
|
|
# SPDX-FileCopyrightText: 2023 fosslinux <fosslinux@aussies.space>
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
. /steps/bootstrap.cfg
|
|
|
|
set -e
|
|
|
|
# Perform the actual kexec
|
|
if [ "${KERNEL_BOOTSTRAP}" = True ]; then
|
|
mv "/High Level Prototypes" "/High_Level_Prototypes"
|
|
sync
|
|
# We don't use the gen_initramfs_list.sh script because it is so *SLOW*
|
|
# This emulates the same thing it does
|
|
find / -xdev -type d -printf "dir %p %m %U %G\n" >> /initramfs.list
|
|
find / -xdev -type f -printf "file %p %p %m %U %G\n" >> /initramfs.list
|
|
find / -xdev -type l -printf "slink %p %l %m %U %G\n" >> /initramfs.list
|
|
kexec-linux "/dev/ram1" "/boot/vmlinuz" "!gen_init_cpio /initramfs.list | gzip -c"
|
|
else
|
|
mkdir /etc
|
|
# kexec time
|
|
if [ "${BARE_METAL}" = True ]; then
|
|
kexec -l "/boot/vmlinuz" \
|
|
--append="root=/dev/sda1 rootfstype=ext3 init=/init rw"
|
|
else
|
|
kexec -l "/boot/vmlinuz" --console-serial \
|
|
--append="console=ttyS0 root=/dev/sda1 rootfstype=ext3 init=/init rw"
|
|
fi
|
|
kexec -e
|
|
fi
|