From d211b4e5352b3a94e0f297802a1b3e67cb51ef13 Mon Sep 17 00:00:00 2001 From: Andrew Cady Date: Fri, 4 Oct 2019 21:26:34 -0400 Subject: use correct kernel version for booting specifically, use the version of linux-image-amd64 present in samizdat.btrfs --- Makefile | 9 ++++++++- fsmgr | 2 +- src/initrd.sh | 14 ++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 0a174e2..00ae4b5 100644 --- a/Makefile +++ b/Makefile @@ -68,8 +68,15 @@ rootfs: sudo mkdir -p /srv/nbd sudo ln -sf "$$PWD"/rootfs/samizdat.btrfs /srv/nbd/samizdat.btrfs +define get_kernel_version +grep '^ii linux-image-amd64' rootfs/_build/samizdat.pkgs.txt | \ + (read _ pkg ver _; apt-cache show $$pkg=$$ver) | \ + grep Depends | \ + (read _ a; echo $${a#linux-image-}) +endef + boot: rootfs - sudo qemu.sh + sudo kernel_version=$$($(get_kernel_version)) qemu.sh reuse_child := $(shell 2>/dev/null read child < reused-child && echo --reuse_child=$$child; true) diff --git a/fsmgr b/fsmgr index 421134b..b16f32f 160000 --- a/fsmgr +++ b/fsmgr @@ -1 +1 @@ -Subproject commit 421134b9ad83e8e63eac2ecdf208e97404af5fb0 +Subproject commit b16f32f48c0555c9007225f3028fc5a0e25ac85d diff --git a/src/initrd.sh b/src/initrd.sh index 802e4ac..b99aa4e 100755 --- a/src/initrd.sh +++ b/src/initrd.sh @@ -7,14 +7,6 @@ vmlinuz=${samizdat_linux_dir}/vmlinuz conf_dir=$samizdat_initramfs_conf_dir apt_dependencies=$samizdat_initrd_files_dir/initrd-dependencies.txt -for kernel_package in linux-image-rt-amd64 linux-image-amd64 -do - kernel_package_version=$(apt-cache policy $kernel_package | sed -ne 's/ *Installed: //p') - real_kernel_package=$(apt-cache show $kernel_package=$kernel_package_version | sed -n 's/^Depends: //p') - version=${real_kernel_package#linux-image-} - [ -e "/boot/vmlinuz-${version}" ] && break -done - find_source_dirs() { find "$conf_dir" "$samizdat_initrd_files_dir" "$@" } @@ -30,10 +22,12 @@ rebuild() [ ! -f "$apt_dependencies" ] || sudo apt-get install -q=10 --no-upgrade -y $(cat "$apt_dependencies") set -ex - cp -f /boot/vmlinuz-"${version}" "$vmlinuz" - /usr/sbin/mkinitramfs -d "$conf_dir" -o "$initrd" "${version}" || force_rebuild + cp -f /boot/vmlinuz-"${kernel_version}" "$vmlinuz" + /usr/sbin/mkinitramfs -d "$conf_dir" -o "$initrd" "${kernel_version}" || force_rebuild } +[ "$kernel_version" ] + if [ ! -e "$initrd" -o ! -e "$vmlinuz" ]; then rebuild elif [ "$(find_source_dirs -newer "$initrd" -print -quit)" ]; then -- cgit v1.2.3