[Bug 2084071] Re: grub-mkconfig mistakingly adds a devicetree command when the dtb file is actually a directory

Michaël Blanc 2084071 at bugs.launchpad.net
Fri Oct 11 16:45:24 UTC 2024


I thought about -f at some point, but this would exclude valid symbolic
links to a regular file that is the actual DTB.

On Fri, 11 Oct 2024 at 18:41, Julian Andres Klode <
2084071 at bugs.launchpad.net> wrote:

> A better patch IMO would be to just check for -f instead of -e.
>
> OTOH this *should* issue a diagnostic if stuff expects a file there.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/2084071
>
> Title:
>   grub-mkconfig mistakingly adds a devicetree command when the dtb file
>   is actually a directory
>
> Status in grub2 package in Ubuntu:
>   Confirmed
>
> Bug description:
>   grub-mkconfig adds a "devicetree /boot/dtb" command even if /boot/dtb
>   is a directory, causing grub to complain at bootup with "Not a regular
>   file", which may prevent automatic bootup, as user interaction is
>   needed to acknowledge this warning.
>
>   /etc/grub.d/10_linux is responsible for detecting and adding the
>   command:
>
>       if test -n "${dtb}" ; then
>         if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
>           message="$(gettext_printf "Loading device tree blob...")"
>           sed "s/^/$submenu_indentation/" << EOF
>           echo    '$(echo "$message" | grub_quote)'
>   EOF
>         fi
>         sed "s/^/$submenu_indentation/" << EOF
>           devicetree      ${rel_dirname}/${dtb}
>   EOF
>       fi
>   [...]
>     dtb=
>     for i in "dtb-${version}" "dtb-${alt_version}" "dtb"; do
>       if test -e "${dirname}/${i}" ; then
>         dtb="$i"
>         break
>       fi
>     done
>
>   Since "dtb" exists in /boot, the dtb variable is not empty and the
>   command gets added. The test command is wrong, it catches directories,
>   so the command should be added only if the file exists (-e) AND if
>   it's not a directory (! -d). This piece of code comes from ubuntu-add-
>   devicetree-command-support.patch, see my patch for a potential fix.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/2084071/+subscriptions
>
>

-- 
Best regards.
Michaël Blanc

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to grub2 in Ubuntu.
https://bugs.launchpad.net/bugs/2084071

Title:
  grub-mkconfig mistakingly adds a devicetree command when the dtb file
  is actually a directory

Status in grub2 package in Ubuntu:
  Confirmed

Bug description:
  grub-mkconfig adds a "devicetree /boot/dtb" command even if /boot/dtb
  is a directory, causing grub to complain at bootup with "Not a regular
  file", which may prevent automatic bootup, as user interaction is
  needed to acknowledge this warning.

  /etc/grub.d/10_linux is responsible for detecting and adding the
  command:

      if test -n "${dtb}" ; then
        if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then
          message="$(gettext_printf "Loading device tree blob...")"
          sed "s/^/$submenu_indentation/" << EOF
          echo    '$(echo "$message" | grub_quote)'
  EOF
        fi
        sed "s/^/$submenu_indentation/" << EOF 
          devicetree      ${rel_dirname}/${dtb}
  EOF 
      fi
  [...]
    dtb=
    for i in "dtb-${version}" "dtb-${alt_version}" "dtb"; do
      if test -e "${dirname}/${i}" ; then
        dtb="$i"
        break
      fi
    done

  Since "dtb" exists in /boot, the dtb variable is not empty and the
  command gets added. The test command is wrong, it catches directories,
  so the command should be added only if the file exists (-e) AND if
  it's not a directory (! -d). This piece of code comes from ubuntu-add-
  devicetree-command-support.patch, see my patch for a potential fix.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/2084071/+subscriptions




More information about the foundations-bugs mailing list