Red Hat Linux 7.2: The Official Red Hat Linux Alpha Installation Guide
Prev | Appendix B. MILO | Next

# Installations Using MILO

To boot Red Hat Linux using MILO, you will need to use some version of either the ARC or AlphaBIOS console, plus the `linload.exe` program.

The ARC and AlphaBIOS consoles are designed to load the Windows NT operating system. Like many other things in the Linux world, they're being used to do a job that they were never intended to do. In this case, they're used to load Linux. When you power-on an ARC/AlphaBIOS console machine, you will see the firmware initialize the hardware, and you will see a boot menu. The initialization process varies greatly by machine.

The ARC and AlphaBIOS consoles operate in essentially the same way. Both use MILO and, aside from cosmetic changes, they are identical in functionality. The keystrokes described in each section have been tested against ARC and AlphaBIOS systems, and are known to work with on-site machines. However, small differences may exist for other ARC and AlphaBIOS systems.

The Windows NT ARC/AlphaBIOS firmware is an environment in which programs (for example, the Windows NT `osloader`) can run and make callbacks into the firmware to perform actions.

Linux's `linload.exe` is a simple program which does just enough to load and execute MILO. `linload.exe` loads the appropriate image file into memory at 0x80000000 and then makes a swap-PAL PALcall to the image file. The swap is necessary because MILO, like Linux, uses a different PALcode than Windows NT. MILO relocates itself to 0x200000 and continues on through the PALcode reset entry point as before.

## Setting up ARC for Installation

If you are using MILO and ARC to boot the installation program from the CD-ROM, you will only need a MILO image diskette.

If you are using MILO and ARC, but you are not booting the installation program from the CD-ROM, you will need to make (at least) three diskettes:

1. The correct MILO image diskette for the class of machine onto which you are installing Red Hat Linux. The MILO images are discussed in the section called Choosing Disk Images if you are not sure which MILO image to use.

2. A generic kernel diskette, made from `images/generic.img` on CD 1.

3. The RAM disk diskette, made from `images/ramdisk.img` on CD 1.

4. Possible additional driver diskettes, as discussed in the Release Notes found on CD 1.

Please refer to Appendix D for instructions on writing image files to diskettes.

Once you have created these diskettes, boot your Alpha machine into the ARC boot menu. The first step is to set up a boot menu entry to enable MILO to be loaded from the diskette. At the boot menu, select the option Supplementary menu.

Next, select the command: Set up the system, which takes you to the Setup Menu. From here, select the command Manage boot selection menu, which takes you to the Boot Selections Menu.

You need to add a boot command to load MILO from the diskette you created. Choose the command Add a boot selection.

You should see several devices listed. To select the A: drive, choose Floppy Disk 0.

| Please Note
| If you do not see an entry for the diskette drive, consult your AlphaBIOS/ARC installation manual to determine the correct method for configuring your hardware in the console.

Next, enter the name of the OS loader to use. Enter `\linload.exe` as the OS loader directory and name. The MILO disk you created has the `linload.exe` file on it, and the correct MILO for your Alpha machine class. The MILO command is always named `milo` on the diskette, and both files should reside in the root directory of the diskette.

Select the yes option when you are asked if the operating system is on the same partition as the OS loader (it is, both are in the root directory), and enter `\` as the operating system root directory. As the name of the boot selection, enter something descriptive like `MILO Diskette` to indicate that this entry boots MILO from the diskette drive.

If prompted, select no to indicate that you do not want to start the debugger at boot time.

You should now be back in the boot selections menu. Press [Esc] to get back to the Boot Selections Menu. Choose the option Supplementary menu, and save changes to commit the changes to NVRAM. Once you have saved your boot entry, [Esc] will get you back to the boot menu and you can now attempt to boot MILO.

You should have a boot selection that looks something like this:

    LOADIDENTIFIER=Linux
    SYSTEMPARTITION=multi(0)disk(0)fdisk(0)
    OSLOADER=multi(0)disk(0)fdisk(0)\linload.exe
    OSLOADPARTITION=multi(0)disk(0)fdisk(0)\
    OSLOADOPTIONS=

This boot selection enables ARC to boot into MILO from the diskette using the `linload.exe` OS loader.

## Setting up AlphaBIOS for Installation

First, you will need to install the latest version of AlphaBIOS, which can be obtained from Compaq's Alpha Firmware update site at

    http://ftp.digital.com/pub/DEC/Alpha/firmware/

As with ARC, if you can boot from the CD-ROM, you will only need to make a MILO disk. If your machine can not boot from the CD-ROM, you will need (at least) three diskettes for the MILO installation process:

1. The correct MILO image diskette for the class of machine onto which you are installing Red Hat Linux. The MILO images are discussed in the section called Choosing Disk Images if you are not sure which MILO image to use.

2. A generic installation kernel diskette, from `images/generic.img` on CD-ROM 1.

3. A RAM disk diskette, made from `images/ramdisk.img` on CD-ROM 1.

4. Possible additional driver diskettes, as discussed in the Release Notes found on CD-ROM 1.

Please refer to Appendix D for instructions on writing image files to diskettes.

Once your AlphaBIOS is at the latest revision level, you can start the installation process. Turn on the system and insert the MILO diskette. At the opening screen, press [F2] to enter setup mode. You are going to add a boot selection that allows you to boot MILO from a diskette. Select the following command from the menu: Utilities -> OS Selection Setup..

Press [Insert] to add a new operating system selection. For the Boot Name parameter, enter something like: `MILO Floppy` to indicate that you are loading MILO from a diskette. Press [Tab] to get to the next field. Use the [DOWN-ARROW] key to move through the options until the selection for Boot File is A:. Then, [Tab] to the next field and enter: `linload.exe` as the name of the OS loader.

[Tab] past the OS Path Load Device option, since it's irrelevant and `linload.exe` ignores it. [Tab] to the OS Path Load File option. Enter: `\` for the OS Path load file. Finally, press [Enter] to add the selection to the boot menu.

At this point, AlphaBIOS may display an error message such as `Warning: Operating System Selection not valid!`

Ignore this error (AlphaBIOS considers it an error whenever your OS is not Windows NT). Press [Enter] to continue. Press [F10] to save the changes you just made, and press [Enter] to confirm the changes.

Press [Esc] twice to get back to the opening screen. Use the [UP-ARROW] and [DOWN-ARROW] keys to select the boot selection you just added, and press [Enter] to boot it.

AlphaBIOS will load `linload.exe`, which will in turn load MILO.

## The MILO User Interface

Once the Windows NT firmware is running and you have the correct MILO image for your system loaded, the rest of the installation details are completely generic.

Once you boot into MILO, you get a prompt that is very familiar to the standard `bash#` prompt in Linux. As mentioned earlier, MILO uses native Linux device drivers; therefore, all devices in MILO are referred to in the same manner as a running Linux system (`/dev/scd0` for a SCSI CD-ROM 0, `/dev/hda` for the first IDE device, etc.).

MILO has a very simple interface that is designed to allow you to boot a Linux kernel image, and perform some basic diagnostic functions. Typing `help` is a good idea, since it provides a useful summary of the commands, as follows:

    MILO> help

    MILO command summary:

    ls [<path>]           - List files in directory on device
    cd <path>             - Change current working directory
    boot [<path> {<arg>}] - Boot the specified kernel image
    read [<dev>:] <block> - Read <dev> starting from given <block>
    run <path>            - Run a standalone program
    show                  - Display all known devices and file systems
    sleep <secs>          - Sleep for <secs> seconds
    pci                   - Display PCI configuration
    unset <var>           - Delete the specified variable
    set [<var> <value>]   - Set <var> to <value>, or display variables
    reboot                - Reset milo (reboot)
    help                  - Print this help text

    Variables that MILO cares about:
    MEMORY_SIZE           - System memory size in megabytes
    BOOT_STRING           - Specifies the boot string to pass to the kernel
    SCSIn_HOSTID          - Specifies the host id of the n-th SCSI controller
    PCI_LATENCY           - Specifies the PCI master device latency
    CPU_CLOCK             - Specifies the CPU clock speed in MHz
    VERBOSE               - Level of verbosity (0-1)

    Paths are specified as [<dev>:]<path> with <dev> being e.g. sda1, sr0, ...

    Add `| more' to page through output from commands.

| Please Note
| The `bootopt` command only appears on AlphaPC64 (and similar) systems. Refer to the board's documentation to find out just what it means.

### Devices

Until you use a command that needs to make use of a device, no device initialization will take place. The first time you issue the `show`, `ls`, or `run` command, the devices within MILO will be initialized. Devices are named exactly the same way that Linux names devices. So, the first IDE drive will be called `hda` and its first partition will be `hda1`. Use the `show` command to show what devices are available.

### Filesystems

MILO supports four filesystems: MSDOS, ext2, ReiserFS and ISO9660. If a device is available to it, MILO can `ls`, `boot` or `run` an image stored on one of these filesystems. MILO will assume ext2 as the default filesystem, but will autodetect any of the others, so you don't have to explicitly tell MILO if the filesystem is something other than ext2. All of the commands that use filenames work this way. So, if you wanted to list the contents of a SCSI CD-ROM, you might type the following:

    MILO> ls scd0:

Note that the ext3 filesystem will be recognized as ext2.

### Variables

MILO provides certain variables to help the boot process. If you are loading via Windows NT ARC or AlphaBIOS firmwares, then MILO makes use of the boot option environment variables set up by that firmware. For some systems (for example, the AlphaPC64), MILO maintains its own set of environment variables that do not change from boot to boot. These variables are displayed by the `help` command:

    MILO> help

    [other stuff; see above]

    Variables that MILO cares about:
    MEMORY_SIZE           - System memory size in megabytes
    BOOT_STRING           - Specifies the boot string to pass to the kernel
    SCSIn_HOSTID          - Specifies the host id of the n-th SCSI controller
    PCI_LATENCY           - Specifies the PCI master device latency
    CPU_CLOCK             - Specifies the CPU clock speed in MHz
    VERBOSE               - Level of verbosity (0-1)

## Booting with MILO

The primary function of MILO is to boot the Linux kernel. To boot the installation program to use the CD-ROM (assuming the CD-ROM drive is SCSI) the command would look similar to this:

    MILO> boot scd0:/kernels/generic.gz initrd=/images/cd-rom.img

Note that the above command may be different for your system, because it depends upon how your system and its CD-ROM drive are set up. IDE CD-ROM devices use the standard IDE device references (hda, hdb, etc).

You may also wish to add additional arguments to the boot command, such as "text" to do text-mode install, "expert" to allow loading of driver disks or choice of any installation technique, or "noprobe" to all specification of the specific drivers desired instead of taking the installer's defaults (for example, choosing the DE4X5 driver instead of the TULIP one, to handle 21040 chipset use on Multia).

To boot from the diskette, put the `generic.img` diskette into the diskette drive and type in the following command:

    MILO> boot fd0:

The installation program should boot, and you should be able to proceed as normal. You will see output like the following:

    available configurations: linux
    (or 'halt' to return back to MILO prompt)
    boot:

Type in `linux` and press [Enter].

If needed, you will be prompted to place the RAM disk diskette in the diskette drive, and then the installation should begin.

## Installation

Refer to Chapter 4 for instructions on the graphical installation process. The next MILO-specific step you will need to take is the installation of MILO to your hard drive, which should be done after the packages have been installed (see the section called Installing Packages in Chapter 4). Instructions for installing MILO to the hard drive are as follows:

Stop when the packages you've selected are finished being transferred to the hard drive. At this point, the packages have been installed and you will need to press the Next button to finish the installation. Do NOT press the Next button yet. Instead, use the following instructions to install MILO to your hard drive.

The installation process puts all the necessary components of the Red Hat Linux operating system on your machine, but MILO must be installed manually. Switch to the command prompt on the second virtual console by pressing [Ctrl] - [Alt] - [F2] if you are doing a GUI install, otherwise by pressing [Alt] - [F2] .

Move to the `/mnt/sysimage` directory and temporarily make `/mnt/sysimage` the root directory with these commands:

    # cd /mnt/sysimage
    # /usr/sbin/chroot .

Now, you must install MILO. First, insert your MILO diskette into the diskette drive. Then you will need to issue commands to copy both MILO and linload.exe to the DOS partition on the hard disk. For example, if you plan to boot MILO from the partition you named /dos and initialized with filesystem type "vfat", issue the following commands:

    bash# mcopy a:milo /dos
    bash# mcopy a:linload.exe /dos

The commands will copy MILO, along with `linload.exe`, to the small DOS filesystem partition you created. Once MILO has been installed, type the following command to exit the temporary root device set using the `chroot` command:

    bash# exit

Now switch back to the GUI using [Ctrl]-[Alt]-[F1] or the text-mode installer using [Alt]-[F1] and select the Next button to finish the installation process.

Prev | Home | Next
Disk Partitioning | Up | Post-Installation MILO Setup