diff options
author | Pascal Terjan <pterjan@mageia.org> | 2019-12-31 19:25:40 +0000 |
---|---|---|
committer | Pascal Terjan <pterjan@mageia.org> | 2020-01-01 14:43:45 +0000 |
commit | b20813c771ce7abd72d7c42338f7b1a6b245ff8a (patch) | |
tree | c95376690e96b3213bd72231ae76d1f4f58246a2 | |
parent | abaa559f8ac6371dd301f0c194745e644d012ca9 (diff) | |
download | drakx-b20813c771ce7abd72d7c42338f7b1a6b245ff8a.tar drakx-b20813c771ce7abd72d7c42338f7b1a6b245ff8a.tar.gz drakx-b20813c771ce7abd72d7c42338f7b1a6b245ff8a.tar.bz2 drakx-b20813c771ce7abd72d7c42338f7b1a6b245ff8a.tar.xz drakx-b20813c771ce7abd72d7c42338f7b1a6b245ff8a.zip |
drakboot: support setting up uefi on aarch64
Partially tested on Amazon EC2, instance still didn't boot (as it
needed it to be installed in removable mode (EFI/boot/bootaa64.efi)
to be found) but at least drakboot --boot worked (except for
failing to enabled acpid service) and things seem to be in the
expected place.
-rw-r--r-- | perl-install/NEWS | 1 | ||||
-rw-r--r-- | perl-install/bootloader.pm | 5 | ||||
-rw-r--r-- | perl-install/common.pm | 11 |
3 files changed, 13 insertions, 4 deletions
diff --git a/perl-install/NEWS b/perl-install/NEWS index 50f4c76d3..93abefc46 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -2,6 +2,7 @@ - recognize new kernel 5.2 - 5.4 drivers - drakfont: o don't crash when fonts.cache-1 to delete doesn't exist anymore (mga#21086) +- drakboot: initial support for setting up uefi on aarch64 Version 18.21 - 23 June 2019 diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index 7e956cf87..fa678bce4 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -318,7 +318,7 @@ sub read { } # still no boot loader found? let's check for ESP if using UEFI: if (is_uefi()) { - if (-f "/boot/EFI/EFI/mageia/grubx64.efi" || -f "/boot/EFI/EFI/mageia/grubia32.efi") { + if (-f "/boot/EFI/EFI/mageia/grubx64.efi" || -f "/boot/EFI/EFI/mageia/grubia32.efi" || -f "/boot/efi/EFI/mageia/grubaa64.efi") { my $bootloader = bootloader::read_grub2(); return $bootloader if read_($bootloader); } @@ -2503,6 +2503,9 @@ sub ensure_pkg_is_installed { if (uefi_type() eq 'ia32') { $prefix = 'i386-efi'; $pkg = 'grub2-efi(x86-32)'; + } elsif (uefi_type() eq 'aa64') { + $prefix = 'arm64-efi'; + $pkg = 'grub2-efi(aarch-64)'; } else { $prefix = 'x86_64-efi'; $pkg = 'grub2-efi(x86-64)'; diff --git a/perl-install/common.pm b/perl-install/common.pm index 474d34c21..265f7365c 100644 --- a/perl-install/common.pm +++ b/perl-install/common.pm @@ -733,8 +733,11 @@ Returns the short name of the UEFI machine type supported by the kernel stub loa =cut sub kernel_uefi_type() { - # No support for ARM yet - arch() =~ /i.86/ ? 'ia32' : 'x64'; + my $arch = arch(); + if ($arch eq 'aarch64') { + return 'aa64' + } + $arch =~ /i.86/ ? 'ia32' : 'x64'; } =item uefi_type() @@ -744,8 +747,10 @@ Returns the UEFI machine type short name =cut sub uefi_type() { + if (arch() eq 'aarch64') { + return 'aa64' + } if (-e '/sys/firmware/efi/fw_platform_size') { - # No support for ARM yet cat_('/sys/firmware/efi/fw_platform_size') =~ /32/ ? 'ia32' : 'x64'; } else { 'none'; |