Introduction to Etherboot

What is Etherboot?

Etherboot is a software package for creating ROM images that can download code over an Ethernet network to be executed on a computer. Many network adapters have a socket where a ROM chip can be installed. Etherboot is code that can be put in such a ROM. Etherboot can also be booted from floppies (mainly for testing purposes but some people have been known to use this all the time) and hard disk, as a LILO/SYSLINUX compatible image, or from a hard disk partition, or via PXE.

Etherboot works on the x86, Itanium and Hammer architectures. It has not been ported to other platforms yet. Typically the computer is diskless and the code is Linux or FreeBSD, but these are not the only possibilities. The code uses the DHCP, tftp and NFS Internet Protocols, amongst others.

For a rather out of date but short talk/tutorial type introduction to what Etherboot does, see my SLUG talk.

License

Etherboot is Open Source under the GNU General Public License Version 2 (GPL2). The license conditions can be obtained from the file COPYING in the top directory of the distribution or viewed at www.gnu.org. In particular note that if you are distributing binaries generated from Etherboot, such as ROMs or ROM images, you must provide or promise to provide the user with the source. If you have not made private changes to the code, you can do this by pointing the user to the Etherboot home page, noting the release version of course. If you have made private changes to the code, then you must distribute those changes too with binary distributions.

The following is not legal advice and you should seek your own legal advice but it is a reasonable interpretation of the GPL with respect to Etherboot and BIOS code. Installing Etherboot, either as an extension BIOS or combined in the BIOS chip is mere aggregation. The GPL does not extend to other works that a GPLed binary is aggregated with on a storage medium. The rationale is this: The BIOS does not need an Etherboot ROM to function and the Etherboot ROM can work equally well with another BIOS implementation. Therefore putting Etherboot either on a ROM chip or in the same chip as the BIOS does not cause the two to become a combined work. Under this interpretation, there is no fear that you have to GPL your BIOS if you ship Etherboot with your BIOS.

The GPL applies to the whole package but a few files may be used under other licenses for historical reasons. See the Section called Source copyrights for details. Please support Open Source by joining the community and sharing. See the Etherboot home page for some ways you can help Etherboot.

No Warranty or Support: Etherboot comes with NO warranties of any kind. It is hoped that it will be useful to you, but NO responsibility is accepted for any outcome of using it. Etherboot also comes with NO support, although you may get helpful advice from the mailing lists listed on the Etherboot home page.

What hardware is supported?

See Appendix A for a list of supported NICs. 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 read the developer manual if you wish to do so.

Getting help

Please join the Etherboot mailing lists. These are listed on the Etherboot home page. There is a users mailing list and a developers mailing list. The users list is for issues with building and running the software, while the developers list is for issues with features and coding.

Please post questions or bug reports to the Etherboot mailing lists, please do not mail me, because: 1. you get the benefit of a lot of experts seeing your question (no, I don't know everything, if only because there are many configurations I have never used); 2. a lot of people see the question and answer and this helps them too; 3. I have other demands on my time, like a job, and answering individual email is an unsustainable practice. You will probably not get any reply from me if you email me directly. I want to make the best use of my time and that is by making sure that as many people as possible see the questions and answers. Note that I will post my replies to the mailing lists so to see the answers you should subscribe, or be willing to check the archives later.

On the other hand, if you have a code or document contribution, then email to me is definitely appropriate. Please ask first before you send large files. Diffs are preferred to entire archives. If you are really keen to volunteer, and have the skills, ask to join the developer team.

Other lists you can join are the Linux Terminal Server Project mailing lists at LTSP. The LTSP list is focused more on the LTSP packages. However there is a fair amount of overlap between the lists and many key people are on all lists.