8ee92f5194
- Implement NV index mode for TPM 2.0 key protector 0001-protectors-Implement-NV-index.patch - Fall back to passphrase mode when the key protector fails to unlock the disk 0002-cryptodisk-Fallback-to-passphrase.patch - Wipe out the cached key cleanly 0003-cryptodisk-wipe-out-the-cached-keys-from-protectors.patch - Make diskfiler to look up cryptodisk devices first 0004-diskfilter-look-up-cryptodisk-devices-first.patch - Version bump to 2.12~rc1 * Added: - grub-2.12~rc1.tar.xz * Removed: - grub-2.06.tar.xz * Patch dropped merged by new version: - grub2-GRUB_CMDLINE_LINUX_RECOVERY-for-recovery-mode.patch - grub2-s390x-02-kexec-module-added-to-emu.patch - grub2-efi-chainloader-root.patch - grub2-Fix-incorrect-netmask-on-ppc64.patch - 0001-osdep-Introduce-include-grub-osdep-major.h-and-use-i.patch - 0002-osdep-linux-hostdisk-Use-stat-instead-of-udevadm-for.patch - 0002-net-read-bracketed-ipv6-addrs-and-port-numbers.patch - grub2-s390x-10-keep-network-at-kexec.patch - 0001-Fix-build-error-in-binutils-2.36.patch - 0001-emu-fix-executable-stack-marking.patch - 0046-squash-verifiers-Move-verifiers-API-to-kernel-image.patch - 0001-30_uefi-firmware-fix-printf-format-with-null-byte.patch - 0001-tpm-Pass-unknown-error-as-non-fatal-but-debug-print-.patch - 0001-Filter-out-POSIX-locale-for-translation.patch OBS-URL: https://build.opensuse.org/request/show/1105405 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=458
67 lines
2.1 KiB
Diff
67 lines
2.1 KiB
Diff
From f76317d9dc35dbc576820ba6c2a6a8e41f5338b5 Mon Sep 17 00:00:00 2001
|
|
From: Michael Chang <mchang@suse.com>
|
|
Date: Thu, 19 May 2022 13:08:12 +0800
|
|
Subject: [PATCH] Fix infinite boot loop on headless system in qemu
|
|
|
|
After finishing headless virtual machine installation via serial
|
|
console, the reboot fails in grub with infinte boot loop and also
|
|
keyboard input for serial console is unresponsive.
|
|
|
|
The cause of infinte loop boils down to legacy vga driver in grub
|
|
crashes when '-dispaly none' is used as qemu's display type described in
|
|
the manual as:
|
|
|
|
"Do not display video output. The guest will still see an emulated
|
|
graphics card, but its output will not be displayed tothe QEMU user.
|
|
This option differs from the -nographic option in that it only affects
|
|
what is done with video output; -nographic also changes the destination
|
|
of the serial and parallel port data."
|
|
|
|
Given there's no sensible way found to skip the emulated device from the
|
|
legacy vga module, we ended up removing it from all_video dependency so
|
|
it wouldn't be loaded by default. In any case, the vbe module remain
|
|
loaded and should fulfill the requirement of most hardwares even twenty
|
|
years old or more.
|
|
|
|
The unresponsive serial input is also fixed by ensuring that console
|
|
input is loaded via appended so that they won't fail altogether with
|
|
errors by other console device if specifying on the same list.
|
|
|
|
Signed-off-by: Michael Chang <mchang@suse.com>
|
|
---
|
|
grub-core/genmoddep.awk | 3 +++
|
|
util/grub.d/00_header.in | 10 +++++++++-
|
|
2 files changed, 12 insertions(+), 1 deletion(-)
|
|
|
|
--- a/grub-core/genmoddep.awk
|
|
+++ b/grub-core/genmoddep.awk
|
|
@@ -98,6 +98,9 @@
|
|
}
|
|
modlist = ""
|
|
while (getline <"video.lst") {
|
|
+ if ($1 == "vga") {
|
|
+ continue;
|
|
+ }
|
|
modlist = modlist " " $1;
|
|
}
|
|
printf "all_video:%s\n", modlist;
|
|
--- a/util/grub.d/00_header.in
|
|
+++ b/util/grub.d/00_header.in
|
|
@@ -287,7 +287,15 @@
|
|
;;
|
|
x*)
|
|
cat << EOF
|
|
-terminal_output ${GRUB_TERMINAL_OUTPUT}
|
|
+
|
|
+for i in ${GRUB_TERMINAL_OUTPUT}; do
|
|
+ if [ x\${use_append} = xtrue ]; then
|
|
+ terminal_output --append \$i
|
|
+ elif terminal_output \$i; then
|
|
+ use_append=true;
|
|
+ fi
|
|
+done
|
|
+
|
|
EOF
|
|
;;
|
|
esac
|