<div dir="ltr"><div dir="ltr">Please also note the additional grub.cfg fix that we added:<div><pre class="gmail-message" style="padding-top:8px;margin-top:0px;border-top:0px;white-space:pre-wrap;color:rgb(0,0,0)">### BEGIN /etc/grub.d/01_arm-efi-dt-fix ###</pre><pre class="gmail-message" style="padding-top:8px;margin-top:0px;border-top:0px;white-space:pre-wrap;color:rgb(0,0,0)">A secondary issue (for grub-efi-armhf) should also be created regarding the detection of the grub module needed for /boot. That does not seem to be happening and we have to explicitly do an insmod.</pre><pre class="gmail-message" style="padding-top:8px;margin-top:0px;border-top:0px;white-space:pre-wrap;color:rgb(0,0,0)">A tertiary issue (for grub-efi armhf and arm64) that we have experienced and need feedback on is the support for part_msdos with grub-install to support mbr partitioning schemes. A lot of armhf systems use a boot sector that conflicts with GPT so the two alternatives are to ship with a broken GPT table and let the system use the backup table or support MBR. We currently address this with adding "--modules=part_msdos" to grub-install and are fine continuing to do so but it would warrant some consideration to just support it out of the box.<br></pre></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Feb 11, 2019 at 9:03 PM Da Xue <<a href="mailto:da%2Bdebianbug@lessconfused.com">da+debianbug@lessconfused.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Package: grub-efi-arm<br>
Version: 2.02~beta3-5+deb9u1<br>
Severity: important<br>
<br>
Dear Maintainer,<br>
<br>
<br>
   * What led up to the situation?<br>
   Install grub (bootarm.efi) and update-grub on armhf system.<br>
<br>
   * What exactly did you do (or not do) that was effective (or<br>
     ineffective)?<br>
   We pass the device tree from u-boot to GRUB2 via UEFI systab. It is<br>
   not automatically used by the current version of grub so we have to<br>
   manually execute "devicetree" and point it to a device tree binary <br>
   file. However even with this manual intervention, the kernel still <br>
   hangs. The problem does not occur on arm64 systems or the GRUB2 <br>
   version in Ubuntu 18.04.<br>
<br>
   * What was the outcome of this action?<br>
   System hangs trying to boot the kernel.<br>
<br>
   * What outcome did you expect instead?<br>
   System boots normally like its arm64 equivalent.<br>
<br>
-- Package-specific info:<br>
<br>
<br>
*********************** BEGIN /boot/grub/grub.cfg<br>
#<br>
# DO NOT EDIT THIS FILE<br>
#<br>
# It is automatically generated by grub-mkconfig using templates<br>
# from /etc/grub.d and settings from /etc/default/grub<br>
#<br>
<br>
### BEGIN /etc/grub.d/00_header ###<br>
if [ -s $prefix/grubenv ]; then<br>
  set have_grubenv=true<br>
  load_env<br>
fi<br>
if [ "${next_entry}" ] ; then<br>
   set default="${next_entry}"<br>
   set next_entry=<br>
   save_env next_entry<br>
   set boot_once=true<br>
else<br>
   set default="0"<br>
fi<br>
<br>
if [ x"${feature_menuentry_id}" = xy ]; then<br>
  menuentry_id_option="--id"<br>
else<br>
  menuentry_id_option=""<br>
fi<br>
<br>
export menuentry_id_option<br>
<br>
if [ "${prev_saved_entry}" ]; then<br>
  set saved_entry="${prev_saved_entry}"<br>
  save_env saved_entry<br>
  set prev_saved_entry=<br>
  save_env prev_saved_entry<br>
  set boot_once=true<br>
fi<br>
<br>
function savedefault {<br>
  if [ -z "${boot_once}" ]; then<br>
    saved_entry="${chosen}"<br>
    save_env saved_entry<br>
  fi<br>
}<br>
function load_video {<br>
  if [ x$feature_all_video_module = xy ]; then<br>
    insmod all_video<br>
  else<br>
    insmod efi_gop<br>
    insmod efi_uga<br>
    insmod ieee1275_fb<br>
    insmod vbe<br>
    insmod vga<br>
    insmod video_bochs<br>
    insmod video_cirrus<br>
  fi<br>
}<br>
<br>
if [ x$feature_default_font_path = xy ] ; then<br>
   font=unicode<br>
