ROM-o-matic.net: Configuration for Etherboot version 5.4.3 (i386)
for rtl8139.iso


Make configuration selections and then press to generate and download the ROM image, or to return to the main page.

To make a bootable floppy on a GNU/Linux system, put a formatted floppy in your floppy drive and do:
$ cat eb-5.4.3-rtl8139.iso > /dev/fd0

where "eb-5.4.3-rtl8139.iso" is where you stored your downloaded ROM image.

On a DOS/Windows system, use the RAWRITE program to write the .zdsk image to a formatted floppy. RAWRITE is available on most GNU/Linux installation CDs or on the web.

Some additional help for making floppy or ROM images is available here.


 ASK_BOOT:
  Ask "Boot from (N)etwork ... or (Q)uit? " at startup, timeout after n seconds (0 = no timeout). If unset or negative, don't ask and boot immediately using the default.
 BOOT_FIRST:
  On timeout or Return key from previous question, selects the order to try to boot from various devices.
(alternatives: BOOT_NIC, BOOT_DISK, BOOT_FLOPPY, BOOT_NOTHING).
See etherboot.h for prompt and answer strings.
BOOT_DISK and BOOT_FLOPPY work only where a driver
exists, e.g. in LinuxBIOS.
They have no effect on PCBIOS.
 BOOT_SECOND:
  On timeout or Return key from previous question, selects the order to try to boot from various devices.
(alternatives: BOOT_NIC, BOOT_DISK, BOOT_FLOPPY, BOOT_NOTHING).
See etherboot.h for prompt and answer strings.
BOOT_DISK and BOOT_FLOPPY work only where a driver
exists, e.g. in LinuxBIOS.
They have no effect on PCBIOS.
 BOOT_THIRD:
  On timeout or Return key from previous question, selects the order to try to boot from various devices.
(alternatives: BOOT_NIC, BOOT_DISK, BOOT_FLOPPY, BOOT_NOTHING).
See etherboot.h for prompt and answer strings.
BOOT_DISK and BOOT_FLOPPY work only where a driver
exists, e.g. in LinuxBIOS.
They have no effect on PCBIOS.
 BOOT_INDEX:
  The device to boot from:
0 == any device.
1 == The first nic found.
2 == The second nic found
...
BOOT_INDEX only applies to the BOOT_FIRST. BOOT_SECOND and BOOT_THIRD search through all of the boot devices.
BAR_PROGRESS
  Use rotating bar instead of sequential dots to indicate a packet transmitted.
SIZEINDICATOR
  Update a running total of the amount of code loaded so far, in kilobytes
ALTERNATE_DHCP_PORTS_1067_1068
  Use ports 1067 and 1068 for DHCP instead of 67 and 68. As these ports are non-standard, you need to configure your DHCP server to use them. This option gets around existing DHCP servers which cannot be touched, for one reason or another, at the cost of non-standard boot images.
NO_DHCP_SUPPORT
  Use BOOTP instead of DHCP
RARP_NOT_BOOTP
  Use RARP instead of BOOTP/DHCP
USE_STATIC_BOOT_INFO
  Use static ip insted of dynamic protocolsWhen USE_STATIC_BOOT_INFO is defined, the following
must also be defined:
  -DSTATIC_CLIENT_IP
  -DSTATIC_SUBNET_MASK
  -DSTATIC_SERVER_IP
  -DSTATIC_GATEWAY_IP
  -DSTATIC_BOOTFILE
 STATIC_CLIENT_IP:
  Static client IP address. Requires -DUSE_STATIC_BOOT_INFO be set to be used.
 STATIC_SUBNET_MASK:
  Static subnet address. Requires -DUSE_STATIC_BOOT_INFO be set to be used.
 STATIC_SERVER_IP:
  Static server IP address. Requires -DUSE_STATIC_BOOT_INFO be set to be used.
 STATIC_GATEWAY_IP:
  Static gateway IP address. Requires -DUSE_STATIC_BOOT_INFO be set to be used.
 STATIC_BOOTFILE:
  Static boot filename. Requires -DUSE_STATIC_BOOT_INFO be set to be used.
EXIT_ON_FILE_LOAD_ERROR
  Exit Etherboot if unable to load the requested boot file
REQUIRE_VCI_ETHERBOOT
  Require an encapsulated Vendor Class Identifier of "Etherboot" in the DHCP reply Requires DHCP support.
Enabling this makes the boot ROM require a Vendor Class Identifier of "Etherboot" in the Vendor Encapsulated Options This can be used to reject replies from servers other than the one we want to give out addresses to us, but it will prevent Etherboot from getting an IP lease until you have configured DHCPD correctly
 DHCP_CLIENT_ID:
  EXPERIMENTAL! Set DHCP_CLIENT_ID to create a Client Identifier (DHCP option 61, see RFC2132 section 9.14) when Etherboot sends the DHCP DISCOVER and REQUEST packets. This ID must UNIQUELY identify each client on your local network. Note that to identify your client using the normal default MAC address of your NIC, you do NOT need to set this option, as the MAC address is automatically used in the hwtype/chaddr field; note also that this field only sets the DHCP option: it does NOT change the MAC address used by the client. You must also set DHCP_CLIENT_ID_LEN and DHCP_CLIENT_ID_TYPE for this to be useful.
 DHCP_CLIENT_ID_LEN:
  If you set DHCP_CLIENT_ID, you must also Set DHCP_CLIENT_ID_LEN to the length of the Client ID in octets (this is not a null terminated C string, do NOT add 1 for a terminator and do NOT add an extra 1 for the hardware type octet).
 DHCP_CLIENT_ID_TYPE:
  If you set DHCP_CLIENT_ID, you must also Set DHCP_CLIENT_ID_TYPE to the appropriate hardware type as described in RFC2132 / RFC1700; this almost certainly means using '1' if the Client ID is an Ethernet MAC address and '0' otherwise.
 DHCP_USER_CLASS:
  EXPERIMENTAL! Set DHCP_USER_CLASS to create a User Class option (see RFC3004) when Etherboot sends the DHCP DISCOVER and REQUEST packets. This can be used for classification of clients, typically so that a DHCP server can send an appropriately tailored reply. Normally, a string identifies a class of to which this client instance belongs which is useful in your network, such as a department ('FINANCE' or 'MARKETING') or hardware type ('THINCLIENT' or 'KIOSK'). RFC3004 advises how to lay out multiple User Class options by using an octet for the length of each string, as in this example. It is, of course, up to the server to parse this. You must also set DHCP_CLIENT_CLASS_LEN for this to be useful.
 DHCP_USER_CLASS_LEN:
  Set DHCP_USER_CLASS_LEN to the length of DHCP_USER_CLASS in octets. This is NOT a null terminated C string, do NOT add 1 for a terminator.
ALLOW_ONLY_ENCAPSULATED
  Ignore Etherboot-specific options that are not within the Etherboot encapsulated options field. This option should be enabled unless you have a legacy DHCP server configuration from the bad old days before the use of encapsulated Etherboot options.
 DEFAULT_BOOTFILE:
  Define a default bootfile for the case where your DHCP server does not provide the information. Example:
tftp:///tftpboot/kernel
If you do not specify this option, then DHCP offers that do not specify bootfiles will be ignored.
CONSOLE_BTEXT
  Enable btext console support
CONSOLE_PC_KBD
  Enable for direct PC kbd support.
CONFIG_FILO
  Enable FILO support. It will make main call pci_init.
ALLMULTI
  Turns on multicast reception in the NICs.
CONGESTED
  turns on packet retransmission. Use it on a congested network, where the normal operation can't boot the image.
 BACKOFF_LIMIT:
  sets the maximum RFC951 backoff exponent to n. Do not set this unreasonably low, because on networks with many machines they can saturate the link (the delay corresponding to the exponent is a random time in the range 0..3.5*2^n seconds). Use 5 for a VERY small network (max. 2 minutes delay), 7 for a medium sized network (max. 7.5 minutes delay) or 10 for a really huge network with many clients, frequent congestions (max. 1 hour delay). On average the delay time will be half the maximum value. If in doubt about the consequences, use a larger value. Also keep in mind that the number of retransmissions is not changed by this setting, so the default of 20 may no longer be appropriate. You might need to set MAX_ARP_RETRIES, MAX_BOOTP_RETRIES, MAX_TFTP_RETRIES and MAX_RPC_RETRIES to a larger value.
 TIMEOUT:
  Use with care!! See above. Sets the base of RFC2131 sleep interval to n. This can be used with -DBACKOFF_LIMIT=0 to get a small and constant (predictable) retry interval for embedded devices. This is to achieve short boot delays if both the DHCP Server and the embedded device will be powered on the same time. Otherwise if the DHCP server is ready the client could sleep the next exponentially timeout, e.g. 70 seconds or more. This is not what you want. n should be a multiple of TICKS_PER_SEC (18).
 TRY_FLOPPY_FIRST:
  If > 0, tries that many times to read the boot sector from a floppy drive before booting from ROM. If successful, does a local boot. It assumes the floppy is bootable. Requires -DCAN_BOOT_DISK.
