IPXE: Difference between revisions

From coreboot
Jump to navigation Jump to search
Line 18: Line 18:
  git clone git://git.ipxe.org/ipxe.git
  git clone git://git.ipxe.org/ipxe.git
  cd ipxe/src/
  cd ipxe/src/
Copy the following into
Copy the following into config/local/general.h:
#undef PXE_STACK              /* PXE stack in iPXE - you want this! */
#undef PXE_MENU                /* PXE menu booting */
#undef DOWNLOAD_PROTO_TFTP    /* Trivial File Transfer Protocol */
#undef SANBOOT_PROTO_ISCSI    /* iSCSI protocol */
#undef SANBOOT_PROTO_AOE      /* AoE protocol */
#undef SANBOOT_PROTO_IB_SRP    /* Infiniband SCSI RDMA protocol */
#undef SANBOOT_PROTO_FCP      /* Fibre Channel protocol */
#undef CRYPTO_80211_WEP        /* WEP encryption (deprecated and insecure!) */
#undef CRYPTO_80211_WPA        /* WPA Personal, authenticating with passphrase */
#undef CRYPTO_80211_WPA2      /* Add support for stronger WPA cryptography */
#undef IMAGE_NBI              /* NBI image support */
#undef IMAGE_ELF              /* ELF image support */
#undef IMAGE_MULTIBOOT        /* MultiBoot image support */
#undef IMAGE_PXE              /* PXE image support */
#define        IMAGE_SCRIPT            /* iPXE script image support */
#define        IMAGE_BZIMAGE          /* Linux bzImage image support */
#undef IMAGE_COMBOOT          /* SYSLINUX COMBOOT image support */
#undef IMAGE_EFI              /* EFI image support */
#undef IMAGE_SDI              /* SDI image support */
#undef NVO_CMD                /* Non-volatile option storage commands */
#define CONFIG_CMD              /* Option configuration console */
#undef FCMGMT_CMD              /* Fibre Channel management commands */
#undef ROUTE_CMD              /* Routing table management commands */
#define IMAGE_CMD              /* Image management commands */
#undef SANBOOT_CMD            /* SAN boot commands */
#undef MENU_CMD                /* Menu commands */
#undef LOGIN_CMD              /* Login command */
#undef SYNC_CMD                /* Sync command */
#undef NSLOOKUP_CMD            /* DNS resolving command */
#undef TIME_CMD                /* Time commands */
#undef DIGEST_CMD              /* Image crypto digest commands */
#undef LOTEST_CMD              /* Loopback testing commands */
#undef VLAN_CMD                /* VLAN commands */
#undef PXE_CMD        /* PXE commands */
#undef REBOOT_CMD            /* Reboot command */
#undef IMAGE_TRUST_CMD /* Image trust management commands */


=== Booting ===
=== Booting ===

Revision as of 16:25, 7 October 2012

iPXE is a tool for loading an operating system over a network. It is a fork of GPXE.

Like GPXE uses legacy BIOS callbacks, and it works well with SeaBIOS. See GPXE.

Building and Running in seaBIOS howto

Here are the goals of this howto:

  • fits in 128k for easier building process
  • boot over an ath9k WiFi over an open/unencrypted wifi to an image that resides on the internet...

Building

Identify your wireless network card:

# lspci
[...]
03:06.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)

Identify its PCI IDs:

# lspci -s 03:06.0 -nnn
03:06.0 Network controller [0280]: Atheros Communications Inc. AR922X Wireless Network Adapter [168c:0029] (rev 01)

get ipxe:

git clone git://git.ipxe.org/ipxe.git
cd ipxe/src/

Copy the following into config/local/general.h:

#undef PXE_STACK               /* PXE stack in iPXE - you want this! */
#undef PXE_MENU                /* PXE menu booting */
#undef DOWNLOAD_PROTO_TFTP     /* Trivial File Transfer Protocol */
#undef SANBOOT_PROTO_ISCSI     /* iSCSI protocol */
#undef SANBOOT_PROTO_AOE       /* AoE protocol */
#undef SANBOOT_PROTO_IB_SRP    /* Infiniband SCSI RDMA protocol */
#undef SANBOOT_PROTO_FCP       /* Fibre Channel protocol */
#undef CRYPTO_80211_WEP        /* WEP encryption (deprecated and insecure!) */
#undef CRYPTO_80211_WPA        /* WPA Personal, authenticating with passphrase */
#undef CRYPTO_80211_WPA2       /* Add support for stronger WPA cryptography */
#undef IMAGE_NBI               /* NBI image support */
#undef IMAGE_ELF               /* ELF image support */
#undef IMAGE_MULTIBOOT         /* MultiBoot image support */
#undef IMAGE_PXE               /* PXE image support */
#define        IMAGE_SCRIPT            /* iPXE script image support */
#define        IMAGE_BZIMAGE           /* Linux bzImage image support */
#undef IMAGE_COMBOOT           /* SYSLINUX COMBOOT image support */
#undef IMAGE_EFI               /* EFI image support */
#undef IMAGE_SDI               /* SDI image support */
#undef NVO_CMD                 /* Non-volatile option storage commands */
#define CONFIG_CMD              /* Option configuration console */
#undef FCMGMT_CMD              /* Fibre Channel management commands */
#undef ROUTE_CMD               /* Routing table management commands */
#define IMAGE_CMD               /* Image management commands */
#undef SANBOOT_CMD             /* SAN boot commands */
#undef MENU_CMD                /* Menu commands */
#undef LOGIN_CMD               /* Login command */
#undef SYNC_CMD                /* Sync command */
#undef NSLOOKUP_CMD            /* DNS resolving command */
#undef TIME_CMD                /* Time commands */
#undef DIGEST_CMD              /* Image crypto digest commands */
#undef LOTEST_CMD              /* Loopback testing commands */
#undef VLAN_CMD                /* VLAN commands */
#undef PXE_CMD         /* PXE commands */
#undef REBOOT_CMD             /* Reboot command */
#undef IMAGE_TRUST_CMD /* Image trust management commands */

Booting

  • keep pressing ctrl+b while booting
  • it will give you a shell:
iPXE>
  • You will then need to type some commands to make it boot on the WiFi from the Internet.
  • Identify your ESSID
iwlist
  • set the ESSID
config
  • get an IP Address
dhcp
  • test the official demo (requires a ps2 keyboard)
chain http://boot.ipxe.org/demo/boot.php