Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
appnote:buildtargets [2018/01/24 18:11]
nikize expand on tests usage
appnote:buildtargets [2023/01/24 09:05] (current)
mcb30
Line 6: Line 6:
 and .pxe indicates boot type. and .pxe indicates boot type.
     make [platform]/​[driver].[extension]     make [platform]/​[driver].[extension]
 +The ''​bin''​ directory is included in git repo, but all platforms will be created automatically as 
 +part of the build process.
 +
 There are some other [[#special targets]] as well. There are some other [[#special targets]] as well.
 ===== Platforms ===== ===== Platforms =====
Line 16: Line 19:
    * bin-x86_64-linux    * bin-x86_64-linux
    * bin-x86_64-pcbios    * bin-x86_64-pcbios
-   * bin-arm32-efi+   * bin-arm32-efi ​     //​([[https://​github.com/​ipxe/​ipxe/​issues/​473#​issuecomment-923911561|Limited support]], works with ''​snp.efi''​ and ''​snponly.efi'',​ but not with ''​ipxe.efi''​)//​
    * bin-arm64-efi    * bin-arm64-efi
 +   * bin-arm64-linux
  
 ''​-efi''​ platforms can also [[http://​git.ipxe.org/​ipxe.git/​commitdiff/​7428ab7|have an additional -sb at the end]]. Used when submitting binaries for Secure Boot signing. ''​-efi''​ platforms can also [[http://​git.ipxe.org/​ipxe.git/​commitdiff/​7428ab7|have an additional -sb at the end]]. Used when submitting binaries for Secure Boot signing.
Line 33: Line 37:
 Identifier Protocol) provided by something else in EFI land, should only find and boot the specific NIC device it was chained from. Identifier Protocol) provided by something else in EFI land, should only find and boot the specific NIC device it was chained from.
    * ''​snp''​ same as ''​snponly''​ but tries to boot all devices and not just the one it was chained via, this is also included in ''​ipxe''​ builds    * ''​snp''​ same as ''​snponly''​ but tries to boot all devices and not just the one it was chained via, this is also included in ''​ipxe''​ builds
-   * ''​tests''​ the Linux test suite example: ''​make bin-x86_64-linux/​tests.linux && ./​bin-x86_64-linux/​tests.linux''​ +   * ''​efidrv.cab''​ efi platform build cab for signing [[https://​github.com/​ipxe/​ipxe/​commit/​dbea47ce7d61f253b58aa7268b0261922a6b1a22|commit]] 
-   * ''​tap''​ the Linux tap driver, use with ''​.linux''​ boot type+   * ''​tests''​ the Linux test suite example: ''​make bin-x86_64-linux/​tests.linux && ./​bin-x86_64-linux/​tests.linux'' ​[[http://​lists.ipxe.org/​pipermail/​ipxe-devel/​2019-January/​006468.html|post on mailinglist with more examples]] 
 +   * ''​tap''​ the Linux tap driver, use with ''​.linux''​ boot type, ex: ''​bin-x86_64-linux/​tap.linux --net tap,​if=tap0,​mac=00:​0c:​29:​c5:​39:​a1''​ 
 +   * ''​slirp''​ the Linux slirp driver, use with ''​.linux''​ boot type see [[https://​github.com/​ipxe/​ipxe/​commit/​2b5d3f582f718ca11488fb6d92ea39dd22b8ffed|commit]]
 ===== Boot type ===== ===== Boot type =====
 Determines what kind of header should be added to the binary and how entrypoints should be handled. Determines what kind of header should be added to the binary and how entrypoints should be handled.
Line 48: Line 54:
 | ''​.pdsk'' ​     | ''​pcbios'' ​          | Padded ''​.dsk''​ to work with loaders that requires exact size such as iLO  | | ''​.pdsk'' ​     | ''​pcbios'' ​          | Padded ''​.dsk''​ to work with loaders that requires exact size such as iLO  |
 | ''​.usb'' ​      | ''​pcbios'',​ ''​efi'' ​  | Same as ''​.dsk''​ for ''​pcbios'',​ in ''​efi''​ mode it's an 1440K image with partition and [driver].efi added as /​efi/​boot/​boot[arch].efi,​ mostly used for making USB stick images ​  | | ''​.usb'' ​      | ''​pcbios'',​ ''​efi'' ​  | Same as ''​.dsk''​ for ''​pcbios'',​ in ''​efi''​ mode it's an 1440K image with partition and [driver].efi added as /​efi/​boot/​boot[arch].efi,​ mostly used for making USB stick images ​  |
 +| ''​.vhd'' ​      | ''​pcbios'' ​  | ''​.usb''​ image converted to vhd [[https://​github.com/​ipxe/​ipxe/​commit/​dfbbc16ae392e8f4ab62e15a99cdfb32a06af557|commit]] ​  |
 +| ''​.raw'' ​      | ''​pcbios'' ​  | Generic raw, can be used with RPL [[https://​github.com/​ipxe/​ipxe/​commit/​22bb29eabc2f68f3e60e99df4ef33984b7795a49|commit]] ​  |
 | ''​.rom'' ​      | ''​pcbios'' ​          | File intended to be flashed into PCI-based NIC ROM | | ''​.rom'' ​      | ''​pcbios'' ​          | File intended to be flashed into PCI-based NIC ROM |
 | ''​.mrom'' ​     | ''​pcbios'' ​          | File intended to be flashed into PCI-based NIC ROM. See [[http://​ipxe.org/​download#​large_rom_images|notes for ''​.mrom''​]] | | ''​.mrom'' ​     | ''​pcbios'' ​          | File intended to be flashed into PCI-based NIC ROM. See [[http://​ipxe.org/​download#​large_rom_images|notes for ''​.mrom''​]] |
Line 54: Line 62:
 | ''​.efidrv'' ​   | ''​efi'' ​             | Driver for NIC which can be used by other EFI firmware ​       | | ''​.efidrv'' ​   | ''​efi'' ​             | Driver for NIC which can be used by other EFI firmware ​       |
 | ''​.efirom'' ​   | ''​efi'' ​             | File intended to be flashed into NIC ROM for EFI | | ''​.efirom'' ​   | ''​efi'' ​             | File intended to be flashed into NIC ROM for EFI |
-| ''​.linux'' ​    | ''​linux'' ​           | Linux ELF executable, use for ''​tests''​ and ''​tap''​ drivers |+| ''​.linux'' ​    | ''​linux'' ​           | Linux ELF executable, use for ''​tests'',​ ''​slirp''​ and ''​tap''​ drivers |
  
 ===== Special targets ===== ===== Special targets =====
Line 64: Line 72:
    * ''​make [platform]/​doc''​ Builds doxygen documentation    * ''​make [platform]/​doc''​ Builds doxygen documentation
    * ''​make docview''​ Tries to open doxygen documentation in browser    * ''​make docview''​ Tries to open doxygen documentation in browser
 +
 +===== Cross Compile =====
 +For cross-compiling,​ you will need to specify an approriate ''​CROSS=...''​ parameter to specify your cross-toolchain prefix. For example:
 +''​
 +make CROSS=aarch64-linux-gnu- bin-arm64-efi/​ipxe.efi
 +''​
 +
 +Note that you do not need to (and should not) specify ''​ARCH''​ explicitly: this will be calculated based on the platform portion of the build target. [[https://​github.com/​ipxe/​ipxe/​issues/​471#​issuecomment-923914032|Details on GitHub issue]]
 +
 +
 +
appnote/buildtargets.1516817461.txt.gz · Last modified: 2018/01/24 18:11 by nikize
Recent changes RSS feed CC Attribution-Share Alike 4.0 International Driven by DokuWiki
All uses of this content must include an attribution to the iPXE project and the URL https://ipxe.org
References to "iPXE" may not be altered or removed.