EXIT_IF_NO_OFFER
  If no IP offer is obtained, exit and let the BIOS continue. The accessibility of the TFTP server has no effect, so configure your DHCP/BOOTP server properly. You should probably reduce MAX_BOOTP_RETRIES to a small number like 3.
TAGGED_IMAGE
  Add tagged image kernel boot support (recommended)
AOUT_IMAGE
  Add a.out kernel boot support (generic)
ELF_IMAGE
  Add generic ELF kernel boot support (recommended)
EL64F_IMAGE
  Add generic ELF64 kernel boot support (useful for > 4GB disks).
WINCE_IMAGE
  Add the ability to boot WINCE.... now only sis630 OK!
PXE_IMAGE
  Add the ability to boot PXE NBPs. Requires PXE_EXPORT. Currently not supported on anything other than i386
IMAGE_MULTIBOOT
  Add Multiboot image support (currently only for ELF images)
IMAGE_FREEBSD
  Add FreeBSD image loading support (requires at least -DAOUT_IMAGE and/or -DELF_IMAGE)
FREEBSD_KERNEL_ENV
  Pass in FreeBSD kernel environment
AOUT_LYNX_KDI
  Add Lynx a.out KDI support
MULTICAST_LEVEL1
  Support for sending multicast packets
MULTICAST_LEVEL2
  Support for receiving multicast packets
DNS_RESOLVER
  Support for resolving hostnames in bootfile name (experimental)
DOWNLOAD_PROTO_TFTP
  If defined, includes TFTP support (recommended).
DOWNLOAD_PROTO_FSP
  If defined, includes FSP support.
DOWNLOAD_PROTO_NFS
  If defined, includes NFS support.
DEFAULT_PROTO_NFS
  If defined, makes NFS the default protocol instead of TFTP. Requires DOWNLOAD_PROTO_NFS.
DOWNLOAD_PROTO_SLAM
  If defined, includes Scalable Local Area Multicast support.
DOWNLOAD_PROTO_TFTM
  If defined, includes TFTP Multicast mode support.
DOWNLOAD_PROTO_HTTP
  If defined, includes HTTP support.
CONSOLE_FIRMWARE
  Set for firmware/BIOS provided (default if nothing else is set). Normally this is shows up on your CRT.
CONSOLE_SERIAL
  set for serial console.
CONSOLE_DUAL
  Both of the above
CONSOLE_DIRECT_VGA
  Set for direct VGA console (only for x86).
 COMCONSOLE:
  set port, e.g. 0x3F8
 CONSPEED:
  set speed, e.g. 57600
 COMPARM:
  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.
COMPRESERVE
  Ignore COMSPEED and COMPARAM and instead preserve the com port parameters from the previous user of the com port. Examples of previous user are a BIOS that implements console redirection, lilo and LinuxBIOS. This makes it trivial to keep the serial port speed setting in sync between multiple users. You set the speed in the first user and the rest follow along.
PXE_EXPORT
  Export a PXE API interface. This is work in progress. Note that you won't be able to load PXE NBPs unless you also use -DPXE_IMAGE.
PXE_DHCP_STRICT
  Strict(er) compliance with the PXE specification as published by Intel. This may or may not be a good thing depending on your view of the spec...
CONFIG_PCI
  Include support for devices using the pci bus.
CONFIG_ISA
  Include support for devices using isa bus.
POWERSAVE
  Halt the processor when waiting for keyboard input which saves power while waiting for user interaction. Good for compute clusters and VMware emulation. But may not work for all CPUs.
