Configuring the Client

To configure the client, you need to do the following:

  1. Set up an etherboot program for the client.
  2. Make a boot image for the operating system.

Making the Client Etherboot Program

From "usr/local/etherboot-4.2.9" type cd "src-32"
Edit "Config" results shown below:

#	-*- Makefile -*- ,v 1.4 1994/12/31 17:16:49 jkh Exp
#
# Makefile for ETHERBOOT
#
# Basic options:
#	-DNO_DHCP_SUPPORT #-Use BOOTP instead of DHCP
#	-DRARP_NOT_BOOTP- Use RARP instead of BOOTP/DHCP
#	-DIMAGE_MENU	- Allow to interactively chose between different
#			  bootimages; read vendortags.html for further
#			  information.
#	-DMOTD		- Display message of the day; read vendortags.html
#			  for further information.
#	-DANSIESC	- evaluate a subset of common ANSI escape sequences
#			  when displaying the message of the day; this
#			  probably does not make sense unless you also
#			  define -DMOTD or at least -DIMAGE_MENU.
#			  Combine this option with -DSERIAL_CONSOLE
#			  only if you are using DUAL
#	-DGFX           - support extensions to the ANSI escape sequences for
#	                  displaying graphics (icons or logos); this
#	                  requires -DANSIESC
# 	-DASK_BOOT=n - Ask "Boot from Network or from Local? " at startup,
#			  timeout after n seconds (0 = no timeout); this
#			  can be done in a more generic way by using the
#			  IMAGE_MENU, but it requires that the "bootp"
#			  server is accessible, even when booting locally.
# 	-DANS_DEFAULT=ANS_NETWORK
#			- Assume Network to previous question
#			  (alternative: ANS_LOCAL) on timeout or Return key
#			  See etherboot.h for prompt and answer strings.
# 	-DEMERGENCYDISKBOOT
#			- if no BOOTP server can be found, then boot from
#			  local disk. The accessibility of the TFTP server
#			  has no effect, though! So configure your BOOTP
#			  server properly.
#	-DNOINT19H	- Take control as soon as BIOS detects the ROM
#			  Normally hooks onto INT19H
#	-DMOVEROM       - if your motherboard does not cache adapter memory
#	                  space, then this option can speed up loading of
#	                  compressed BOOT-Prom images. It has not affect on
#	                  uncompressed images. Unless you are very tight on
#	                  free space, you will usually want to define this
#	                  option.
#	-DDELIMITERLINES - print a line of = characters at the start
#			  and also just before starting an image.
#	-DSIZEINDICATOR - update a running total of the amount of code
#			  loaded so far, in kilobytes
#	-DT509HACK	- send two bootp packets before waiting for a 
#			  reply to the first. Makes a 3c509 do bootp
#			  quicker
#	-DT503_AUI	- Use AUI by default on 3c503 cards.
#
# Etherboot/32 only options:
#	-DFreeBSD	- Add FreeBSD boot support (a.out & ELF kernels)
#	-DSERIAL_CONSOLE
#			- set for serial console, set to DUAL for serial 
#			  and CRT console
#	-DCOMCONSOLE	- set port, e.g. 0x378
#	CONSPEED	- set speed. Note, not -DCONSPEED, this is a Make
#			  define.
#	-DCOMPARM	- set Line Control Register value for data bits, stop
#			  bits and parity. See a National Semiconditor 8250/
#			  16450/16550 data sheet for bit meanings.
#			  If undefined, defaults to 0x03 = 8N1.
#	-DPASSWD        - enable password protection for boot images; this
#	                  requires -DIMAGE_MENU
#	-DUSRPARMS      - allow the user to interactively edit parameters
#	                  that are passed to the booted kernel; you should
#	                  probably enable -DPASSWD as well; this feature
#	                  requires -DIMAGE_MENU
#	-DFLOPPY        - boot from floppy/hd if bootimage matches the
#	                  pattern "/dev/[fh]d*"; if you do not have
#	                  enough space in the EPROM, then disable this
#	                  feature and use "mknbi-blkdev" for booting
#	                  from a local blockdevice.
#	-DCONFIG_PCI_DIRECT
#			- define this for PCI BIOSes that do not implement
#			  BIOS32 or not correctly
#			  
# These default settings compile Etherboot with a small number of options.
# You may wish to enable more of the features if the size of your ROM allows.
CFLAGS+=	-DMOTD -DIMAGE_MENU

# Enable for FreeBSD boot image support
# CFLAGS+=	-DFreeBSD

# Leaving out these features will allow you to build 8kB compressed ROMs
# CFLAGS+=	-DANSIESC -DFLOPPY -DGFX

# These are more unusual features which are not activated by default
CFLAGS+=	-DASK_BOOT=5 -DANS_DEFAULT=ANS_NETWORK

# These are experimental extra features
# CFLAGS+=	-DDELIMITERLINES -DT509HACK -DSIZEINDICATOR

# Etherboot/32: enable these if you want a serial console
# Re: -DCONSPEED, see Makefile for work around to GNU as deficiency
# CFLAGS+=	-DSERIAL_CONSOLE=DUAL -DCOMCONSOLE=0x3f8 #-DCONSPEED=$(CONSPEED)
CONSPEED=	9600

# These flags affect the loader that is prepended to the Etherboot image
LCONFIG+=	-DMOVEROM

# you should normally not need to change these
CC=		gcc
LD=		ld
CFLAGS+=	-O2 -fstrength-reduce -fomit-frame-pointer -m386
CFLAGS+=	-Wall -Wno-format -Wno-unused
ASFLAGS=
AS86FLAGS=
NASMFLAGS=
LDFLAGS+=	-N -Ttext $(RELOCADDR) -e _start -nostdlib
LIBS=
OBJCOPY=	objcopy -O binary -R .note -R .comment
BITS=		32

Type "make"
Type "make 3c905b.fd0" or "make 3c90x.fd0" or "make ne.fd0" depending on your network card.

Operating System Boot Image

The boot image must be made according to the instructions for the given operating system and placed in the appropriate directory for that given machine consistent with the earlier BOOTP setup in the section on "Server Services".

Burning the PROM

Create a PROM binary image with a command like the following:

(cat 3c90x.lzrom; perl -e 'print "\xFF" x 49152') > 3ctop.65k

This command will create a 65K image with the program starting at the top of ROM. To create a 32K ROM with the program 16K into the ROM, use the following command:

(perl -e 'print "\xFF" x 16384'; cat 3c90x.lzrom) > 3c90x.32k

To Program 3c905B and 3c905C cards, you may need to set the additional option in your Config file:

CFLAGS+= -DCFG_3C905B_XCVR=6

Where 6 represents the MII transceiver, then burn your boot floppy. You will need to use the 3c90xcfg configuration program from 3com to enable your network card PROM. Then boot using the floppy to set the card in MII transceiver mode.

You may also need the option in your PROM image:

CFLAGS+= -DNO_PNP_PCI_HEADER

if you have a picky BIOS.

Linux Remote Booting Contents Page