Comment 2 for bug 1655765

Revision history for this message
d.marlin (dmarlin) wrote :

Thank you for your reply.

I believe you are right that 64-bit ARM will require its own bootloader setup, and that may be distro-specific as well (for Fedora we install grub2-efi and grub2-tools, but those packages do not exist for Ubuntu, while grub-common and grub-efi-arm64 do).

I manually added:

     elif [[ "$ARCH" =~ "ppc" ]]; then
         install-packages grub-ieee1275
+ elif [[ "$ARCH" == "arm64" ]]; then
+ install-packages grub-efi-arm64 grub-efi-arm64-bin
+ elif [[ "$ARCH" == "aarch64" ]]; then
+ install-packages grub2-tools grub2-efi
     else
         install-packages -m bootloader grub-pc

as a test, and it gets past the error (although I don't know if those are the right packages for Ubuntu arm64).

It then fails with:

  + /usr/sbin/grub-install '--modules=biosdisk part_msdos' --force /dev/loop0
  Installing for arm64-efi platform.
  /usr/sbin/grub-install: error: cannot find EFI directory.

so I think we are hitting platform-specific code for running grub(2)-install:

    if [[ "$ARCH" =~ "ppc" ]] ; then
        $GRUBNAME --modules="part_msdos" $GRUB_OPTS $BOOT_DEV --no-nvram
    else
        $GRUBNAME --modules="biosdisk part_msdos" $GRUB_OPTS $BOOT_DEV
    fi

Note: the error may be related to the fact that I am running this on an EFI host.

There may be other platform-specifics (and/or distro-specifics) in bootloader/finalise.d/50-bootloader that need to be addressed, i.e. setting GRUB_CFG, and creating /etc/default/grub.

I can help with the changes required for Fedora (aarch64), but will need someone familiar with setting up Ubuntu for the arm64 changes.