Howto Boot LTSP clients without diskette and a 3c905b-tx
(v0.2)


Introduction
Problem: I want to boot my ltsp-clients without diskette. I use 3Com nics 3c905b that have sockets on board where you can insert a 32 pin bootrom chip. I tried to flash some bootrom chips from old motherboards with the mba boot manager from 3com. after that i can boot without diskette.
(alternative: buy a 3c905C-TX at ebay, this nic has an onboard bootrom)

What you need to make 3c905b-TX bootable:

MS-Dos Boot-Disk + utilities
Download 3Coms Utilities for 3c90x nics here: ftp://ftp.3com.com/pub/nic/3c90x/util430.exe  or update.zip
Download 3Coms Driver-Disk for 3C90x here: ftp://ftp.3com.com/pub/nic/3c90x/3c90x2.exe or 3c90xcfg.zip
Create a MS-Dos Bootdisk.
Copy folder update from util430.exe to the just created diskette.
Copy 3C90XCFG.EXE to diskette.

BootRom:AT29C010
You need a bootrom that you can flash.
(Maybe you have some old pentium1 mainboards where you can find the following bootroms.)







Bootrom list:

work
should work
dont work
Nic
Bootrom
ns
flashable
 on nic *
 Uniflash *
3c905-tx
?



3c905b-tx





AT29C010 PC (90ns)
90


W29C010



W29C011A-15
150


W29EE011-90



SST29EE010 150






AT29C512 70


3c905c-tx (NM) onboard



* depends on hardware ?

nic flash

Place the rom on your nic, the nic on yout  mb and boot with the ms-dos bootdisk in drive a: .

Attention: The rom and the socket have a notch that must match otherwise the rom gets barbecued.


change to folder 'update' and execute mbaflash.exe.

if you get a message 'the rom is empty, exciting' or something similar, change one folder up and execute 3c90xcfg.exe
Exit the program without any changes, change again to folder update and try again to start mbaflash.exe.

you should see something like this:

supported nic has been found
1 ...... 3com 3c9Xx

choose 1 to select the 3com nic.
choose A to accept the licence agreement.
now you can save the contens of the rom, i didnt do that because they were empty.

accept with y to write a pxe boot rom into the flashrom.

now you should have after reboot the possibility to configure the rom with mbacfg.exe in folder update, but the defaults should work.


Mainboard flashing with Uniflash
If the nic ignores the rom chip you can try to flash it with uniflash on an old socket 7 / Pentium II mainboard (f.e. Gigabyte GA-5AA). With uniflash you can write rom-images to roms on the mainboard.

you need:
a rom that works with 3c905b-tx [M] [N] (list)
uniflash
a mainboard that supports flashing (rom socket)
a ms-dos bootdisk

you can
a) use my 3c905b-tx rom -image for flashing a 3c905b-tx

b) or you can save your own rom from an working 3c905b-tx rom:

Loose the existing rom chip on the motherboard so you can replace it later easiliy.
Boot with the ms-dos bootdisk that contains uniflash.
after booting replace the original rom chip with the one you want to flash.

Attention: The rom and the socket have a notch that must match otherwise the rom gets barbecued.


start uniflash.exe, choose Write backup BIOS image to file.
enter a name (f.e.rom.bin)
accept with 'y'.
now you have an image of your original flash rom on diskette.

flash rom into chip
start uniflash
Choose Flash BIOS image INCLUDING bootblock, accept with 'y'.
enter the name of the rom-image (f.e. rom.bin).
hit enter. uniflash writes the image from disk to the rom chip.

you can now switch off the mainboard and place the new flashed rom on the nic.

Attention: The rom and the socket have a notch that must match otherwise the rom gets barbecued.


Place a bootable pxe rom on the server
you have to place a rom from www.rom-o-matic.net for your 3c905b on the server.
the correct nic-rom type for the 3c905b is : 3c905b-tpo100
output format is: PXE bootstrap loader
download/save the rom image on the server under /tftpboot/lts/
for example: /tftpboot/lts/eb-5.4.0-3c90x.zpxe

dhcp.conf
now you have to change the entries in the dhcp.conf of the workstations that use pxe boot so the pxe boot program can find your etherboot image.

example for ws001:
------------------------------------------
 host ws001 {
        hardware ethernet     00:10:5a:b3:18:3b;
        fixed-address         192.168.0.61;
        if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
            filename "/tftpboot/lts/eb-5.4.0-3c90x.zpxe"; }
        else { filename "/tftpboot/lts/vmlinuz-2.4.26-ltsp-3"; }
------------------------------------------

the path in the 'if ' statement leeds to the pxe-rom, the other path to the kernel-image of ltsp.



(i used various infos from these websites:
http://www.hollants.com/pxerom_3c905.html
http://www.hosef.org/wiki/EpromBurning)

hosef mentioned that maybe not every revision of the 3c90x is working.

vla99@gmx.de