Reference

makerom(8)

Make bootrom image

NAME

makerom - Make bootrom image

SYNOPSIS

makerom [OPTIONS]

DESCRIPTION

makerom generates an IP Boot-Rom either interactively or in batch mode. It works by first concatenating the bootrom kernel file with the program driver files (like packet driver etc.), then compressing the resulting image and concatenating it with either the floppy or the rom loader stubs.

OPTIONS

-b, --batch-sys SYS

Lets makerom operate in batch mode. It will look up the given system name in a database file and generate a bootrom according to the specifications given in the database entry. If this option is not given, makerom will operate in interactive mode, asking the user about all required parameters on the console.

-C, --config-file FILE

Specifies a configuration file.

-h, --help

Print short usage information.

-N, --netboot-dir DIR

Specifies the netboot directory where makerom looks for the files required for generating a new bootrom. If this option is given, it will override the corresponding environment and configuration file settings.

-v, --version

Print version information.

-x, --verbose

Increase verbosity level.

CONFIGURATION FILE

The following sections and parameters in the configuration file are used by makerom:

[makerom:general]

This section contains general definitions, like in what directories to find the necessary files for building a bootrom. It can contain these parameters:

kerneldir

Specifies the directory where makerom looks for kernel files to generate a list of usable kernels in interactive mode.

loaderdir

Specifies the directory where the bootrom and floppy loader stubs can be found.

netdrvdir

Specifies the directory where makerom looks for network driver binaries in interactive mode.

utilsdir

Specifies the directory where makerom looks for the utility files ansidrv.com, the bootrom ANSI display driver, and pktwatch.com, a program to debug the bootrom packet driver interface.

For all these variables two leading slashes in the value get replaced by the name of the main netboot directory. Therefore, //kernel gets expanded to /usr/lib/netboot/kernel provided that the main netboot directory has been set to /usr/lib/netboot.

[makerom:kernel:<kernel name>]

These sections contain descriptions for the bootrom kernels makerom uses to actually create the final bootrom image, and will only be used in interactive mode. A configuration file can have as many kernel sections as necessary. However, each section has to have a unique <kernel name> as an identifier. The following parameters are recognized:

description

This parameter requires a string value, which shortly describes the kernel image. It will be used in interactive mode when displaying the menu of available kernel images.

file

String parameter giving the name of the kernel image file. It's relative to the kernel directory as specified by the kerneldir parameter in the general section.

flags

This parameter specifies certain features of the kernel image. It has to be a string value consisting of one or several flag values. All flags have to be separated by a comma, with no blanks in between. The following flags are recognized (caution: case matters!):

MINIMAL

Specifies a minimal kernel.

X86

Specifies a kernel for a 16 bit x86 processor. If this kernel is selected in interactive mode, makerom automatically selects the corresponding 16 bit rom loader.

[makerom:netdrv:<driver name>]

Like with the kernel sections these describe the network driver binaries usable by makerom to create the bootrom image. It is also used in interactive mode only. The fields are defined as follows:

description

A short description of the network driver which will be used in the network driver selection menu. This parameter is required.

file

This string parameter names the file to be used for this network driver. It is relative to the directory given by the netdrvdir parameter in the general section. The file parameter is required.

type

Specify the type of the network driver. It is a string parameter, and it's only recognized value presently is packet driver. If this parameter is missing, this value is also the default.

parameters

The string value has to contain flags which describe what network driver command line options makerom should ask for in interactive mode. If it's empty, no parameters will be asked for. The following flags are recognized:

HW_IRQ

The network driver requires specifying the hardware interrupt of the network card.

IO_ADDR

The network driver requires specifying the I/O address of the network card.

BASE_MEM

If the network card uses shared memory, this flag tells makerom to ask the user for the base segment address of the shared memory.

DMA_NUM

Some network cards use a DMA line, which has to be specified to the network driver.

AUI_TYPE

If the network card supports different ethernet interfaces, this flag tells bootrom to ask for the type to be used.

cmdline

This string value specifies how the command line to the network driver should look like. All characters in this string are copied verbatim into the command line, except the % character which stands for a placeholder for certain parameters. The character following the % specifies which parameter gets copied into the command line:

%S

Software interrupt for the packet driver interface (hex)

%H

Network card hardware interrupt (decimal)

%A

Network card I/O address (hex)

%M

Network card shared memory base address (hex)

%D

Network card DMA chanal number (decimal)

%T

Type of network interface to use (decimal)

Of course, the parameters field should specify those parameters which are actually used with the command line. Otherwise, unpredictable substitutions may occur.

makerom will use only those network driver sections for displaying the menu, for which it can find the specified file.

DATABASE FILE

The makerom sections in the database file use [<system name>:makerom] for the tag names. They can contain the following parameters:

kernel

Specifies the name of the kernel file to be used. If the name starts with two slashes these get replaced by the name of the general netboot directory.

useint18

If this boolean parameter is true, the bootrom will use interrupt 18h for startup which is the old BASIC startup vector on old PC's. This interrupt gets called by the BIOS when it can't find a bootable floppy or hard disk partition. If the value of this variable is set to false, the bootrom will use interrupt 19h instead, which is the PC bootstrap interrupt. In this case, the system will not seek any hard disks in the system for a bootable partition (but will still check the first floppy drive), but immediately start the netboot process. The default for this parameter is false.

loaderX

Specifies the file names of all bootrom loaders. makerom will create a bootrom image file for each rom loader specified. The X in the variable name can be a number from 1 to 3. For each loaderX variable there has to be a corresponding outnameX variable as well. Normal substition for the main netboot will occur.

outnameX

Specifies the names of the bootrom image files created with the rom loaders. For each loaderX parameter there has to be a corresponding outnameX parameter.

outtypeX

This is an enumeration parameter which specifies the format of the output file generated for each bootrom image given in outnameX. The following values are recognized:

binary

Raw binary for programming an EPROM

intel hex

Bootrom image will be converted to Intel hex format for use with EPROM programmers which require this format.

motorola hex

Bootrom image will be converted to Motorola EXORmacs hex format for use with EPROM programmers which require this format.

tektronix hex

Bootrom image will be converted to Tektronix hex format for use with EPROM programmers which require this format.

flash

The bootrom image will be prepended by a special boot loader which allows it to be booted using a bootrom. It will then program a FlashCard with the new bootrom image. This method can be used to easily update the bootrom in a diskless client without unmounting the cover. It cannot be used with the floppy boot loader. Therefore, the loaderX parameter has to specify a rom loader when using the flash option.

driverX

Specifies the file names of all driver programs (like network driver, ANSI display driver etc.) to be loaded into the bootrom. The X in the variable name can be a number from 1 to 8. For each driverX variable there has to be a corresponding argumentX variable as well. If the file name starts with two slashes these get substituted with the name of the main netboot directory.

argumentX

Specifies the command lines which have to passed to each of the drivers. The value of an argument variable can be empty. Everything following the equal sign up to the last non-blank character is used for the command line, including any blanks in between.

BUGS

None known yet.

SEE ALSO

netboot.config(5)

AUTHOR

makerom was written by Gero Kuhlmann <[email protected]>.

History

--batch-sys since Debian 2.1 (Slink); --config-file since Debian 2.1 (Slink); --help since Debian 2.1 (Slink); --netboot-dir since Debian 2.1 (Slink); --verbose since Debian 2.1 (Slink); --version since Debian 2.1 (Slink); -C since Debian 2.1 (Slink); -N since Debian 2.1 (Slink).

-c until Debian 2.0 (Hamm); -n until Debian 2.0 (Hamm).