由于没有人回复,我想我会与你们分享我找到的解决方案。这是我在 coreboot.org 上找到的一个不错的指南的片段
建筑物识别您的无线网卡:
# lspci
03:06.0 Network controller: Atheros Communications Inc. AR922X Wireless Network Adapter (rev 01)
识别其 PCI ID:
# lspci -s 03:06.0 -nnn
03:06.0 Network controller [0280]: Atheros Communications Inc. AR922X Wireless Network Adapter [168c:0029] (rev 01)
获取 iPXE:
git clone git://git.ipxe.org/ipxe.git
cd ipxe/src/
将以下内容复制到 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 */
#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 */
在 shell.ipxe 文件中复制以下内容:
#!ipxe
shell
shell.ipxe 是 ipxe 将在启动时运行的 ipxe 脚本,这里它将指示 ipxe 直接放入 shell。语法记录在 ipxe 网站上。
使用之前收集的 PCI ID 仅包含 ath9k 驱动程序:
make clean; make -j3 bin/168c0029.rom EMBED=./shell.ipxe
进入你的 coreboot 目录:
cd ../../coreboot/
添加 iPXE 选项 rom:
./build/cbfstool ./build/coreboot.rom print
./build/cbfstool ./build/coreboot.rom add -f ../ipxe/src/bin/168c0029.rom -n pci168c,0029.rom -t raw
./build/cbfstool ./build/coreboot.rom print
引导
在 ipxe 上启动,它会给你一个 shell: iPXE> 然后你需要输入一些命令让它从互联网通过 WiFi 启动。
识别您的 ESSID:
iwlist
设置 ESSID:
config
获取 IP 地址:
dhcp
测试官方demo(需要PS/2键盘)
chain http://boot.ipxe.org/demo/boot.php