Bug#1029982: grub-efi-amd64: After fresh installation on Dell Wyse 3040, computer will not start up becase of buggy UEFI firmware implementation

Lutz debian.bugs at topfrose.de
Sun Jan 29 19:45:35 GMT 2023


Package: grub-efi-amd64
Version: 2.06-3~deb11u5
Severity: wishlist

I managed to install Debian on a Dell Wyse 3040 (see documentation on https://wiki.debian.org/InstallingDebianOn/Dell/Wyse%203040).

The UEFI firmware implementation on this device requires that the file \EFI\boot\bootx64.efi is present. The contents of this file do not matter - the file can be empty.

The debian installer currently does not take this limitation in account. Hence, after installation of the base system and first reboot, the system won't start up.

Normal users would probably give up at this point. 

In order to make installation of Debian on these devices a no-brainer, I suggest to add some logic to the package: When the command 'dmidecode -s system-product-name' returns 'Wyse 3040 Thin Client', run the command 'touch /boot/efi/EFI/boot/bootx64.EFI' or, alternatively, set 'grub2/force_efi_extra_removable' to 'true'. 

-- Package-specific info:

*********************** BEGIN /proc/mounts
/dev/mapper/Wyse3040--vg-root / ext4 rw,relatime,errors=remount-ro 0 0
/dev/mmcblk0p2 /boot ext2 rw,relatime 0 0
/dev/mmcblk0p1 /boot/efi vfat rw,relatime,fmask=0077,dmask=0077,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro 0 0
*********************** END /proc/mounts

*********************** BEGIN /boot/grub/grub.cfg
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="0"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}
function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

if [ x$feature_default_font_path = xy ] ; then
   font=unicode
else
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/5q9IUe-3zkQ-sgdl-a2Pw-Zw1d-6bdN-fOqVaB/fmkFoH-oJx7-4F8X-4TcY-EJWB-U0q7-AsrQ3H'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/5q9IUe-3zkQ-sgdl-a2Pw-Zw1d-6bdN-fOqVaB/fmkFoH-oJx7-4F8X-4TcY-EJWB-U0q7-AsrQ3H'  2dd13efb-f506-45df-98ab-264d485bca87
else
  search --no-floppy --fs-uuid --set=root 2dd13efb-f506-45df-98ab-264d485bca87
fi
    font="/usr/share/grub/unicode.pf2"
fi

if loadfont $font ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
  set locale_dir=$prefix/locale
  set lang=de_DE
  insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
  set timeout=30
else
  if [ x$feature_timeout_style = xy ] ; then
    set timeout_style=menu
    set timeout=5
  # Fallback normal timeout code in case the timeout_style feature is
  # unavailable.
  else
    set timeout=5
  fi
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
insmod part_gpt
insmod lvm
insmod ext2
set root='lvmid/5q9IUe-3zkQ-sgdl-a2Pw-Zw1d-6bdN-fOqVaB/fmkFoH-oJx7-4F8X-4TcY-EJWB-U0q7-AsrQ3H'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='lvmid/5q9IUe-3zkQ-sgdl-a2Pw-Zw1d-6bdN-fOqVaB/fmkFoH-oJx7-4F8X-4TcY-EJWB-U0q7-AsrQ3H'  2dd13efb-f506-45df-98ab-264d485bca87
else
  search --no-floppy --fs-uuid --set=root 2dd13efb-f506-45df-98ab-264d485bca87
fi
insmod png
if background_image /usr/share/desktop-base/homeworld-theme/grub/grub-4x3.png; then
  set color_normal=white/black
  set color_highlight=black/white
