[syslinux] Re: PXE-on-a-disk Intel EM64T reboot

Josh Lehan jlehan at scyld.com
Tue Jan 3 13:35:42 PST 2006


Paolo Salvan wrote:
> Hi all!
> 
> ...As I'm the author of
> http://sourceforge.net/project/shownotes.php?release_id=190646
> http://sourceforge.net/project/showfiles.php?group_id=80408
> (for Steven: these two links are for the SAME file...)

Nice!  I didn't know these were the same file, as Sourceforge presented 
the two pages very differently.

So, there are only 3 "PXE-on-a-disk" projects known so far, not 4.

> My approach is more minimalistic: etherboot have already the 
> capabilities to build a multi-drive boot image, and can autodetect the 
> correct driver to start (using the PCI-ID, but it also try the ISA 
> drivers in sequence if no PCI NIC is found...), so I simply built an 

I'd love something like that for ethersel.c, perhaps a "None Of The 
Above" option.  Right now, it either detects the PCI card, or fails to boot.

Is there a way to designate a fallback command line that ethersel will 
follow, in the event of detection failing for every PCI device?  That's 
a good idea that I also wanted to try: building a driver with as many 
old ISA drivers as possible, if PCI autodetection fails to find a 
supported PCI card.

> very pubblicized)... the only drawback I know of my approach is that I 
> knocked against an etherboot memory limitation: the multi-driver is 
> compressed, and when it is uncompressed, it is temporaily kept in 
> low-memory (the dear old 640Kb limitation...), and so for some built I 
> have to exlude 1 or 2 rarely used big drivers to get it fit in memory... 
> but it seems that in the future etherboot versions this limit will be 
> overcomed...

Good job, you got farther than I did.  I ran into the 64K segment size 
limitation of 16-bit code, and couldn't link anything totaling more than 
64K, let alone 640K, so could only build a handful of drivers at a time.

This was with Etherboot several months ago, though, maybe the 64K linker 
bug has been fixed since then.

Sounds like Etherboot is running into the same problem the Linux kernel 
did a few years ago: not being able to fit its entire image into the low 
640K during initial booting... will this be fixed?  My guess is no, 
since the original design goal of Etherboot was to be able to fit on 
physical ROM sockets in NIC cards, and so there's probably many people 
that want it to remain lean and mean, and not become "Etherbloat" :)

Building a larger Etherboot with multiple drivers might be better than 
my approach of building many small Etherboots, one for each driver.  The 
reason is for systems with multiple different NIC cards installed.  Only 
one of them will be detected and work, because of the Etherboot that is 
chosen by ethersel.  The other card(s) will lie dormant.

To my knowledge, the standard PC chain-boot technique offers no way to 
"return" from Etherboot back into SYSLINUX, allowing ethersel.c to try a 
different card.  So, by building a few large Etherboot kernels instead 
of many small ones, we at least have the chance of working with a group 
of drivers, instead of only one driver.

Josh Lehan
jlehan at scyld.com




More information about the Syslinux mailing list