Bug ID 908469
Summary kiwi: Missing EFI support for armv7
Classification openSUSE
Product openSUSE Factory
Version 201412*
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Installation
Assignee ms@suse.com
Reporter agraf@suse.com
QA Contact ms@suse.com
Found By ---
Blocker ---

Kiwi doesn't support EFI with grub2 on armv7 today. However, we do have at
least one platform (HIP04D01) that needs this configuration.

I've quickly assembled the patch below and am testing it now to check whether I
managed to catch all cases:

diff --git a/modules/KIWIBoot.pm b/modules/KIWIBoot.pm
index c2dc49e..0c3638e 100644
--- a/modules/KIWIBoot.pm
+++ b/modules/KIWIBoot.pm
@@ -3447,6 +3447,9 @@ sub setupBootLoaderStages {
         } elsif (($arch eq 'aarch64') || ($arch eq 'arm64')) {
             $efipc = 'arm64-efi';
             $grubpc = 'arm64-efi';
+        } elsif ($arch =~ /arm/) {
+            $efipc = 'arm-efi';
+            $grubpc = 'arm-efi';
         } elsif ($arch =~ /ppc|ppc64|ppc64le/) {
             if ($firmware eq 'ofw') {
                 $grubofw = 'powerpc-ieee1275';
@@ -3772,6 +3775,9 @@ sub setupBootLoaderStages {
             } elsif (($arch eq 'aarch64') || ($arch eq 'arm64')) {
                 $fo     = 'arm64-efi';
                 $fo_bin = 'bootaa64.efi';
+            } elsif ($arch =~ /arm/) {
+                $fo     = 'arm-efi';
+                $fo_bin = 'bootarm.efi';
             }
             my $core= "$tmpdir/EFI/BOOT/$fo_bin";
             my $core_opts;
@@ -3805,6 +3811,8 @@ sub setupBootLoaderStages {
                 $fo_bin = 'bootx32.efi';
             } elsif (($arch eq 'aarch64') || ($arch eq 'arm64')) {
                 $fo_bin = 'bootaa64.efi';
+            } elsif ($arch =~ /arm/) {
+                $fo_bin = 'bootarm.efi';
             }
             $result = 0;
             if ($zipped) {
@@ -4406,6 +4414,8 @@ sub setupBootLoaderConfiguration {
                         print $FD "\t"."chainloader $prefix/bootx32.efi"."\n";
                     } elsif (($arch eq 'aarch64') || ($arch eq 'arm64')) {
                         print $FD "\t"."chainloader
$prefix/bootaa64.efi"."\n";
+                    } elsif ($arch =~ /arm/) {
+                        print $FD "\t"."chainloader $prefix/bootarm.efi"."\n";
                     }
                 } else {
                     print $FD "\t"."set root='hd0'"."\n";


You are receiving this mail because: