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