From: Mauricio Faria de Oliveira Date: Fri, 20 Aug 2021 10:15:06 -0300 Subject: Call hwmatch only on the grub-pc platform Call hwmatch only on i386/pc as it is only available there. This avoids "error: can't find command `hwmatch'." on e.g., x86_64/efi. The equivalent behavior is linux_gfx_mode=keep because grub is special: the `if hwmatch` clause is true on that error and `$match = 0` is true too, as it is undefined (confirmed in grub shell.) A quick fix for now. Before and After: grub> hwmatch error: can't find command `hwmatch'. grub> echo $grub_platform efi grub> echo $linux_gfx_mode keep Signed-off-by: Mauricio Faria de Oliveira Bug-Ubuntu: https://bugs.launchpad.net/bugs/1840560 Bug-Debian: https://bugs.debian.org/990836 Forwarded: no Last-Update: 2020-08-20 --- util/grub.d/10_linux.in | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in index 0cea76b..041521c 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -262,7 +262,9 @@ else cat << EOF if [ "\${recordfail}" != 1 ]; then if [ -e \${prefix}/gfxblacklist.txt ]; then - if hwmatch \${prefix}/gfxblacklist.txt 3; then + if [ \${grub_platform} != pc ]; then + set linux_gfx_mode=keep + elif hwmatch \${prefix}/gfxblacklist.txt 3; then if [ \${match} = 0 ]; then set linux_gfx_mode=keep else