else<br>
insmod part_msdos<br>
insmod btrfs<br>
if [ x$feature_platform_search_hint = xy ]; then<br>
  search --no-floppy --fs-uuid --set=root  18cc3e39-63bd-472e-a499-9502faf91f5c<br>
else<br>
  search --no-floppy --fs-uuid --set=root 18cc3e39-63bd-472e-a499-9502faf91f5c<br>
fi<br>
    font="/@/usr/share/grub/unicode.pf2"<br>
fi<br>
<br>
if loadfont $font ; then<br>
  set gfxmode=auto<br>
  load_video<br>
  insmod gfxterm<br>
fi<br>
terminal_output gfxterm<br>
if [ "${recordfail}" = 1 ] ; then<br>
  set timeout=30<br>
else<br>
  if [ x$feature_timeout_style = xy ] ; then<br>
    set timeout_style=menu<br>
    set timeout=5<br>
  # Fallback normal timeout code in case the timeout_style feature is<br>
  # unavailable.<br>
  else<br>
    set timeout=5<br>
  fi<br>
fi<br>
### END /etc/grub.d/00_header ###<br>
<br>
### BEGIN /etc/grub.d/01_arm-efi-dt-fix ###<br>
insmod fat<br>
search --no-floppy --fs-uuid --set=efi_root D3C2-D27A<br>
devicetree ($efi_root)/dtb/libre-computer/all-h3-cc-h3/board.dtb<br>
### END /etc/grub.d/01_arm-efi-dt-fix ###<br>
<br>
### BEGIN /etc/grub.d/05_debian_theme ###<br>
set menu_color_normal=cyan/blue<br>
set menu_color_highlight=white/blue<br>
### END /etc/grub.d/05_debian_theme ###<br>
<br>
### BEGIN /etc/grub.d/10_linux ###<br>
function gfxmode {<br>
        set gfxpayload="${1}"<br>
}<br>
set linux_gfx_mode=<br>
export linux_gfx_mode<br>
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-18cc3e39-63bd-472e-a499-9502faf91f5c' {<br>
        load_video<br>
        insmod gzio<br>
        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi<br>
        insmod part_msdos<br>
        insmod btrfs<br>
        if [ x$feature_platform_search_hint = xy ]; then<br>
          search --no-floppy --fs-uuid --set=root  18cc3e39-63bd-472e-a499-9502faf91f5c<br>
        else<br>
          search --no-floppy --fs-uuid --set=root 18cc3e39-63bd-472e-a499-9502faf91f5c<br>
        fi<br>
        echo    'Loading Linux 4.19.20-02331-g673856cba2f5-dirty ...'<br>
        linux   /@/boot/vmlinuz-4.19.20-02331-g673856cba2f5-dirty root=UUID=18cc3e39-63bd-472e-a499-9502faf91f5c ro rootflags=subvol=@  noquiet<br>
        echo    'Loading initial ramdisk ...'<br>
        initrd  /@/boot/initrd.img-4.19.20-02331-g673856cba2f5-dirty<br>
}<br>
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-18cc3e39-63bd-472e-a499-9502faf91f5c' {<br>
        menuentry 'Debian GNU/Linux, with Linux 4.19.20-02331-g673856cba2f5-dirty' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.20-02331-g673856cba2f5-dirty-advanced-18cc3e39-63bd-472e-a499-9502faf91f5c' {<br>
                load_video<br>
                insmod gzio<br>
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi<br>
                insmod part_msdos<br>
                insmod btrfs<br>
                if [ x$feature_platform_search_hint = xy ]; then<br>
                  search --no-floppy --fs-uuid --set=root  18cc3e39-63bd-472e-a499-9502faf91f5c<br>
                else<br>
                  search --no-floppy --fs-uuid --set=root 18cc3e39-63bd-472e-a499-9502faf91f5c<br>
                fi<br>
                echo    'Loading Linux 4.19.20-02331-g673856cba2f5-dirty ...'<br>
                linux   /@/boot/vmlinuz-4.19.20-02331-g673856cba2f5-dirty root=UUID=18cc3e39-63bd-472e-a499-9502faf91f5c ro rootflags=subvol=@  noquiet<br>
                echo    'Loading initial ramdisk ...'<br>
                initrd  /@/boot/initrd.img-4.19.20-02331-g673856cba2f5-dirty<br>
        }<br>
        menuentry 'Debian GNU/Linux, with Linux 4.19.20-02331-g673856cba2f5-dirty (recovery mode)' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.19.20-02331-g673856cba2f5-dirty-recovery-18cc3e39-63bd-472e-a499-9502faf91f5c' {<br>
                load_video<br>
                insmod gzio<br>
                if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi<br>
                insmod part_msdos<br>
                insmod btrfs<br>
                if [ x$feature_platform_search_hint = xy ]; then<br>
                  search --no-floppy --fs-uuid --set=root  18cc3e39-63bd-472e-a499-9502faf91f5c<br>
                else<br>
                  search --no-floppy --fs-uuid --set=root 18cc3e39-63bd-472e-a499-9502faf91f5c<br>
                fi<br>
                echo    'Loading Linux 4.19.20-02331-g673856cba2f5-dirty ...'<br>
                linux   /@/boot/vmlinuz-4.19.20-02331-g673856cba2f5-dirty root=UUID=18cc3e39-63bd-472e-a499-9502faf91f5c ro single rootflags=subvol=@ <br>
                echo    'Loading initial ramdisk ...'<br>
                initrd  /@/boot/initrd.img-4.19.20-02331-g673856cba2f5-dirty<br>
        }<br>
}<br>
<br>
### END /etc/grub.d/10_linux ###<br>
<br>
### BEGIN /etc/grub.d/20_linux_xen ###<br>
<br>
### END /etc/grub.d/20_linux_xen ###<br>
<br>
### BEGIN /etc/grub.d/30_os-prober ###<br>
### END /etc/grub.d/30_os-prober ###<br>
<br>
### BEGIN /etc/grub.d/30_uefi-firmware ###<br>
menuentry 'System setup' $menuentry_id_option 'uefi-firmware' {<br>
        fwsetup<br>
}<br>
### END /etc/grub.d/30_uefi-firmware ###<br>
<br>
### BEGIN /etc/grub.d/40_custom ###<br>
# This file provides an easy way to add custom menu entries.  Simply type the<br>
# menu entries you want to add after this comment.  Be careful not to change<br>
# the 'exec tail' line above.<br>
### END /etc/grub.d/40_custom ###<br>
<br>
### BEGIN /etc/grub.d/41_custom ###<br>
if [ -f  ${config_directory}/custom.cfg ]; then<br>
  source ${config_directory}/custom.cfg<br>
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then<br>
  source $prefix/custom.cfg;<br>
