[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1034535: Installer boot menu displayed in text mode when UEFI secure boot is enabled



Package: debian-installer
Severity: minor

Boot method: USB stick
Image version: debian-bookworm-DI-rc1-amd64-netinst.iso
Boot mode: UEFI

When secure boot is disabled, GRUB displays the menu in graphic mode as expected.
When secure boot is enabled, GRUB briefly displays error messages:

 prohibited by secure boot policy
 no video mode activated

and displays the menu in text mode.

This is caused by loadfont failing in /boot/grub/grub.cfg:

if loadfont $prefix/font.pf2 ; then
  set gfxmode=800x600
  set gfxpayload=keep
  insmod efi_gop
  insmod efi_uga
  insmod video_bochs
  insmod video_cirrus
  insmod gfxterm
  insmod png
  terminal_output gfxterm
fi

A recent change in grub prohibits loading fonts from outside the signed image, so loadfont was adapted to try and load the requested font from the embedded memdisk first instead of $prefix.

If I understand correctly, loadfont allows two types of arguments:
- a radix, which is expanded into $prefix/fonts/<radix>.pf2
- a pathname starting with / or (

The "magic" looking up (memdisk) first instead of $prefix works only with a radix whereas grub.cfg uses a full pathname. Also, it tries to load font.pf2 whereas the embedded font file is unicode.pf2.

I tested to replace "$prefix/font.pf2" with "unicode" or "(memdisk)/fonts/unicode.pf2" in /boot/grub/grub.cfg and the graphical menu was back. Actually, if I remove the loadfont command and the 'if' condition, as far as I can see the graphical menu is displayed correctly, except the border frame replaced by "?" in the menu entry editor, so maybe the condition could be removed.

PS: Maybe the issue also exists in live images ? Didn't check.


Reply to: