From a66b6eaa3a02603b3dc76b1df96dc456150c20a9 Mon Sep 17 00:00:00 2001 From: Jiaqing Zhao Date: Mon, 29 Jul 2024 02:49:56 +0000 Subject: [PATCH] grub-acrn: read scenario config from /usr/share/acrn/scenario.xml Calling debconfig to concatenating the path of scenario xml may fail when executing update-grub during package installation as debconf database might be locked by dpkg. Read scenario config from /usr/share/acrn/scenario.xml (symlink created when installing acrn-hypervisor) instead. Tracked-On: #8667 Signed-off-by: Jiaqing Zhao Reviewed-by: Junjie Mao --- debian/grub/25_linux_acrn | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/debian/grub/25_linux_acrn b/debian/grub/25_linux_acrn index e06c9dec7..dd167c4c5 100755 --- a/debian/grub/25_linux_acrn +++ b/debian/grub/25_linux_acrn @@ -25,23 +25,8 @@ datarootdir="/usr/share" CLASS="--class gnu-linux --class gnu --class os --class acrn" -# read ACRN config (board/scenario) from debconf -ACRN_BOARD=$(echo "get acrn-hypervisor/board" | debconf-communicate || true) -if [ "$(echo "${ACRN_BOARD}" | awk '{print $1}')" != "0" ]; then - gettext_printf "ACRN: Cannot access debconf acrn-hypervisor/board: %s" "${ACRN_BOARD}\n" >&2 - exit 0 -fi -ACRN_BOARD="$(echo "${ACRN_BOARD}" | awk '{print $2}')" - -ACRN_SCENARIO=$(echo "get acrn-hypervisor/scenario" | debconf-communicate || true) -if [ "$(echo "${ACRN_SCENARIO}" | awk '{print $1}')" != "0" ]; then - gettext_printf "ACRN: Cannot access debconf acrn-hypervisor/:scenario %s" "${ACRN_SCENARIO}\n" >&2 - exit 0 -fi -ACRN_SCENARIO="$(echo "${ACRN_SCENARIO}" | awk '{print $2}')" - # we obtain any data from scenario config -ACRN_SCENARIO_FILE=/usr/lib/x86_64-linux-gnu/acrn/${ACRN_BOARD}/${ACRN_SCENARIO}/scenario.xml +ACRN_SCENARIO_FILE=/usr/share/acrn/scenario.xml if [ ! -f ${ACRN_SCENARIO_FILE} ]; then gettext_printf "ACRN: Missing scenario config %s\n" "${ACRN_SCENARIO_FILE}" >&2 exit 0 @@ -376,7 +361,7 @@ EOF gettext_printf "Found ACRN initrd image: %s\n" "${dirname}/${initrd}" >&2 fi else - gettext_printf "ACRN: No initrd image for ${ACRN_BOARD}:${ACRN_SCENARIO}\n" >&2 + gettext_printf "ACRN: No initrd image found for %s\n" "${linux}" >&2 # "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here. linux_root_device_thisversion=${GRUB_DEVICE} fi