Subject: Re: PXE boot support
To: None <thorpej@wasabisystems.com>
From: Andreas Gustafsson <gson@nominum.com>
List: port-i386
Date: 02/17/2002 21:33:57
Jason R. Thorpe writes:
> Last night I committed support for network booting PXE-capable i386
> systems.  You can do standard NFS-root file systems using this with
> no special PXE-specific DHCP server configuration parameters.

Cool - thank you :-).

This morning I successfully PXE-booted a diskless i386 system using an
Intel EtherExpress PRO/100 card, a flash chip flashed with the Intel
Boot Agent, and a DHCPD+TFTP+NFS server.

One problem I noticed was that the system defaulted to booting with a
serial console.  This is because pxeboot defines DIRECT_SERIAL in the
Makefile and calls initio(CONSDEV_AUTO) in main.c; if DIRECT_SERIAL is
defined, CONSDEV_AUTO will prefer the serial port over the PC console
whether it is connected to anything or not.  I suggest making the
following change which was made to the biosboot main.c in 1998 but
never made it to netboot or pxeboot:

Index: main.c
===================================================================
RCS file: /cvsroot/syssrc/sys/arch/i386/stand/pxeboot/main.c,v
retrieving revision 1.3
diff -u -r1.3 main.c
--- main.c	2002/02/17 20:14:08	1.3
+++ main.c	2002/02/18 04:54:33
@@ -111,7 +111,11 @@
 {
         char c;
 
-	initio(CONSDEV_AUTO);
+#ifdef	SUPPORT_SERIAL
+	initio(SUPPORT_SERIAL);
+#else
+	initio(CONSDEV_PC);
+#endif
 	gateA20();
 
 	print_banner();

Another minor problem: although a pxeboot built from this morning's
sources had no problem loading from /tftpboot/pxeboot.bin and then
booting a kernel called "netbsd", the current sources seem to use the
DHCP "filename" option for both the filename of the pxeboot image and
the filename of the kernel.  This seems suboptimal - I am now running
a kernel called "pxeboot.bin" loaded by a pxeboot image also called
"pxeboot.bin", but it would be nice if I could give them different
names again.
-- 
Andreas Gustafsson, gson@nominum.com