This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
download [2015/09/10 21:05] robinsmidsrod |
download [2017/08/02 15:53] mcb30 |
||
---|---|---|---|
Line 19: | Line 19: | ||
* gcc (version 3 or later) | * gcc (version 3 or later) | ||
- | * binutils (version 2.16 or later) | + | * binutils (version 2.18 or later) |
* make | * make | ||
* perl | * perl | ||
- | * syslinux (for isolinux, only needed for building .iso images) | ||
* liblzma or xz header files | * liblzma or xz header files | ||
- | * zlib, binutils and libiberty header files (only needed for EFI builds) | + | * mtools |
+ | * mkisofs (needed only for building .iso images) | ||
+ | * syslinux (for isolinux, needed only for building .iso images) | ||
===== Choosing what to build ===== | ===== Choosing what to build ===== | ||
Line 127: | Line 128: | ||
Not all network cards will support a ''.mrom'' image. To support a ''.mrom'' image, a network card must have at least one PCI memory BAR that is at least as large as its expansion ROM BAR. For example, if the network card has a 128kB expansion ROM BAR and a 256kB memory BAR, then it will be able to support a ''.mrom'' image up to 128kB in size. | Not all network cards will support a ''.mrom'' image. To support a ''.mrom'' image, a network card must have at least one PCI memory BAR that is at least as large as its expansion ROM BAR. For example, if the network card has a 128kB expansion ROM BAR and a 256kB memory BAR, then it will be able to support a ''.mrom'' image up to 128kB in size. | ||
- | ==== EFI ==== | + | ==== UEFI ==== |
- | iPXE supports the EFI and UEFI environments, as well as the standard PC BIOS. You can build an EFI driver ROM using the ''.efirom'' image format. For example: | + | iPXE supports both UEFI and BIOS platforms. You can build a UEFI ROM using the ''.efirom'' image format. For example: |
- | make bin-i386-efi/808610de.efirom # 32-bit driver ROM | + | make bin-x86_64-efi/808610de.efirom |
- | make bin-x86_64-efi/808610de.efirom # 64-bit driver ROM | + | |
- | It is also possible to build a generic EFI binary you can start from the UEFI shell or firmware. For example: | + | where **808610de** is constructed from the network card's PCI vendor and device IDs. |
- | make bin-x86_64-efi/ipxe.efi # 64-bit EFI binary (try this first) | + | You can also build a ''.efi'' executable which you can [[:howto:chainloading|chainload]] from an existing UEFI ROM (or run directly from the UEFI shell): |
- | make bin-x86_64-efi/snponly.efi # 64-bit EFI binary (SNP/NII driver only) | + | |
- | make bin-i386-efi/ipxe.efi # 32-bit EFI binary (only used on older Apple machines) | + | |
- | + | ||
- | In most situations you'd want the 64-bit ipxe.efi that includes iPXE-provided native drivers. If your network adapter is not supported by iPXE directly, you can still use the SNP/NII driver using [[:howto/chainloading|chainloading]]. The DHCP/TFTP setup is the same as you use for legacy BIOS environments, but you use ''ipxe.efi/snponly.efi'' instead of ''ipxe.pxe/undionly.kpxe''. See the [[:examples|example section]] for more help. | + | |
+ | make bin-x86_64-efi/ipxe.efi | ||