[syslinux] Etherboot & pxelinux (was: thank you)

Peter Lister P.Lister at sychron.com
Wed Feb 6 12:24:55 PST 2002


> They don't like pxe, so they did the other way around (pxe boot etherboot).

It was a bit more complex than just hating PXE. :)

Yes, I realised quite soon that I didn't like pxe (distinct from
pxelinux), mainly because of the time wasted to do an extra tftp cycle.
We do kernel development, so we reboot systems frequently, and wanted a
fast, easily configured way to select kernels at boot time. We also have
many machines without net boots of any sort (and no prospect of adding
it); these we could Etherboot from LILO (i.e. we could initiate a
network boot from a hard disk when needed). That said, we have systems
where PXE is the only net boot option, and customers will use it, so
bootable kits need to be PXE aware. Etherboot has now been ported to
LinuxBIOS, so now I want to get LinuxBIOS supported hardware for our
next hardware purchase if at all possible.

So - I perceived benefits in using Etherboot, but a need to cope with
PXE. I'll admit to some naivete: when I first asked about chaining
Etherboot from PXE, it hadn't really occurred to me that it might be
hard. But a colleague who is conversant with x86 assembler had a look at
Etherboot, pxelinux and the spec, and ended up writing the first working
PXE to Etherboot code in a few hours. Now I can boot a new system out of
the box with vendor PXE, flash a nic with Etherboot at my convenience to
speed up the boot, then maybe flash LinuxBIOS when I have the hardware
and time to build and test; this would get boots down to 3 seconds. My
Etherboot config remains unchanged; this exercise has without doubt
saved us more time that was spent writing it.

And - the "high level" bits of Etherboot are written in C, so I have a
chance of adding to or fixing it if necessary (e.g. I'd like to help
improve the multiple NIC support).

> Don't you think that having a config file that is not dhcpd.conf is better?

No.

I do not find the pxelinux configuration style easy to use. If a minimal
boot code written in assembler has to parse a text file, then the
language won't be terribly powerful. I was not used to syslinux (other
than indirectly in Red Hat kits), having only ever used lilo for disks,
so I had no experience of the style. Yes, ISC dhcpd configuration
language is clunky - v3 is an improvement on v2, but simultaneously too
complex to be simple, and not complex enough to be powerful.

We have to configure our own product on many machines from a central
place, which I've done with DHCP and a home grown perl DHCP client (it's
not ready for the big time, it only does INFORM/ACK, not the full lease
exchange); I know of someone else working on a Perl DHCP server. Until
that's done, I generate my dhcpd.conf from perl scripts and a
configuration which knows far more than just Etherboot and IP addresses.

DHCP (distinct from ISC dhcpd and its language) is better than tftping a
text file because the non-trivial config (i18n, conditional behaviour,
maybe generated from a customer db) is server side; clients see just a
string of easily parsed data in a well known extensible format with
vendor hooks - and there is almost certainly a DHCP client in the boot
rom anyway.

This means that (a) I don't mind fairly complex DHCP config and (b) I
know there's a better future.






More information about the Syslinux mailing list