Re: Grub2 UEFI PXE chainloader unloading Network Stack when chainloading an EFI module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 12, 2016 at 12:52 PM, Leandro Gustavo Biss Becker
<lbecker@xxxxxxxxxxxxxxxxx> wrote:
> Hello.
>
> I'm trying to use a newer version of GRUB2 (grub2-efi-2.02-0.34.fc24.x86_64) for UEFI PXE booting Linux (Clonezilla) and also a custom UEFI application (custom shell) that needs access to the TCP4 UEFI stack in firmware (depends of the scenario). Using older versions of GRUB2 it is working, but with newer versions, when it chainloads the custom UEFI application all the UEFI Network Protocols are gone (error 14 when calling gBS->LocateProtocol(&gEfiPxeBaseCodeProtocolGuid, ...).
>
> I need the newer version because the new netboot capabilities that looks for a cfg file using the MAC Address as grub.cfg-01-AA-BB-CC-DD-EE-FF.
> Is newer versions of grub2 unloading UEFI protocols (maybe calling UEFI's Boot Services ExitBootServices) before chainloading UEFI applications?
>
> PS: Is this the correct forum for this matter?

Sure. But maybe not too many people have done UEFI PXE booting. I've
done PXE and know enough about UEFI to stop now and forever hold my
peace, but I've never done UEFI PXE.

My understanding is that PXE is booting is going to talk to a DHCP
server which should be configured to recognize UEFI specifically, so
it can hand over the proper kind of bootloader, in this case an EFI
version of GRUB2. What I don't know is how that works exactly. Does
the PXE client-server connection permit the transfer of multiple
files? For example....

Fedora builds a grubx64.efi (the boot.img and core.img) within their
build system and then signs it in order to support UEFI Secure Boot.
But this signed binary doesn't contain all of GRUB's modules. Those
are in a separate package that isn't installed by default, in
grub2-efi-modules. So maybe the server doesn't have those modules
installed with the new version of GRUB? Or maybe they're not baked
into the Fedora built grubx64.efi?

So I'd figure out what's different between the old GRUB and new GRUB
verions, and see if what's missing is a regression, or if it's that
those modules were pulled out into grub2-efi-modules on  purpose. And
then if there's some way between PXE client-server and GRUB for GRUB
to get any of those modules, or if they must be baked into the
grubx64.efi (the actual EFI OSLoader, or bootloader). If it does, then
it might be that you have to build your own grubx64.efi using
grub2-install or one of the other script commands for this purpose,
and explicitly add in the modules that you need baked into that
grubx64.efi.

The next thing is whether or not you need Secure Boot support. If you
do, then there's a kind of chainloading that has to happen, where the
first thing loaded is shim.efi, then mokutil.efi so that your own key
can be registered with the firmware, and then your own signed
grubx64.efi.

Maybe that's enough for now to start looking.


-- 
Chris Murphy
--
users mailing list
users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe or change subscription options:
https://lists.fedoraproject.org/admin/lists/users@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
Guidelines: http://fedoraproject.org/wiki/Mailing_list_guidelines
Have a question? Ask away: http://ask.fedoraproject.org



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux