[master 1/1] Make 64-bit kernel on 32-bit firmware work for x86 efi machines

vathpela installerbot-noreply at redhat.com
Mon Apr 13 18:56:59 UTC 2015


From: Peter Jones <pjones at redhat.com>

This enables Baytrail and similar atom CPUs that typically ship with a
32-bit firmware, but have a 64-bit capable CPU.

Signed-off-by: Peter Jones <pjones at redhat.com>
---
 share/efi.tmpl             | 9 +++++++--
 share/live/efi.tmpl        | 9 +++++++--
 share/live/x86.tmpl        | 8 +++++---
 share/runtime-install.tmpl | 2 +-
 share/x86.tmpl             | 8 +++++---
 5 files changed, 25 insertions(+), 11 deletions(-)

diff --git a/share/efi.tmpl b/share/efi.tmpl
index c82e1c7..781387a 100644
--- a/share/efi.tmpl
+++ b/share/efi.tmpl
@@ -1,4 +1,4 @@
-<%page args="configdir, KERNELDIR, efiarch, isolabel"/>
+<%page args="configdir, KERNELDIR, efiarch, efiarch32, isolabel"/>
 <%
 from string import lower
 EFIBOOTDIR="EFI/BOOT"
@@ -9,9 +9,14 @@ APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol"
 mkdir ${EFIBOOTDIR}
 mkdir ${EFIBOOTDIR}/fonts/
 install boot/efi/EFI/*/shim.efi ${EFIBOOTDIR}/BOOT${efiarch}.EFI
-install boot/efi/EFI/*/MokManager.efi ${EFIBOOTDIR}/
+install boot/efi/EFI/*/MokManager${efiarch|lower}.efi ${EFIBOOTDIR}/
 install boot/efi/EFI/*/gcd${efiarch|lower}.efi ${EFIBOOTDIR}/grub${efiarch|lower}.efi
 install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/
+%if efiarch32:
+install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32}.EFI
+install boot/efi/EFI/*/MokManager${efiarch32|lower}.efi ${EFIBOOTDIR}/
+install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi
+%endif
 
 ## actually make the EFI images
 ${make_efiboot("images/efiboot.img")}
diff --git a/share/live/efi.tmpl b/share/live/efi.tmpl
index 54e1e15..b463666 100644
--- a/share/live/efi.tmpl
+++ b/share/live/efi.tmpl
@@ -1,4 +1,4 @@
-<%page args="configdir, KERNELDIR, efiarch, isolabel"/>
+<%page args="configdir, KERNELDIR, efiarch, efiarch32, isolabel"/>
 <%
 from string import lower
 EFIBOOTDIR="EFI/BOOT"
@@ -9,9 +9,14 @@ APPLE_EFI_DISKNAME=inroot+"/usr/share/pixmaps/bootloader/fedora-media.vol"
 mkdir ${EFIBOOTDIR}
 mkdir ${EFIBOOTDIR}/fonts/
 install boot/efi/EFI/*/shim.efi ${EFIBOOTDIR}/BOOT${efiarch}.EFI
-install boot/efi/EFI/*/MokManager.efi ${EFIBOOTDIR}/
+install boot/efi/EFI/*/MokManager${efiarch|lower}.efi ${EFIBOOTDIR}/
 install boot/efi/EFI/*/gcd${efiarch|lower}.efi ${EFIBOOTDIR}/grub${efiarch|lower}.efi
 install boot/efi/EFI/*/fonts/unicode.pf2 ${EFIBOOTDIR}/fonts/
+%if efiarch32:
+install boot/efi/EFI/*/shim${efiarch32|lower}.efi ${EFIBOOTDIR}/BOOT${efiarch32}.EFI
+install boot/efi/EFI/*/MokManager${efiarch32|lower}.efi ${EFIBOOTDIR}/
+install boot/efi/EFI/*/gcd${efiarch32|lower}.efi ${EFIBOOTDIR}/grub${efiarch32|lower}.efi
+%endif
 
 ## actually make the EFI images
 ${make_efiboot("images/efiboot.img")}
diff --git a/share/live/x86.tmpl b/share/live/x86.tmpl
index f60b80d..1346cb6 100644
--- a/share/live/x86.tmpl
+++ b/share/live/x86.tmpl
@@ -57,9 +57,11 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
 %endif
 
 ## WHeeeeeeee, EFI.
-## We could remove the basearch restriction someday..
-<% efiargs=""; efigraft=""; efihybrid="" %>
-%if exists("boot/efi/EFI/fedora/gcdx64.efi") and basearch != 'i386':
+<% efiargs=""; efigraft=""; efihybrid=""; efiarch32=None; %>
+%if exists("boot/efi/EFI/fedora/gcdia32.efi"):
+    <% efiarch32 = 'IA32' %>
+%endif
+%if exists("boot/efi/EFI/fedora/gcdx64.efi"):
     <%
     efiarch = 'X64' if basearch=='x86_64' else 'IA32'
     efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)
diff --git a/share/runtime-install.tmpl b/share/runtime-install.tmpl
index 69e565b..6a8aedc 100644
--- a/share/runtime-install.tmpl
+++ b/share/runtime-install.tmpl
@@ -33,7 +33,7 @@ installpkg grubby
     installpkg kernel-PAE gpart
 %endif
 %if basearch == "x86_64":
-    installpkg efibootmgr grub2-efi shim shim-unsigned
+    installpkg efibootmgr grub2-efi.x86_64 grub2-efi.i686 shim.x86_64 shim.i686 shim-unsigned.x86_64 shim-unsigned.i686
 %endif
 %if basearch in ("i386", "x86_64"):
     installpkg grub2 grub2-tools memtest86+ syslinux syslinux-nonlinux
diff --git a/share/x86.tmpl b/share/x86.tmpl
index 7273e28..c69920f 100644
--- a/share/x86.tmpl
+++ b/share/x86.tmpl
@@ -71,9 +71,11 @@ hardlink ${KERNELDIR}/initrd.img ${BOOTDIR}
 %endif
 
 ## WHeeeeeeee, EFI.
-## We could remove the basearch restriction someday..
-<% efiargs=""; efigraft=""; efihybrid="" %>
-%if exists("boot/efi/EFI/*/gcdx64.efi") and basearch != 'i386':
+<% efiargs=""; efigraft=""; efihybrid=""; efiarch32=None %>
+%if exists("boot/efi/EFI/*/gcdia32.efi"):
+    <% efiarch32 = 'IA32' %>
+%endif
+%if exists("boot/efi/EFI/*/gcdx64.efi"):
     <%
     efiarch = 'X64' if basearch=='x86_64' else 'IA32'
     efigraft="EFI/BOOT={0}/EFI/BOOT".format(outroot)


-- 
To view this commit on github, visit https://github.com/rhinstaller/lorax/commit/02983fa513383fd6f674a406c252652231e893d6


More information about the anaconda-patches mailing list