Does the FullROM option support PXE Booting?

Hello all,

Rather than becoming e-waste, I am working on turning a kind of large collection of Chromebooks into a cluster computer. I was wondering if the fullROM option allowed for PXE booting, that way I could use MaaS to help image and deploy the nodes in the cluster. Thanks!

no, but it can be enabled when compiling. But only supports LAN NICs, not WLAN IIRC

Perfect, I’ll read up on the process unless you have some documentation available, I looked but was unable to find anything relating to it. Each once will be bridged over a USB NIC as the chromebooks don’t have ethernet. Provisioning over MaaS I estimate will have a lot of time as compared to imaging each one individually after flashing them.

I think I found the support under coreboot in payloads/edk2 on the repo. Just to confirm, when performing the UEFI Fullrom procedure, I would not have the ability to enable this, but rather I would need to change the value in coreboot before compiling the firmware.

correct, PXE booting is not enabled in the firmware available via the firmware utility script.

you will need to add CONFIG_EDK2_NETWORK_PXE_SUPPORT=y to your board’s config file and rebuild. That will add PXE support for Realtek and ASIX USB NICs.

So using a USB-C to ethernet adapter will work, but not integrated Wi-Fi or a USB Wi-Fi adapter?

I don’t know how you got that from my posts. I said integrated WiFi modules will not work, and that some specific USB NICs should work.

How do you find out which ones should work?

I added this (on Jinlon) and also the HTTP option and nothing changed in the firmware settings screen. Is a PXE option supposed to show up?

haven’t tested it in several versions/rebases. it should if there is a compatible NIC

I didn’t have any USB to ethernet adapter plugged in. Does it only show up if one is plugged in? Does it only show up if it’s plugged in and the ethernet cable is also connected?

1 Like

it’s not going to add a boot entry for a device that isn’t present. cable connection doesn’t affect device detection

I can confirm that as long as a network capable USB device is detected PXE shows up as an option.

I did not set up a TFTP server but I was able to use netboot.xyz. I’m not sure how netboot.xyz works and if it requires enabling PXE in firmware, but it’s good that it’s working.

CONFIG_VENDOR_GOOGLE=y
CONFIG_IFD_BIN_PATH=“3rdparty/blobs/mainboard/google/puff/puff/flashdescriptor.bin”
CONFIG_ME_BIN_PATH=“3rdparty/blobs/mainboard/google/puff/puff/me.bin”
CONFIG_BOARD_GOOGLE_KAISA=y
CONFIG_HAVE_IFD_BIN=y
CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL=y
CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE=“3rdparty/blobs/mainboard/google/puff/puff/ec.RW.flat”
CONFIG_HAVE_ME_BIN=y
CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y
CONFIG_NO_GFX_INIT=y
CONFIG_EDK2_NETWORK_PXE_SUPPORT=y

Acer Chromebox CXI4 KAISA

Can this be booted via PXE using the onboard network card?

no, the UEFI PXE driver for the Realtek NIC loads but shows an all-zero MAC address and it’s not usable


ipxe?

doesn’t work AFAIK

CONFIG_VENDOR_GOOGLE=y

CONFIG_IFD_BIN_PATH=“3rdparty/blobs/mainboard/google/puff/puff/flashdescriptor.bin”

CONFIG_ME_BIN_PATH=“3rdparty/blobs/mainboard/google/puff/puff/me.bin”

CONFIG_BOARD_GOOGLE_KAISA=y

CONFIG_HAVE_IFD_BIN=y

CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_EXTERNAL=y

CONFIG_EC_GOOGLE_CHROMEEC_FIRMWARE_FILE=“3rdparty/blobs/mainboard/google/puff/puff/ec.RW.flat”

CONFIG_HAVE_ME_BIN=y

CONFIG_DO_NOT_TOUCH_DESCRIPTOR_REGION=y

CONFIG_NO_GFX_INIT=y

#ADD ADD ADD

CONFIG_EDK2_NETWORK_PXE_SUPPORT=y

CONFIG_EDK2_NETWORK_HTTP_BOOT_SUPPORT=y

CONFIG_EDK2_NETWORK_ISCSI_SUPPORT=y

I am using a Kaisa motherboard and adding these three items.
In the UEFI shell, i can load the ipxe.efi (official pre built binary) PXE boot through a USB drive (fs0:).
We are working hard to integrate IPXE into the BIOS boot option.

Many mistakes
ERI configuration
8111H support
Edk2 custom configuration
Get_mac_address function
Intel platform optimization
Quick Start Optimization
Memory training optimization
Screen display optimization

I’ve recompiled several times with several options. The only time I can get a PXE option to show up is using a USB NIC, never the onboard 10ec:8186 which is listed as a supported ipxe device. I’ve included both the stable and master versions of ipxe to no avail. What gives with that card?