There's two revisions of the 3C905C out there. The earlier one has an issue when using boot code on the card in that you can't make use of the "next server" option in your dhcp config - it simply fails to boot from the correct server reporting a timeout during the TFTP.
The later version works fine - so here's the trick - take the firmware from a later one and flash it to the earlier.
Using a debian box this is relatively simple.
Install the etherboot package to get the tools needed.
Then in /usr/share/doc/etherboot/contrib/3c90xutil/ gunzup cromutil.c.gz and bromutil.c.gz
Make sure you have built-essential on your system and then use make to compile the tools
Now, with the good card in the system, do
lspci -v | less
and look for the ethernet controller. Make a note of it's I/O port address (ours was a000
Then to get the rom image type
./cromutil [ioport] read > [imagename]
e.g.
./cromutil a000 read > working.rom
Now shut down the machine and replace the good card with the one that needs programming
Once you've booted back up, go to /usr/share/doc/etherboot/3x90xutil/
Use lspci -v again to check the address of this card
Then do
./cromutil [ioport] erase
./cromutil [ioport] prog < [imagename]
You should now have a card programmed with the later firmware and capable of correct remote booting where the boot host is other than the dhcp host.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment