On Tue, Oct 24, 2017 at 02:10:44PM +0200, Laszlo Ersek wrote: > On 10/21/17 15:10, Ard Biesheuvel wrote: > > To make it easier for power users to provision a 'desktop' system [as > > opposed to a VM or server] from scratch, introduce a driver that adds > > boot options to the boot menu that can launch network installers over > > HTTP straight off the Internet. > > > > Currently, this only supports the 'mini.iso' style netboot installers > > that Debian/Ubuntu provide: larger images that need to be mounted by > > the installer when running under the Linux kernel are only supported > > on ACPI systems with support for the NFIT table, and this was enabled > > only recently (Linux v4.14) for arm64. For DT boot, there is currently > > no way at all to expose ramdisks created by UEFI as block devices in > > Linux. > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Ard Biesheuvel <[email protected]> > > --- > > > > Posted as an RFC because: > > a) Where does this belong? Surely not in ArmPkg but I had to put it > > somewhere > > b) Currently, the way the options are created results in them taking > > priority > > if no real boot options were set (i.e., for GRUB). > > c) Is there a use case for downloading 300-500 MB installers off the > > Internet > > for a one shot installation? Or should we just stick to the mini.iso > > flavors. > > d) Did I miss any distros we may care about? > > > > ArmPkg/Drivers/OsInstallerMenuDxe/OsInstallerMenuDxe.c | 228 > > ++++++++++++++++++++ > > ArmPkg/Drivers/OsInstallerMenuDxe/OsInstallerMenuDxe.inf | 42 ++++ > > 2 files changed, 270 insertions(+) > > https://github.com/tianocore/tianocore.github.io/wiki/HTTP-Boot > > If the HTTP Boot stack is built into the firmware, it is possible to > navigate to: > > Device Manager > Network Device List > MAC:xx:xx:xx:xx:xx:xx > HTTP Boot Configuration > > On this dialog, we have > - "Input the description" > - "Internet protocol" > - "Boot URI" > > The help text says, "A new Boot Option will be created according to this > Boot URI". > > Therefore, I think the functionality already exists (for power users > that are willing to pick a NIC and to type a URL, anyway). > > Is the goal of your patch to provide more convenience, or to provide the > base functionality?
Convenience. And given that I only noticed yesterday that the boot fails on HTTP redirects, of somewhat restricted value. Is that an official policy decision, or just a restriction of the implementation? > Also, I think that creating baked-in boot options belongs with the > platform's PlatformBootManagerLib instance, not a separate UEFI_DRIVER > module. (That's where the UEFI shell boot option is created already, for > example.) Platform BDS is responsible for connecting NICs (none of them, > some of them, all of them -- and recursively or non-recursively), so if > you want to look at specific NIC-related protocol instances, you know > exactly when to look. > > If the goal is really to save the user the typing of one URL, then I > suggest to implement this feature as a small, standalone library, under > edk2-platforms; with a sole API called CreateOsInstallerBootOptions(). > > Then, interested platforms may invoke CreateOsInstallerBootOptions() in > their PlatformBootManagerLib instances. > > (This would be similar to: > > OvmfPkg/Include/Library/QemuBootOrderLib.h > OvmfPkg/Library/QemuBootOrderLib/ > > and how we call SetBootOrderFromQemu() in ArmVirtPkg's and OvmfPkg's > PlatformBootManagerLib instances.) > > Perhaps you can introduce the lib class, with a Null instance, in edk2 > as well; and then call the new API in > > ArmPkg/Library/PlatformBootManagerLib > > at the right spot. (I think adding the API / lib class to edk2 makes > sense, but I also think the lib instance with the actual URLs should > live under edk2-platforms, somewhere.) > > Just my two cents. These were exactly the kinds of things I meant about "how best to implement" (without trying to answer them myself). Regards, Leif _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