BUILD_SERIAL
  Include an auto-incrementing build number in the Etherboot welcome message. Useful when developing, to be sure that the file you compiled is the one you're currently testing.
 BUILD_ID:
  Include a build ID string in the Etherboot welcome message. Useful when developing, if you have multiple builds with different configurations and want to check you're running the one you think you are. Requires -DBUILD_SERIAL.
PCBIOS
  Compile in support for the normal pcbios
LINUXBIOS
  Compile in support for LinuxBIOS
BBS_BUT_NOT_PNP_COMPLIANT
  Some BIOSes claim to be PNP but they don't conform to the BBS spec which specifies that ES:DI must point to the string $PnP on entry. This option works around those. This option must be added to LCONFIG.
NO_DELAYED_INT
  Take control as soon as BIOS detects the ROM. Normally hooks onto INT18H or INT19H. Use only if you have a very non-conformant BIOS as it bypasses BIOS initialisation of devices. This only works for legacy ROMs, i.e. PCI_PNP_HEADER not defined. This option was formerly called NOINT19H.
BOOT_INT18H
  Etherboot normally hooks onto INT19H for legacy ROMs. You can choose to hook onto INT18H (BASIC interpreter entry point) instead. This entry point is used when all boot devices have been exhausted. This option must be added to LCONFIG.
CONFIG_PCI_DIRECT
  Define this for PCI BIOSes that do not implement BIOS32 or not correctly. Normally not needed. Only works for BIOSes of a certain era.
FLATTEN_REAL_MODE
  Use 4GB segment limits when calling out to or returning to real-mode code. This is necessary to work around some buggy code (e.g. OpenBSD's pxeboot) that uses flat real-mode without being sufficiently paranoid about the volatility of its segment limits.
CONFIG_TSC_CURRTICKS
  Uses the processor time stamp counter instead of reading the BIOS time counter. This allows Etherboot to work even without a BIOS. This only works on late model 486s and above.
CONFIG_NO_TIMER2
  Some systems do not have timer2 implemented. If you have a RTC this will allow you to roughly calibrate it using outb instructions.
IBM_L40
  This option uses the 0x92 method of controlling A20 instead of the traditional method of using the keyboard controller. An explanation of A20 is here: http://www.win.tue.nl/~aeb/linux/kbd/A20.html This occurs on MCA, EISA and some embedded boards, and sometimes with the Fast Gate A20 option on some BIOSes. Enable this only if you are sure of what you are doing.
CONFIG_X86_64
  Compile in support for booting x86_64 64bit binaries.
PXELOADER_KEEP_ALL
  Prevent PXE loader (prefix) from unloading the PXE stack. You will want to use this if, for example, you are booting via PXE-on-floppy. You may want to use it under certain circumstances when using the Etherboot UNDI driver; these are complex and best practice is not yet established.
IGNORE_E820_MAP
  Ignore the memory map returned by the E820 BIOS call. May be necessary on some buggy BIOSes.
T503_AUI
  Use AUI by default on 3c503 cards.
ZPXE_SUFFIX_STRIP
  If the last 5 characters of the filename passed to Etherboot is ".zpxe" then strip it off. This is useful in cases where a DHCP server is not able to be configured to support conditionals. The way it works is that the DHCP server is configured with a filename like "foo.nbi.zpxe" so that when PXE asks for a filename it gets that, and loads Etherboot from that file. Etherboot then starts up and once again asks the DHCP server for a filename and once again gets foo.nbi.zpxe, but with this option turned on loads "foo.nbi" instead. This allows people to use Etherboot who might not otherwise be able to because their DHCP servers won't let them.

To make a bootable floppy on a GNU/Linux system, put a formatted floppy in your floppy drive and do:
$ cat eb-5.4.3-rtl8139.iso > /dev/fd0

where "eb-5.4.3-rtl8139.iso" is where you stored your downloaded ROM image.

On a DOS/Windows system, use the RAWRITE program to write the .zdsk image to a formatted floppy. RAWRITE is available on most GNU/Linux installation CDs or on the web.

Some additional help for making floppy or ROM images is available here.


Notes:



Please email webmaster@etherboot.org with questions or comments about this website.