iPXE discussion forum

Full Version: Getting ROM file under 64K
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

I am trying to build a ROM file and get it to be under 64K (so I can burn it in to the FLASH ROM)

I n general.h
undef all protocol except HTTP
undef wireless cryptos,

In console.h

This still gives me a file of 66048 bytes.

I might need to include NFS and TFTP later on.

Is there anything else I can remove?

I am using an Intel Pro 100/S Desktop PCI card. Would I be better desoldering the 512Kb FLASH ROM and soldering in a 1Mb FLASH ROM instead? Has anyone tried changing the ROM for a larger one (on this card or any other)?


I think your only option is to remove either HTTP or the menu command to get below the 64KB limit. I believe each of them pull in about 3KB each. That should give you a ROM that follows normal PXE behavior, which you can then "upgrade" using chainloading to a fully fledged iPXE binary. I've documented how to chainload using ipxe feature flags here: https://gist.github.com/robinsmidsrod/4008017
The DHCP server is a Cisco Catalist 6500 switch and I dont think I will get access to it.

If I remove the menu and HTTP but include TFTP, can I still use a script to pull a full feature version? That might be an option

I have removed the original FLASH ROM and the A16 address pin is electrically connected to the controller IC, so Im hoping I still have a chance of using a larger ROM.
Do I need to pad out a > 64K with ZEROs at the end to make it up to 128K or can I just leave the unused space on the ROM as FF?
Yes, there is no problem to embed a script that fetches a more featureful version of ipxe using TFTP.

Whenever I need to pad my ROM image I use util/padimg.pl to do the work. I'm not sure if 00 or FF is the proper padding value. Check the script I just mentioned for details.
Im testing in VirtualBox. If i use the inbuilt iPXE, I can chainload a full version from TFTP, but then the network card disappears in the chainloaded version. Is this a know issue?

On real hardware, iPXE locks up the machine randomly with in CLI, sometime skewing the display. Is this a know issue? I have tried looking on the forum, but can not see any one else complaining about it

Not having any luck either with a file larger than 64K.
If I use a mrom file, iPXE starts to load and then crashes out, filling the screen with coloured squares.
If I use a rom file, iPXE starts but locks up as soon as I press CTRL+B

As for pading, I've found it is very easy in python (2 lines).

I had the same problem on my flash when it was over 64K. It seems like it loads a truncated version of the rom when you are oversize, thus causing it to execute badly. NFS is taking a lot of space, try replacing it with ISCSI.
ISCSI + HTTP did take very Little space for me, could enable almost every command except for fibre channel, NFS, FTP, wireless, and crypto. Undef TFTP too, and boot via HTTP instead. Eg fetch over HTTP instead.
Also disable AoE, it taking up much too.
Reference URL's