Rich Mingin (PLUG) on 22 Feb 2016 15:41:48 -0800


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

Re: [PLUG] FYI: It is possible* to boot UEFI executables from NTFS


Setting that aside, that's not what I was trying to explain at all.

Coreboot *is* firmware. Coreboot runs on bare metal and brings it to a known state, and describes the available resources to any any bootloaders or operating systems.

UEFI is a standard for how to present resources to an OS and how to locate/load bootloaders.

Your firmware can support UEFI booting, but UEFI is not your firmware. Your firmware is Coreboot, Insyde, Phoenix, Award, other. Most commercial firmwares support UEFI boot natively and legacy (aka BIOS or MBR boot) via CSM.

So again, doubling back, I'm not parsing your question as valid.

"Does anybody know if anybody has created anything
like "coreboot for UEFI" or similar?  I'm thinking about a
linux+initramfs that is just designed to provide a super-flexible
bootloader for another OS.  Maybe that is what the more popular UEFI
bootloaders already do."

Yes. Folks have done exactly that. Coreboot can be linked to Tiano to provide a fully FOSS UEFI setup.

Likewise, if you were referring to a minimal layer acting as a super-flexible bootloader to another OS, that's what the UEFI shell is for. Like, that is *exactly* the description of the UEFI shell. It's a super-minimalist and ultra-lightweight basic environment that's intended to allow configuring and launching an unusual or non-standard boot configuration.

Using Linux+initrd to reinvent that wheel probably isn't a good use of resources. It's like making a car out of concrete bricks. You can do it, absolutely, but you're starting with tools intended for another purpose, and you're competing with an established, very well tested, and highly optimized solution. Why ice skate uphill?

Here's the source to Intel's reference EFI shell. https://github.com/tianocore/tianocore.github.io/wiki/Efi-shell

Sure, you could build up a binary with Linux+initrd+busybox and a few other bits, to give similar functionality, but it would be lots bigger and not purpose-built. Instead, why not build on the reference UEFI shell, make a loadable UEFI driver for ext4, XFS, NTFS or whatever (or just grab one of the FOSS ones floating around and compile it), and you're three-quarters there. Then just chainload into whatever mechanism your subject OS prefers and you're there.

Don't get me wrong, I like the idea of making a Coreboot-esque (as in the ultra-strict-FOSS-only mindset, not the specifics) omni-loader, but there are a number of solutions filling that niche already (grub and refind just to mention two excellent ones), and doing it over again from scratch doesn't seem appealing.

On Mon, Feb 22, 2016 at 6:24 PM, Rich Freeman <r-plug@thefreemanclan.net> wrote:
On Mon, Feb 22, 2016 at 5:57 PM, Rich Mingin (PLUG) <plug@frags.us> wrote:
>
> WRT Rich's second idea: Not sure exactly what you're asking. Coreboot is a
> firmware that inits hardware, you can set it up to hand over to Tianocore
> (Intel's reference software UEFI implementation) for a FOSS boot+UEFI
> solution. Tiano doesn't have the capability to init anything besides very
> basic hardware, that's why you would need Coreboot to handle that and hand
> over to Tiano.
>

I'm aware that Coreboot is typically run in firmware.  I was just
referring to it in general as a linux OS designed just to boot other
operating systems.  Perhaps I could have said a linux-based secondary
bootloader (capable of running EFI programs or GRUB or linux or
whatever).  However, these are all things that coreboot does, and I'm
sure you could get coreboot to run from disk just as you can get it to
run from flash.

--
Rich
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug