logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: 0328828a572c4f11a6c66162b1046a8e0c426528
parent 329afda94d6b5f412e43f30d6be7a210ffa1e490
Author: Bastian Bittorf <bb@npl.de>
Date:   Wed, 20 Jan 2021 11:07:47 +0100

Add new build target 'minikernel':

./rootfs minikernel

will download external helper script,
which compiles a kernel and starts qemu
(if possible in kvm mode) together with
the already generated initital ramdisk.

all tempfiles are in already provided tmpfs
and lost at the very end during unmount and exit.

also add a logfile for all targets, which
can be used to better spot errors.

Diffstat:

Mrootfs.sh38++++++++++++++++++++++++++++----------
1 file changed, 28 insertions(+), 10 deletions(-)

diff --git a/rootfs.sh b/rootfs.sh @@ -1,7 +1,7 @@ #!/bin/bash set -ex -QEMU_CMD="${1:-qemu-system-x86_64}" # or 'chroot' +QEMU_CMD="${1:-qemu-system-x86_64}" # or 'chroot' or 'minikernel' QEMU_RAM="${2:-8G}" pushd sysa @@ -12,6 +12,8 @@ pushd sysa mkdir -p tmp/ sudo mount -t tmpfs -o size=8G tmpfs tmp +LOGFILE="$PWD/tmp/bootstrap.log" + # base: mescc-tools-seed # copy in all the mescc-tools-seed stuff cp -r mescc-tools-seed/src/mescc-tools-seed/x86/* tmp @@ -125,17 +127,33 @@ cd tmp find . | cpio -H newc -o | gzip > initramfs.igz # Run -if [ "${QEMU_CMD}" = 'chroot' ]; then - sudo PATH="/after/bin:${PATH}" chroot . /init -else - ${QEMU_CMD} -enable-kvm \ - -m "${QEMU_RAM}" \ - -nographic \ - -no-reboot \ - -kernel ../../kernel -initrd initramfs.igz -append console=ttyS0 -fi +case "${QEMU_CMD}" in + chroot) + sudo PATH="/after/bin:${PATH}" chroot . /init | tee "$LOGFILE" + ;; + minikernel) + git clone --depth 1 --branch v0.4 https://github.com/bittorf/kritis-linux.git + + kritis-linux/ci_helper.sh \ + --arch x86_64 \ + --ramsize 4G \ + --kernel 5.10.8 \ + --initrd initramfs.igz \ + --log "$LOGFILE" + ;; + *) + ${QEMU_CMD} -enable-kvm \ + -m "${QEMU_RAM:-8G}" \ + -nographic \ + -no-reboot \ + -kernel ../../kernel -initrd initramfs.igz -append console=ttyS0 | tee "$LOGFILE" + ;; +esac cd ../.. +# eventually keep logfile before unmount: +echo "see logfile: $LOGFILE" + # Cleanup sudo umount sysa/tmp