else
  set menu_color_normal=cyan/blue
  set menu_color_highlight=white/blue
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
	set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2dd13efb-f506-45df-98ab-264d485bca87' {
	load_video
	insmod gzio
	if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
	insmod part_gpt
	insmod ext2
	search --no-floppy --fs-uuid --set=root b98be205-b6ba-4427-8c41-e3f773d75f26
	echo	'Loading Linux 5.10.0-21-amd64 ...'
	linux	/vmlinuz-5.10.0-21-amd64 root=/dev/mapper/Wyse3040--vg-root ro  quiet
	echo	'Loading initial ramdisk ...'
	initrd	/initrd.img-5.10.0-21-amd64
}
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-2dd13efb-f506-45df-98ab-264d485bca87' {
	menuentry 'Debian GNU/Linux, with Linux 5.10.0-21-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-21-amd64-advanced-2dd13efb-f506-45df-98ab-264d485bca87' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		search --no-floppy --fs-uuid --set=root b98be205-b6ba-4427-8c41-e3f773d75f26
		echo	'Loading Linux 5.10.0-21-amd64 ...'
		linux	/vmlinuz-5.10.0-21-amd64 root=/dev/mapper/Wyse3040--vg-root ro  quiet
		echo	'Loading initial ramdisk ...'
		initrd	/initrd.img-5.10.0-21-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 5.10.0-21-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-21-amd64-recovery-2dd13efb-f506-45df-98ab-264d485bca87' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		search --no-floppy --fs-uuid --set=root b98be205-b6ba-4427-8c41-e3f773d75f26
		echo	'Loading Linux 5.10.0-21-amd64 ...'
		linux	/vmlinuz-5.10.0-21-amd64 root=/dev/mapper/Wyse3040--vg-root ro single 
		echo	'Loading initial ramdisk ...'
		initrd	/initrd.img-5.10.0-21-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 5.10.0-20-amd64' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-20-amd64-advanced-2dd13efb-f506-45df-98ab-264d485bca87' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		search --no-floppy --fs-uuid --set=root b98be205-b6ba-4427-8c41-e3f773d75f26
		echo	'Loading Linux 5.10.0-20-amd64 ...'
		linux	/vmlinuz-5.10.0-20-amd64 root=/dev/mapper/Wyse3040--vg-root ro  quiet
		echo	'Loading initial ramdisk ...'
		initrd	/initrd.img-5.10.0-20-amd64
	}
	menuentry 'Debian GNU/Linux, with Linux 5.10.0-20-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.10.0-20-amd64-recovery-2dd13efb-f506-45df-98ab-264d485bca87' {
		load_video
		insmod gzio
		if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
		insmod part_gpt
		insmod ext2
		search --no-floppy --fs-uuid --set=root b98be205-b6ba-4427-8c41-e3f773d75f26
		echo	'Loading Linux 5.10.0-20-amd64 ...'
		linux	/vmlinuz-5.10.0-20-amd64 root=/dev/mapper/Wyse3040--vg-root ro single 
		echo	'Loading initial ramdisk ...'
		initrd	/initrd.img-5.10.0-20-amd64
	}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/30_os-prober ###
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
	fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###
*********************** END /boot/grub/grub.cfg

*********************** BEGIN /proc/mdstat
cat: /proc/mdstat: No such file or directory
*********************** END /proc/mdstat

*********************** BEGIN LVM
*********************** END LVM

*********************** BEGIN /dev/disk/by-id
total 0
lrwxrwxrwx 1 root root 10 Jan 29 20:22 dm-name-Wyse3040--vg-root -> ../../dm-0
lrwxrwxrwx 1 root root 10 Jan 29 20:22 dm-name-Wyse3040--vg-swap_1 -> ../../dm-1
lrwxrwxrwx 1 root root 10 Jan 29 20:22 dm-uuid-LVM-5q9IUe3zkQsgdla2PwZw1d6bdNfOqVaBTQU22NnfSqqSpQkdDhUeLf72iJKar5ap -> ../../dm-1
lrwxrwxrwx 1 root root 10 Jan 29 20:22 dm-uuid-LVM-5q9IUe3zkQsgdla2PwZw1d6bdNfOqVaBfmkFoHoJx74F8X4TcYEJWBU0q7AsrQ3H -> ../../dm-0
lrwxrwxrwx 1 root root 15 Jan 29 20:22 lvm-pv-uuid-DAI0yO-C91T-ie4C-KZYv-AEeV-zjFB-09z6MK -> ../../mmcblk0p3
lrwxrwxrwx 1 root root 13 Jan 29 20:22 mmc-H8G4a__0x11d610d9 -> ../../mmcblk0
lrwxrwxrwx 1 root root 15 Jan 29 20:22 mmc-H8G4a__0x11d610d9-part1 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Jan 29 20:22 mmc-H8G4a__0x11d610d9-part2 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 15 Jan 29 20:22 mmc-H8G4a__0x11d610d9-part3 -> ../../mmcblk0p3
*********************** END /dev/disk/by-id

*********************** BEGIN /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Jan 29 20:22 2dd13efb-f506-45df-98ab-264d485bca87 -> ../../dm-0
lrwxrwxrwx 1 root root 15 Jan 29 20:22 B143-0847 -> ../../mmcblk0p1
lrwxrwxrwx 1 root root 15 Jan 29 20:22 b98be205-b6ba-4427-8c41-e3f773d75f26 -> ../../mmcblk0p2
lrwxrwxrwx 1 root root 10 Jan 29 20:22 e76db7bf-3aa9-40ce-9fb7-4181623c0190 -> ../../dm-1
*********************** END /dev/disk/by-uuid

-- System Information:
Debian Release: 11.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-21-amd64 (SMP w/4 CPU threads)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages grub-efi-amd64 depends on:
ii  debconf [debconf-2.0]  1.5.77
ii  grub-common            2.06-3~deb11u5
ii  grub-efi-amd64-bin     2.06-3~deb11u5
ii  grub2-common           2.06-3~deb11u5
ii  ucf                    3.0043

grub-efi-amd64 recommends no packages.

grub-efi-amd64 suggests no packages.

-- debconf information:
  grub2/update_nvram: true
  grub2/kfreebsd_cmdline_default: quiet
* grub2/linux_cmdline_default: quiet
  grub2/kfreebsd_cmdline:
  grub2/force_efi_extra_removable: false
* grub2/linux_cmdline:



More information about the Pkg-grub-devel mailing list