document updated 15 years ago, on Sep 9, 2009
We use a specially-prepared USB thumb drive to flash
gPXE ROMs on our network cards.
terminology
When doing this procedure, we use two computers, designated "FLASH" and "DOWNLOAD". These are only conventions for this document, you can use any suitable computer that happens to be available.
- "FLASH", the computer that we have the NIC inserted into, that we reboot a lot, that we'll eventually use to actually flash the ROM
- "DOWNLOAD", a computer that we never reboot, but rather just use to quickly download whatever ROM we might need.
DOWNLOAD could be a laptop, it doesn't matter. FLASH must be of a type that the NIC can plug into (ie. a desktop if it's a PCI card, a laptop if it's a PCMCIA NIC)
procedure
- power down the FLASH computer, and connect the NIC (if it's a desktop, open it up, insert the NIC into a PCI slot)
- put the thumbdrive in FLASH, and boot into MS-DOS
- (if FLASH's BIOS is too old, and doesn't support booting USB, then boot the PLoP Boot Manager from a CD, and use that to boot into the USB drive)
- run pcisniffer to get the PCI vendor and device IDs
- shutdown
- put the thumbdrive in DOWNLOAD
- visit rom-o-matic, download two versions of the ROM to the thumb drive, put them in the same directory
- bootable floppy disk (.dsk)
- binary ROM image (.rom)
- run the Perl script that's on the thumbdrive, to update the boot menu to include the .dsk file we just downloaded
(hopefully I'll be able to make this Perl script able to run from both Windows and Linux)
- eject the thumb drive
- put the thumbdrive in FLASH, and boot
- (The goal of this is to do a quick test, to make sure we've chosen the right ROM, before we fully commit to this, by flashing the ROM on, which could brick the card)
- at the first boot menu, choose the "test floppies" submenu
- choose the .dsk file we just downloaded
- Try to do a normal PXE boot. Go far enough through the process that you're confident that this ROM is fully working.
- shutdown
- if there were any problems PXE booting, then download another ROM to test
- on FLASH, boot into normal MS-DOS
- there are different ROM-update programs based on manufacturer, but try to find the correct one for your card
- use the specific manufacturer's tool to load the .rom file for your NIC