mirror of
https://github.com/johndoe6345789/MetalOS.git
synced 2026-04-24 13:45:02 +00:00
OVMF UEFI Firmware
This directory contains OVMF (Open Virtual Machine Firmware) for QEMU testing.
Overview
OVMF provides UEFI firmware implementation for QEMU, allowing us to test MetalOS in a UEFI environment.
Required Files
OVMF_CODE.fd- UEFI firmware codeOVMF_VARS.fd- UEFI variables template
Source
OVMF is part of the EDK II project.
Obtaining OVMF
Option 1: Use System-Installed OVMF (Recommended)
Many distributions provide OVMF packages:
# Ubuntu/Debian
sudo apt-get install ovmf
# Copy to deps folder
cp /usr/share/OVMF/OVMF_CODE.fd deps/ovmf/
cp /usr/share/OVMF/OVMF_VARS.fd deps/ovmf/
Option 2: Download Pre-built Binaries
Pre-built OVMF binaries are available from various sources:
# Visit https://www.kraxel.org/repos/jenkins/edk2/ for current builds
# Or use direct links from distributions' mirror sites
# Example (adjust URL to current available version):
wget https://www.kraxel.org/repos/jenkins/edk2/edk2.git-ovmf-x64-<VERSION>.rpm
rpm2cpio edk2.git-ovmf-*.rpm | cpio -idmv
cp usr/share/edk2/ovmf/OVMF_CODE.fd deps/ovmf/
cp usr/share/edk2/ovmf/OVMF_VARS.fd deps/ovmf/
Note: Pre-built binaries may become unavailable. System packages (Option 1) or building from source (Option 3) are more reliable long-term.
Option 3: Build from Source
git clone https://github.com/tianocore/edk2.git
cd edk2
git submodule update --init
make -C BaseTools
source edksetup.sh
build -a X64 -t GCC5 -p OvmfPkg/OvmfPkgX64.dsc
# Files will be in Build/OvmfX64/RELEASE_GCC5/FV/
cp Build/OvmfX64/RELEASE_GCC5/FV/OVMF_CODE.fd ../MetalOS/deps/ovmf/
cp Build/OvmfX64/RELEASE_GCC5/FV/OVMF_VARS.fd ../MetalOS/deps/ovmf/
Usage with QEMU
qemu-system-x86_64 \
-bios deps/ovmf/OVMF_CODE.fd \
-drive file=metalos.img,format=raw \
-m 512M
License
BSD-2-Clause - See EDK II license for full details.
Version Tracking
Create a VERSION file documenting:
- EDK II commit hash or version
- Build date
- Source (pre-built package, jenkins, or self-built)
- File checksums (SHA256)
Status
⚠️ Optional - Can use system-installed OVMF or this in-house copy. The Makefile already detects system OVMF paths.