[arch-releng] [PATCH]{RFC]Change from UEFI Shell to gummiboot-efi-x86_64 for booting

Gerardo Exequiel Pozzi vmlinuz386 at yahoo.com.ar
Thu Sep 20 22:28:30 EDT 2012


On 09/15/2012 12:40 PM, Keshav P R wrote:
> Hi,
>       In some UEFI systems, startup.nsh does not start and the boot
> stops at Shell prompt without giving any indication of any error
> whatsoever. I think instead of relying on UEFI Shell, we should use a
> proper, simple UEFI boot manager to load EFISTUB kernel in archiso.
>           So here is a patch replacing UEFI Shell as the primary boot
> pathway to gummiboot. I have renamed the UEFI Shell binaries and
> archiso now includes both v1 and v2 shell binaries, accessible via
> gummiboot menu. Some options present in shell v2 is not present in v1,
> but v1 works in all firmwares while v2 works only in >=2.3 (spec.
> version) firmwares.
>           I have attached the patch. For this support,
> gummiboot-efi-x86_64 https://aur.archlinux.org/packages.php?ID=62791
> should be moved to [extra] or [core] repo. Please give your comments.
>
> Regards.
>
> Keshav

reviewing a more in deep the patch... (next time please attach inline...)


+            mkdir -p ${work_dir}/iso/loader/entries

and etc...can not be in ${work_dir}/iso/EFI/loader ? I want to avoid 
multiple directories on the root.


+            cp ${work_dir}/iso/EFI/shellx64_v1.efi 
${work_dir}/efiboot/EFI/shellx64_v1.efi
+
+            # There are plans to support command line options via a 
config file (not yet in linux-3.3)

such line empty contains spaces, also here...

+            #echo "archisobasedir=${install_dir} 
archisolabel=${iso_label} initrd=\\EFI\\boot\\archiso.img" > 
${work_dir}/efiboot/EFI/boot/linux.conf
+
              umount ${work_dir}/efiboot


+            # There are plans to support command line options via a 
config file (not yet in linux-3.3)

and related lines, they are "obsolete" in favor of gummiboot :)


you can split this function make_boot_efi() in two, one for efiboot.img 
and other for /EFI

make_boot_efi() -> steps to build /EFI directory, for usbboot or EFI 
firmwares that understands iso9660 filesystem.
make_boot_efiboot() ->  steps to build efiboot.img for "El Torito".


-- 
Gerardo Exequiel Pozzi
\cos^2\alpha + \sin^2\alpha = 1



More information about the arch-releng mailing list