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:
M | rootfs.sh | 38 | ++++++++++++++++++++++++++++---------- |
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