Subject: Re: Soekris 4801 craziness: pxeboot
To: David Laight <>
From: Steven M. Bellovin <>
List: tech-embed
Date: 10/15/2005 23:49:44
In message <>, David Laight writes:
>On Sat, Oct 15, 2005 at 03:33:15AM -0500, David Young wrote:
>> On Fri, Oct 14, 2005 at 10:20:27PM -0400, Steven M. Bellovin wrote:
>> > I'm going slightly insane trying to get NetBSD working on a Soekris 
>> > 4801.  I'll post the different problems separately.
>> > 
>> > First, I can't get PXEboot working.  It downloads the first-stage
>> > bootstrap (pxeboot_ia32.bin), but it can't seem to load
>> > netbsd-INSTALL.  tcpdump shows that it's being requested:
>> PXE-booting NetBSD on Soekris boards has been broken since sometime after
>> NetBSD 1.6.  I just got it to work the other day with the attached patch.
>OTOH it worked first time I tried it (modulo getting the console baud
>rate correct).  However I did update the 4801's BIOS first.

I finally figured out the problem.  pxeboot(8) says:

     It is assumed that the TFTP server is the same as the DHCP server unless
     a next-server directive is specified somewhere else in dhcpd.conf

Something -- I don't know if it's pxeboot or the Soekris BIOS -- did 
not make that assumption.  Putting a next-server clause in my 
dhcpd.conf file did the trick:

host hellsgate {
        hardware ethernet 00:00:24:c4:f4:40;
        option host-name "hellsgate";
        if substring (option vendor-class-identifier, 0, 9) = "PXEClient" {
                filename "pxeboot_ia32_com0.bin";
        } else {
                filename = "tftp:hellsgate.kernel";

I could presumably move the next-server line out of the conditionals.  
And for those who are wondering about the hostname -- I'm a railfan, 
and all of my computers have railroad-themed names.  See and ponder 
an obvious use of this machine....)

		--Steven M. Bellovin,