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.
This commit is contained in:
Bastian Bittorf 2021-01-20 11:07:47 +01:00
parent 329afda94d
commit 0328828a57

View file

@ -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