IPXE
The wiki is being retired!
Documentation is now handled by the same processes we use for code: Add something to the Documentation/ directory in the coreboot repo, and it will be rendered to https://doc.coreboot.org/. Contributions welcome!
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