Etherboot is a package for creating ROM images that can download code over the network to be executed on an x86 computer. Etherboot requires the PC architecture, it does not work for other Linux platforms such as Alphas or Suns. Typically the computer is diskless and the code is Linux or FreeBSD, but these are not the only possibilities. The code uses the bootp, tftp and NFS Internet Protocols.
Etherboot is Open Source. Please support it by joining the Open Source community and sharing. See the Etherboot home page for some ways you can help Etherboot.
Disclaimer: Etherboot comes with NO warranties of any kind. It is hoped that it will be useful to you, and NO responsibility is accepted for any outcome of using it. Etherboot also comes with NO support, although you can get helpful advice from the Netboot mailing list referred to on the Etherboot home page, and from the Internet in general.
The following is the current NIC configuration file as of 2000-03-14.
Even if your NIC does not appear in the list, it may still be supported if the chip is one of those supported. Many OEMs use chips from foundries. An exhaustive list of brand names is impossible. The best strategy is to read the number on the LAN controller chip on the board.
# This is the config file for creating Makefile rules for Etherboot ROMs # # To make a ROM for a supported NIC add a line of the form # # ROM Driver-name PCI-IDs # # ROM is the desired output name for both .rom and .lzrom images. # Driver name is the driver it uses (can be omitted if the same as ROM). # PCI IDs are the PCI vendor and device IDs of the PCI NIC # (leave blank for ISA NICs). # # Then do: make clean, make Roms and make # # Send additions to this file to <ken.yap@acm.org> # # 3Com503, aka Etherlink II, also /16 model 3c503 # 3Com507 3c507 # 3c509, ISA/EISA 3c509 # 3c529 == MCA 3c509 3c529 # 3c590 3c590 3c595 0x10b7,0x5900 # 3c595 3c595 3c595 0x10b7,0x5950 #3c595 3c595 0x10b7,0x5951 #3c595 3c595 0x10b7,0x5952 # 3C90x cards device IDs # Original 90x revisions: # 0x9000 : 10 Base TPO # 0x9001 : 10/100 T4 # 0x9050 : 10/100 TPO # 0x9051 : 10 Base Combo # Newer 90xB revisions: # 0x9004 : 10 Base TPO # 0x9005 : 10 Base Combo # 0x9006 : 10 Base TP and Base2 # 0x900A : 10 Base FL # 0x9055 : 10/100 TPO # 0x9056 : 10/100 T4 # 0x905A : 10 Base FX # Newer 90xC revision: # 0x9200 : 10/100 TPO (3C905C-TXM) 3c905-tpo 3c90x 0x10b7,0x9000 3c905-t4 3c90x 0x10b7,0x9001 3c905-tpo100 3c90x 0x10b7,0x9050 3c905-combo 3c90x 0x10b7,0x9051 3c905b-tpo 3c90x 0x10b7,0x9004 3c905b-combo 3c90x 0x10b7,0x9005 3c905b-tpb2 3c90x 0x10b7,0x9006 3c905b-fl 3c90x 0x10b7,0x900a 3c905b-tpo100 3c90x 0x10b7,0x9055 3c905b-t4 3c90x 0x10b7,0x9056 3c905b-fx 3c90x 0x10b7,0x905a 3c905c-tpo 3c90x 0x10b7,0x9200 # Crystal Semiconductor CS89x0 cs89x0 # Intel Etherexpress Pro/100 eepro100 eepro100 0x8086,0x1229 # SMC 83c170 EPIC/100 epic100 epic100 0x10b8,0x0005 exos205 # Lance PCI PCNet/32 lancepci lancepci 0x1022,0x2000 # Linksys LNE100TX and other NICs using this Tulip clone chip lc82c115 tulip 0x11ad,0xc115 # Netgear FA310TX and other NICs using this Tulip clone chip lc82c168 tulip 0x11ad,0x0002 # Tulip clones based on the Macronix 987x5 mx987x5 tulip 0x10d9,0x0553 # NE1000/2000 and clones (ISA) ne # Novell NE2100 (Lance based, also works on NE1500) ne2100 # NE2000 PCI clone (RTL8029) nepci nepci 0x10ec,0x8029 # Winbond 86C940 winbond940 nepci 0x1050,0x0940 # Compex RL2000 compexrl2000 nepci 0x11f6,0x1401 # KTI ET32P2 ktiet32p2 nepci 0x8e2e,0x3000 # NetVin 5000SC nv5000sc nepci 0x4a14,0x5000 # Racal-Interlan NI5210 ni5210 # Racal-Interlan NI6510 ni6510 # Base driver for Tulip clones tulip tulip 0x1011,0x0002 # Tulip-Fast tulipfast tulip 0x1011,0x0009 # Tulip+ tulip+ tulip 0x1011,0x0014 # Tulip 21142 tulip21142 tulip 0x1011,0x0019 # Realtek 8029 (NE2000 PCI clone) rtl8029 nepci 0x10ec,0x8029 # Realtek 8139 rtl8139 rtl8139 0x10ec,0x8139 # SMC1211 (uses Realtek 8139 but with different IDs) smc1211 rtl8139 0x1112,0x1211 # Schneider and Koch G16 sk_g16 # SMC9000 smc9000 # Tiara, Fujitsu Lancard tiara # Old base driver for Tulip clones otulip otulip 0x1011,0x0002 # Rhine-I, e.g. D-Link DFE-530TX dlink-530tx via-rhine 0x1106,0x3043 # Rhine-II via-rhine via-rhine 0x1106,0x6100 # WD8003/8013, SMC8216/8416 wd
All Etherboot drivers are autoprobing, which means they attempt to detect the hardware addresses at which the card is installed. It's fairly easy to write a driver if you know C and are familiar with Ethernet hardware interfacing. Please contact me for more information if you are interested in doing so.
This document and related documents are also kept online at the Etherboot Home Page. This will in general have the latest distributions and documentation.
The contents of this document are copyright Ken Yap and Markus Gutschke. However permission is granted to copy and reproduce this document in full or in part provided this document is identified as the source.
For a talk/tutorial type introduction to what Etherboot does and how to set it up, see my SLUG talk. You may wish to review this before reading further.
An older version of this README, which is now out of date, can be accessed via this link.
There is a mailing list for all netbooting related issues. To subscribe follow the instructions on the Etherboot home page.
With the major exception of the following section, and the section on Writing an Etherboot Driver, most of the information on diskless booting is not specific to Etherboot but can be used for the Netboot package also.