On 04/03/14 03:57, Gabriel L. Somlo wrote:
On Wed, Apr 02, 2014 at 01:01:28PM -0400, Gabriel L. Somlo wrote:
Speaking of, I *thought* I had a vague idea of how all this stuff fits together, but it turns out I don't... There's
OVMF http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF
TianoCore http://www.coreboot.org/TianoCore
Apparently, TianoCore is a "coreboot payload", which in my mind is somewhat analogous to bootloader "stages" chaining off each other, but then what's OVMF (the only thing I actually tried, which only works on piix) ? Is it a packaged bundle of coreboot+tianocore ? or something else entirely ?
What if I want to send a patch against this whole "thing" to facilitate integration with the new smbios table generator in qemu ?
Which git repos do I need to have around, and how to stitch them together to obtain "the thing you use as an argument to -bios in lieu of SeaBIOS", when it comes time to test ? :)
Unless you want to do OVMF development yourself (ie. as long as you'd like to test only), you're best off with
(a) Gerd's packages:
(b) If you use a Fedora host, you can also try a (recently refreshed) Copr build, thanks to Paolo:
http://copr-be.cloud.fedoraproject.org/results/bonzini/ovmf/
Under (a) you find some short instructions, and a set of RPMs that is automatically rebuilt twice a day (IIRC).
Both (a) and (b) include the downstream-only SMBIOS patches.
I'm guessing this is a FAQ, so if there's one place that explains it all, please point me at it. Otherwise I'd be happy to write it up once I get my head wrapped around it :)
Nevermind, it seems it's all under git://git.code.sf.net/p/tianocore/edk2 :)
Although the nomenclature is still a bit fuzzy to me, the "thing to build" within edk2 appears to be OvmfPkg (ACTIVE_PLATFORM = OvmfPkg/OvmfPkgX64.dsc, with TOOL_CHAIN_TAG = GCC48, in Conf/target.txt, at least on F20).
I now have the latest and greatest "upstream" OVMF.fd, and I can use it (piix only) to boot Fedora 20 live x86_64. Guess I'm on my way :)
You can most certainly build OVMF yourself, yes; the OvmfPkg/build.sh script is a convenience wrapper. See also OvmfPkg/README.
I get "missing smbios entry point" when I do a dmidecode, BTW. QEMU is sending type 1, 3, 4, etc. blobs in fw_cfg, not sure yet what I need to do to get OVMF to add the entry point... Maybe I should try without my smbios-patched qemu ?
You don't see SMBIOS tables in the guest because you've built upstream OVMF. As I said before, upstream OvmfPkg doesn't include my SMBIOS patches. Both (a) and (b) do however.
One further note (also mentioned in OvmfPkg/README): don't use OVMF.fd with -bios; use it with -pflash (you need a Linux 3.7+ host for this). This will give your guest real runtime variable services -- non-volatile variable data will be written back to the OVMF.fd file.
Thanks Laszlo