\r
Current capabilities:\r
* IA32 and X64 architectures\r
-* QEMU (0.9.1 or later)\r
+* QEMU (0.10.0 or later)\r
- Video, keyboard, IDE, CD-ROM, serial\r
- Runs UEFI shell\r
- Optional NIC support. Requires QEMU (0.12.2 or later)\r
-* UEFI Linux has booted (but is not stable)\r
+* UEFI Linux boots\r
+* UEFI Windows 8 boots\r
\r
=== FUTURE PLANS ===\r
\r
\r
Pre-requisites:\r
* Build environment capable of build the edk2 MdeModulePkg.\r
-* A properly configured ASL compiler\r
- * Intel ASL compiler: Available from http://www.acpica.org\r
- or\r
- * Microsoft ASL compiler: Available from http://www.acpi.info\r
-\r
-Optional Pre-requisites:\r
-* UEFI drivers for the e1000 NIC supported by QEMU\r
- * http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17515&lang=eng\r
- * Install the drivers into a directory called Intel3.5 in your WORKSPACE\r
- \r
+* A properly configured ASL compiler:\r
+ - Intel ASL compiler: Available from http://www.acpica.org\r
+ - Microsoft ASL compiler: Available from http://www.acpi.info\r
+\r
Update Conf/target.txt ACTIVE_PLATFORM for OVMF:\r
PEI arch DXE arch UEFI interfaces\r
* OvmfPkg/OvmfPkgIa32.dsc IA32 IA32 IA32\r
depend on how your build is configured. You can expect to find\r
these binary outputs:\r
* OVMF.FD\r
- * Please note! This filename has changed. Older releases used OVMF.Fv.\r
-* CirrusLogic5446.rom\r
-\r
-To enable network support add -D NETWORK_ENABLE to the build.exe command\r
-* build -D NETWORK_ENABLE\r
+ - Please note! This filename has changed. Older releases used OVMF.Fv.\r
+* OvmfVideo.rom\r
+ - This file is not built separately any longer, starting with svn r13520.\r
\r
More information on building OVMF can be found at:\r
\r
\r
* QEMU 0.9.1 or later is required.\r
* Either copy, rename or symlink OVMF.FD => bios.bin\r
-* Either copy, rename or symlink CirrusLogic5446.rom => vgabios-cirrus.bin\r
* Be sure to use qemu-system-x86_64, if you are using and X64 firmware.\r
(qemu-system-x86_64 works for the IA32 firmware as well, of course.)\r
* Use the QEMU -L parameter to specify the directory where the bios.bin\r
- and vgabios-cirrus.bin files are located.\r
+ file is located.\r
* Optionally you can use the QEMU -serial command to capture the\r
OVMF debug messages. For example: -serial file:serial.log\r
* The EFI shell is built into OVMF builds at this time, so it should\r
run automatically if a UEFI boot application is not found on the\r
removable media.\r
-* On Linux, newer version of QEMU may enable KVM feature, and this might cause OVMF\r
- to fail to boot. The QEMU '-no-kvm' may allow OVMF to boot.\r
-* Use the QEMU -net parameter to enable NIC support.\r
- * QEMU does not support UEFI DHCP or UEFI PXE Boot, so lomg timeouts will occur\r
- when NICs are enabled. The long timeouts can be avoided by interrupts the \r
- boot sequence by pressing a key when the logo appears. \r
- * Enable e1000 NIC with a DHCP server and restrict packet forwarding\r
- -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
- * Enable e1000 NIC with a DHCP server, restrict packet forwarding, and generate PCAP file\r
- -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10 -net dump,file=a.pcap\r
- * Enable 2 e1000 NICs with a DHCP server and restrict packet forwarding\r
- -net nic,model=e1000,addr=3 -net nic,model=e1000,addr=4 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
+* On Linux, newer version of QEMU may enable KVM feature, and this might\r
+ cause OVMF to fail to boot. The QEMU '-no-kvm' may allow OVMF to boot.\r
\r
=== Build Scripts ===\r
\r
-On environments with the bash shell you can use OvmfPkg/build32.sh and\r
-OvmfPkg/build64.sh to simplify building and running OVMF.\r
+On systems with the bash shell you can use OvmfPkg/build.sh to simplify\r
+building and running OVMF.\r
\r
So, for example, to build + run OVMF X64:\r
-$ OvmfPkg/build64.sh\r
-$ OvmfPkg/build64.sh qemu\r
+$ OvmfPkg/build.sh -a X64\r
+$ OvmfPkg/build.sh -a X64 qemu\r
\r
And to run a 64-bit UEFI bootable ISO image:\r
-$ OvmfPkg/build64.sh qemu -cdrom /path/to/disk-image.iso\r
+$ OvmfPkg/build.sh -a X64 qemu -cdrom /path/to/disk-image.iso\r
+\r
+To build a 32-bit OVMF without debug serial messages using GCC 4.5:\r
+$ OvmfPkg/build.sh -a IA32 -b RELEASE -t GCC45\r
+\r
+=== Network Support ===\r
+\r
+To add network drivers to OVMF:\r
+\r
+* Download UEFI drivers for the e1000 NIC\r
+ - http://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&DwnldID=17515&lang=eng\r
+ - Install the drivers into a directory called Intel3.5 in your WORKSPACE\r
+\r
+* Include the drivers in OVMF during the build:\r
+ - Add '-D NETWORK_ENABLE' to your build command\r
+ - For example: build -D NETWORK_ENABLE\r
+\r
+* Use the QEMU -net parameter to enable NIC support.\r
+ - QEMU does not support UEFI DHCP or UEFI PXE Boot, so long timeouts will\r
+ occur when NICs are enabled. The long timeouts can be avoided by\r
+ interrupts the boot sequence by pressing a key when the logo appears.\r
+ - Example: Enable e1000 NIC with a DHCP server and restrict packet\r
+ forwarding:\r
+ -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
+ - Example: Enable e1000 NIC with a DHCP server, restrict packet forwarding,\r
+ and generate PCAP file:\r
+ -net nic,model=e1000 -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
+ -net dump,file=a.pcap\r
+ - Example: Enable 2 e1000 NICs with a DHCP server and restrict\r
+ packet forwarding:\r
+ -net nic,model=e1000,addr=3 -net nic,model=e1000,addr=4\r
+ -net user,restrict=yes -net user,dhcpstart=10.0.2.10\r
+\r
+=== UNIXGCC Debug ===\r
+\r
+If you build with the UNIXGCC toolchain, then debugging will be disabled\r
+due to larger image sizes being produced by the UNIXGCC toolchain. The\r
+first choice recommendation is to use GCC44 or newer instead.\r
+\r
+If you must use UNIXGCC, then you can override the build options for\r
+particular libraries and modules in the .dsc to re-enable debugging\r
+selectively. For example:\r
+ [Components]\r
+ OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf {\r
+ <BuildOptions>\r
+ GCC:*_*_*_CC_FLAGS = -UMDEPKG_NDEBUG\r
+ }\r
+ IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf {\r
+ <BuildOptions>\r
+ GCC:*_*_*_CC_FLAGS = -UMDEPKG_NDEBUG\r
+ }\r
\r