Shuffle around the creation of sysb
For further RAM savings, we want to create sysb -without- having linux tarball extracted at the same time. To accomplish this, we move the gen_init_cpio + related script out of the tree and create it afterward. Also use hard links to free up some more space.
This commit is contained in:
parent
732af79cdd
commit
f12897265c
|
@ -177,7 +177,7 @@ CONFIG_SCHED_AUTOGROUP=y
|
||||||
# CONFIG_SYSFS_DEPRECATED is not set
|
# CONFIG_SYSFS_DEPRECATED is not set
|
||||||
CONFIG_RELAY=y
|
CONFIG_RELAY=y
|
||||||
CONFIG_BLK_DEV_INITRD=y
|
CONFIG_BLK_DEV_INITRD=y
|
||||||
CONFIG_INITRAMFS_SOURCE="/sysb"
|
CONFIG_INITRAMFS_SOURCE=""
|
||||||
CONFIG_INITRAMFS_ROOT_UID=0
|
CONFIG_INITRAMFS_ROOT_UID=0
|
||||||
CONFIG_INITRAMFS_ROOT_GID=0
|
CONFIG_INITRAMFS_ROOT_GID=0
|
||||||
CONFIG_RD_GZIP=y
|
CONFIG_RD_GZIP=y
|
||||||
|
|
|
@ -41,14 +41,6 @@ src_prepare() {
|
||||||
}
|
}
|
||||||
|
|
||||||
src_compile() {
|
src_compile() {
|
||||||
# Generate the initramfs so we can remove /sysb
|
|
||||||
make ARCH=i386 prepare
|
|
||||||
make ARCH=i386 usr/
|
|
||||||
mkdir -p "${PREFIX}/boot"
|
|
||||||
mv usr/initramfs_data.cpio.gz "${PREFIX}/boot/initramfs-sysb"
|
|
||||||
make clean
|
|
||||||
rm -rf /sysb
|
|
||||||
sed -i 's:/sysb::' .config
|
|
||||||
cp .config include/config/auto.conf
|
cp .config include/config/auto.conf
|
||||||
rm include/generated/autoconf.h
|
rm include/generated/autoconf.h
|
||||||
generate_autoconf_h
|
generate_autoconf_h
|
||||||
|
@ -58,5 +50,8 @@ src_compile() {
|
||||||
}
|
}
|
||||||
|
|
||||||
src_install() {
|
src_install() {
|
||||||
|
mkdir -p "${PREFIX}/boot"
|
||||||
cp arch/i386/boot/bzImage "${PREFIX}/boot/linux-4.9.10"
|
cp arch/i386/boot/bzImage "${PREFIX}/boot/linux-4.9.10"
|
||||||
|
cp usr/gen_init_cpio "${PREFIX}/bin"
|
||||||
|
cp scripts/gen_initramfs_list.sh "${PREFIX}/bin"
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
SPDX-FileCopyrightText: 2021 fosslinux <fosslinux@aussies.space>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
|
||||||
|
Use gen_initramfs_list.sh from outside kernel source tree.
|
||||||
|
|
||||||
|
--- scripts/gen_initramfs_list.sh 2021-10-10 20:37:12.220231015 +1100
|
||||||
|
+++ scripts/gen_initramfs_list.sh 2021-10-10 20:37:22.694296140 +1100
|
||||||
|
@@ -310,7 +310,7 @@
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
cpio_tfile="$(mktemp ${TMPDIR:-/tmp}/cpiofile.XXXXXX)"
|
||||||
|
- usr/gen_init_cpio $timestamp ${cpio_list} > ${cpio_tfile}
|
||||||
|
+ gen_init_cpio $timestamp ${cpio_list} > ${cpio_tfile}
|
||||||
|
else
|
||||||
|
cpio_tfile=${cpio_file}
|
||||||
|
fi
|
11
sysa/run.sh
11
sysa/run.sh
|
@ -22,10 +22,14 @@ create_sysb() {
|
||||||
echo "Creating sysb rootfs"
|
echo "Creating sysb rootfs"
|
||||||
mkdir -p /sysb/usr
|
mkdir -p /sysb/usr
|
||||||
for d in bin include lib libexec sbin share; do
|
for d in bin include lib libexec sbin share; do
|
||||||
cp -r "${PREFIX}/${d}" "/sysb/usr/${d}"
|
# Minimise RAM (storage) use - use hard links
|
||||||
|
cp -rl "${PREFIX}/${d}" "/sysb/usr/${d}"
|
||||||
done
|
done
|
||||||
cp "${SOURCES}/bootstrap.cfg" /sysb/usr/src/bootstrap.cfg
|
cp "${SOURCES}/bootstrap.cfg" /sysb/usr/src/bootstrap.cfg
|
||||||
populate_device_nodes /sysb
|
populate_device_nodes /sysb
|
||||||
|
echo "Creating sysb initramfs"
|
||||||
|
gen_initramfs_list.sh -o "${PREFIX}/boot/initramfs-sysb.cpio.gz" /sysb
|
||||||
|
rm -rf /sysb # Cleanup
|
||||||
}
|
}
|
||||||
|
|
||||||
go_sysb() {
|
go_sysb() {
|
||||||
|
@ -35,7 +39,7 @@ go_sysb() {
|
||||||
# kexec time
|
# kexec time
|
||||||
echo "Loading kernel + sysb initramfs using kexec"
|
echo "Loading kernel + sysb initramfs using kexec"
|
||||||
kexec -l "${PREFIX}/boot/linux-4.9.10" --console-serial \
|
kexec -l "${PREFIX}/boot/linux-4.9.10" --console-serial \
|
||||||
--initrd="${PREFIX}/boot/initramfs-sysb" \
|
--initrd="${PREFIX}/boot/initramfs-sysb.cpio.gz" \
|
||||||
--append="init=/init console=ttyS0"
|
--append="init=/init console=ttyS0"
|
||||||
echo "kexecing into sysb"
|
echo "kexecing into sysb"
|
||||||
kexec -e
|
kexec -e
|
||||||
|
@ -237,10 +241,9 @@ rm -rf "${SOURCES}/mes"
|
||||||
if [ "${CHROOT}" = False ]; then
|
if [ "${CHROOT}" = False ]; then
|
||||||
build kexec-tools-2.0.22
|
build kexec-tools-2.0.22
|
||||||
|
|
||||||
create_sysb
|
|
||||||
|
|
||||||
build linux-4.9.10
|
build linux-4.9.10
|
||||||
|
|
||||||
|
create_sysb
|
||||||
go_sysb
|
go_sysb
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue