X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FREADME;h=4220d34c50937594b5cad9c37dff8b443fbecd77;hb=d2720e0ce8fc47df268f7b494469114391115ec9;hp=3e761444a8dc13b97f5f87a82c8d7c866627d500;hpb=49ba9447c92d6fca214476381107a180d08e59d1;p=mirror_edk2.git diff --git a/OvmfPkg/README b/OvmfPkg/README index 3e761444a8..4220d34c50 100644 --- a/OvmfPkg/README +++ b/OvmfPkg/README @@ -5,7 +5,7 @@ The Open Virtual Machine Firmware (OVMF) project aims to support firmware for Virtual Machines using the edk2 code base. More information can be found at: - https://edk2.tianocore.org/OVMF.html +http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=OVMF === STATUS === @@ -16,6 +16,7 @@ Current capabilities: * QEMU (0.9.1 or later) - Video, keyboard, IDE, CD-ROM, serial - Runs UEFI shell + - Optional NIC support. Requires QEMU (0.12.2 or later) * UEFI Linux has booted (but is not stable) === FUTURE PLANS === @@ -23,3 +24,70 @@ Current capabilities: * Stabilize UEFI Linux boot * Test/Stabilize UEFI Self-Certification Tests (SCT) results +=== BUILDING OVMF === + +Pre-requisites: +* Build environment capable of build the edk2 MdeModulePkg. +* A properly configured ASL compiler + * Intel ASL compiler: Available from http://www.acpica.org + or + * Microsoft ASL compiler: Available from http://www.acpi.info + +Optional Pre-requisites: +* UEFI drivers for the e1000 NIC supported by QEMU + * http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17515&lang=eng + * Install the drivers into a directory called Intel3.5 in your WORKSPACE + +Update Conf/target.txt ACTIVE_PLATFORM for OVMF: + PEI arch DXE arch UEFI interfaces +* OvmfPkg/OvmfPkgIa32.dsc IA32 IA32 IA32 +* OvmfPkg/OvmfPkgIa32X64.dsc IA32 X64 X64 +* OvmfPkg/OvmfPkgX64.dsc X64 X64 X64 + +Update Conf/target.txt TARGET_ARCH based on the .dsc file: + TARGET_ARCH +* OvmfPkg/OvmfPkgIa32.dsc IA32 +* OvmfPkg/OvmfPkgIa32X64.dsc IA32 X64 +* OvmfPkg/OvmfPkgX64.dsc X64 + +Following the edk2 build process, you will find the OVMF binaries +under the $WORKSPACE/Build/*/*/FV directory. The actual path will +depend on how your build is configured. You can expect to find +these binary outputs: +* OVMF.FD + * Please note! This filename has changed. Older releases used OVMF.Fv. +* CirrusLogic5446.rom + +To enable network support add -D NETWORK_ENABLE to the build.exe command +* build -D NETWORK_ENABLE + +More information on building OVMF can be found at: + +http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=How_to_build_OVMF + +=== RUNNING OVMF on QEMU === + +* QEMU 0.9.1 or later is required. +* Either copy, rename or symlink OVMF.FD => bios.bin +* Either copy, rename or symlink CirrusLogic5446.rom => vgabios-cirrus.bin +* Be sure to use qemu-system-x86_64, if you are using and X64 firmware. + (qemu-system-x86_64 works for the IA32 firmware as well, of course.) +* Use the QEMU -L parameter to specify the directory where the bios.bin + and vgabios-cirrus.bin files are located. +* Optionally you can use the QEMU -serial command to capture the + OVMF debug messages. For example: -serial file:serial.log +* The EFI shell is built into OVMF builds at this time, so it should + run automatically if a UEFI boot application is not found on the + removable media. +* On Linux, newer version of QEMU may enable KVM feature, and this might cause OVMF + to fail to boot. The QEMU '-no-kvm' may allow OVMF to boot. +* Use the QEMU -net parameter to enable NIC support. + * QEMU does not support UEFI DHCP or UEFI PXE Boot, so lomg timeouts will occur + when NICs are enabled. The long timeouts can be avoided by interrupts the + boot sequence by pressing a key when the logo appears. + * Enable e1000 NIC with a DHCP server and restrict packet forwarding + -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10 + * Enable e1000 NIC with a DHCP server, restrict packet forwarding, and generate PCAP file + -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10 -net dump,file=a.pcap + * Enable 2 e1000 NICs with a DHCP server and restrict packet forwarding + -net nic,model=e1000,addr=3 -net nic,model=e1000,addr=4 -net user,restrict=yes -net user,dhcpstart=10.0.2.10