From 7dfc25dd20ae0a1aaff6acddf5b0be9f07c0865a Mon Sep 17 00:00:00 2001 From: Patrick Roy Date: Wed, 26 Feb 2025 11:20:00 +0000 Subject: [PATCH 1/2] Reduce amount of data downloaded from GitHub in resources/rebuild.sh Use a tree-less git checkout [1], which reduces the amount of data downloaded by ~60% (from >3GiB to ~1GiB currently) when cloneing the upstream amazon linux repository from GitHub. It will now download some stuff during checkout, but this is significantly less than a full clone, as we're only checking out a handful of tags. We sadly cannot use a `--depth=1` checkout because we need access to all tags, in chronological order, and for this, we need at least the commit metadata itself fetched locally (even git ls-remote --tags will not sort tags without first fetching these). [1]: https://github.blog/open-source/git/get-up-to-speed-with-partial-clone-and-shallow-clone/ Signed-off-by: Patrick Roy --- resources/rebuild.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/resources/rebuild.sh b/resources/rebuild.sh index 90bac7addb7..56afd1bdbac 100755 --- a/resources/rebuild.sh +++ b/resources/rebuild.sh @@ -120,7 +120,7 @@ EOF } function clone_amazon_linux_repo { - [ -d linux ] || git clone https://github.com/amazonlinux/linux linux + [ -d linux ] || git clone --no-checkout --filter=tree:0 https://github.com/amazonlinux/linux } # prints the git tag corresponding to the newest and best matching the provided kernel version $1 @@ -145,7 +145,8 @@ function build_al_kernel { local KERNEL_VERSION=$(echo $KERNEL_CFG | grep -Po "microvm-kernel-ci-$ARCH-\K(\d+\.\d+)") pushd linux - make distclean + # fails immediately after clone because nothing is checked out + make distclean || true git checkout $(get_tag $KERNEL_VERSION) From dbf8ef4ca232f6cbf322e4e7e0f6d43682b7db2b Mon Sep 17 00:00:00 2001 From: Patrick Roy Date: Wed, 26 Feb 2025 12:40:46 +0000 Subject: [PATCH 2/2] fix: Add keyboard drivers to CI guest kernels Firecracker supports sending a CTRL+ALT+DEL event to the guest, to trigger a reboot, and we had an integration test for this. However, the integration test was broken (see #5050), and actually, our guest kernels dont have the necessary drivers compiled in to actually receive the CTRL+ALT+DEL. Fix this by actually enabling the relavant Kconfigs. We don't re-build the artifacts just yet, as it'll happen anyway in a few days when we branch off the next release. Suggested-by: Riccardo Mancini Signed-off-by: Patrick Roy --- resources/guest_configs/ci.config | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/resources/guest_configs/ci.config b/resources/guest_configs/ci.config index 7bbf1fb1f56..166ab94db3f 100644 --- a/resources/guest_configs/ci.config +++ b/resources/guest_configs/ci.config @@ -5,3 +5,10 @@ CONFIG_SQUASHFS_ZSTD=y # aarch64 only TBD split into a separate file CONFIG_DEVMEM=y # CONFIG_ARM64_ERRATUM_3194386 is not set +# Needed for CTRL+ALT+DEL support +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_GSCPS2=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_INPUT_KEYBOARD=y \ No newline at end of file