fi<br>
### END /etc/grub.d/41_custom ###<br>
*********************** END /boot/grub/grub.cfg<br>
<br>
*********************** END /proc/mdstat<br>
-- System Information:<br>
Debian Release: 9.7<br>
  APT prefers stable-updates<br>
  APT policy: (500, 'stable-updates'), (500, 'stable')<br>
Architecture: armhf (armv7l)<br>
<br>
Kernel: Linux 4.19.18-041918-generic (SMP w/16 CPU cores)<br>
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C), LANGUAGE=C (charmap=ANSI_X3.4-1968) (ignored: LC_ALL set to C)<br>
Shell: /bin/sh linked to /bin/dash<br>
Init: unable to detect<br>
<br>
Versions of packages grub-efi-arm depends on:<br>
ii  debconf [debconf-2.0]  1.5.61<br>
ii  dpkg                   1.18.25<br>
ii  grub-common            2.02~beta3-5+deb9u1<br>
ii  grub-efi-arm-bin       2.02~beta3-5+deb9u1<br>
ii  grub2-common           2.02~beta3-5+deb9u1<br>
ii  ucf                    3.0036<br>
<br>
grub-efi-arm recommends no packages.<br>
<br>
grub-efi-arm suggests no packages.<br>
<br>
-- debconf information:<br>
  grub2/device_map_regenerated:<br>
  grub2/kfreebsd_cmdline_default: quiet<br>
  grub2/linux_cmdline_default: quiet<br>
  grub2/linux_cmdline:<br>
  grub2/update_nvram: true<br>
  grub2/kfreebsd_cmdline:<br>
  grub2/force_efi_extra_removable: false<br>
</blockquote></div>