Please Note: 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 ARC and AlphaBIOS consoles are designed to load the Windows NT
operating system. Like many other things in the Linux world, they've
been made 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 Windows NT ARC/AlphaBIOS firmware is an environment in which
programs can run and make callbacks into the firmware to perform
actions.
The Windows NT osloader is a program that does
exactly this.
The Linux linload.exe is a much simpler program
which does just enough to load and execute
MILO. linload.exe loads the appropriate image
file into memory at 0x00000000 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.
To perform an ARC/MILO installation, you will need to create two
disks:
The correct MILO disk for the class of machine onto which you are
installing Red Hat Linux. The MILO disk images are located in the
/milo/images directory on CD 1. See Table 1-1 for which MILO image you need.
The generic installation kernel disk, made from
/images/generic.img on CD 1.
Please Note: If you are going to perform an NFS, FTP, or hard disk installation,
you will also need a third disk -- the RAM disk made from
/images/ramdisk.img on CD 1.
Please refer to the section called Writing an Image File to a Diskette for instructions
on writing image files to diskettes.
Once you have these disks created, 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 floppy disk. At the boot menu, select the
option .
Next, select the command: ,
which takes you to the Setup Menu. From here,
select the command , which takes you to the Boot Selections
Menu.
You need to add a boot command to load MILO from the floppy you
created. Choose the command .
You should see several devices listed. To select the A: drive,
choose .
Please Note: If you do not see an entry for the floppy 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 floppy, and both files should reside in
the root directory of the floppy disk.
Select the option when 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
Floppy to indicate that this entry boots MILO from the
floppy drive.
If prompted, select 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 .
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 floppy
using the linload.exe OS loader.
The first thing you must do is 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/.
Just like with ARC, you will need two diskettes for the MILO
installation process:
The correct MILO disk for the class of machine onto which you are
installing Red Hat Linux. The MILO disk images are located in the
/milo/images directory on CD 1. See Table 1-1 for which MILO image you need.
The generic installation kernel disk, from
/images/generic.img on CD 1.
Please Note: If you are going to perform an NFS, FTP, or hard disk installation,
you will also need a third disk: the RAM disk made from
/images/ramdisk.img on CD 1.
Please refer to the section called Writing an Image File to a Diskette 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 floppy. 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
floppy disk. Select the following command from the menu:
.
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 floppy disk. 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 option, since it's irrelevant and
linload.exe ignores it. Tab to
the option. Enter:
\ for the OS Path load file. Finally, press
Enter to add the selection to the boot menu.
At this point, AlphaBIOS will probably put up a big, unfriendly dialog
box labeled something like 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.
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 [-t fs] [dev:[dir]]
- List files in directory on device
boot [-t fs] [dev:file] [boot string]
-
Boot Linux from the specified device and file
run [-t fs] dev:file
- Run the standalone program dev:file
show -
Display all known devices and file systems
set VAR VALUE -
Set the variable VAR to the specified VALUE
unset VAR - Delete the specified variable
reset - Delete all variables
print - Display current variable settings
help [var] - Print this help text
Devices are specified as: fd0, hda1, hda2, sda1...
Use the '-t filesystem-name' option if you want
to use anything but the default filesystem ('ext2').
Use the 'show' command to show known devices and file-
systems.
Type 'help var' for a list of variables. |
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.
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 disk will be called
hda and its first partition will be
hda1. Use the show command
to show what devices are available.
MILO supports three file systems: MSDOS, ext2 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, and so you have to explicitly tell MILO if the
filesystem is something other than ext2. All of the commands that
use filenames allow you to pass the file system using the
-t [filesystem] option. So, if you wanted to list
the contents of a SCSI CD-ROM, you might type the following:
MILO> ls -t iso9660 scd0: |
MILO contains some settable variables that 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 can be displayed with the
help var command:
MILO> help var
Variables that MILO cares about:
MEMORY_SIZE - System memory size in megabytes
BOOT_DEV - Specifies the default boot device
BOOT_FILE - Specifies the default boot file
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
AUTOBOOT - If set, MILO attempts to boot on powerup
and enters command loop only on failure.
AUTOBOOT_TIMEOUT - Seconds to wait before auto-
booting on powerup. |
Please Note: If you set AUTOBOOT, you need to set the timeout. Setting
AUTOBOOT without setting the timeout can result in your machine
automatically booting after a timeout of 0 seconds, which will not
allow for any user intervention in the case of errors.
The primary function of MILO is to boot the Linux kernel. To boot the
installer to use the CD-ROM (assuming the CD-ROM drive is SCSI) the
command would look similar to this:
MILO> boot fd0:vmlinux.gz root=/dev/scd0 |
The installer should boot, and you should be able to proceed as
normal. IDE CD-ROM devices use the standard IDE device references.
If you need to use the RAM disk floppy as well, the boot command
accepts the standard kernel parameters. So the command will look
something like this:
MILO> boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1 |
The only rule for partitioning the hard drive for MILO is that there
should be a 2 MB FAT partition at the beginning of the drive from
which you will load MILO.
Red Hat Linux/Alpha supports two varieties of hard drive partitioning: standard
fdisk-style partitioning and BSD-style
partitioning.
The standard fdisk-style partitioning method has
the usual oddities (such as extended partitions) and is done in the
same way as on Intel platforms (using Linux
fdisk). This is the partitioning style you must use
if you are using the ARC or AlphaBIOS console.
When using aboot to boot Red Hat Linux from the SRM
console (for example, to share a disk with Digital UNIX),
you must use BSD-style disk labels.
aboot does not understand DOS-style partition
tables as MILO does, and therefore a slightly different installation
path is necessary. This includes using fdisk in
disk label editing mode to create a disk label on the disk. There are
three things to keep in mind when using disk labels on an Alpha:
Whole disk label:
The so-called "whole disk" label is required. It should be the
c label, which encompasses the entire disk
and must be created by you.
Initial unallocated space: This is unallocated disk space that is
not explicitly allocated to any label other than the "whole disk"
label. This space should be approximately 1 MB to 10 MB (2048 to
20480 sectors), depending on exactly what configuration for
aboot you will be using. Its purpose is to
provide space at the very beginning of the disk for
aboot to write the boot block and object file
that allows booting to kernels located within the disk labels.
For more information on the process aboot
uses to boot, please see the SRM Firmware HOWTO at http://www.alphalinux.org/faq/srm.php3.
Installing aboot:
In order to boot from the hard disk in the system, you will need
to install aboot to the unallocated space
using the swriteboot command. You can do this
at one of two points: during the installation using the command
shell started on the second virtual console
(Alt-F2),
or after the installation is finished and the machine has been
booted from the kernel on a floppy diskette.
To install aboot during the installation,
you must access the second virtual terminal, using
Alt-F2.
You will then want to run the following command to start a
more normalized shell than the installation itself provides:
Once you have the bash# prompt, you can use
swriteboot to install
aboot to the unallocated space you've
left at the beginning of the disk:
swriteboot /dev/sda /boot/bootlx -f3 |
The -f3 switch is used to force
swriteboot to ignore the conflict with the
third disk label, c, the "whole disk"
label you have created.
To install aboot after the installation,
boot the system from SRM, using the kernel diskette, with a
command line like the following:
boot dva0 -fi vmlinux.gz -flags "root=/dev/sda2" |
Once you reach the initial login prompt, log in as root and
run the following command:
/sbin/swriteboot /dev/sda /boot/bootlx -f3 |
You can then boot from the hard disk using an SRM command like the
following example. For booting from the first SCSI hard disk,
second partition (where the Linux root filesystem resides):
boot dka0 -fi 2/vmlinux.gz -fl "root=/dev/sda2" |
The 2 in 2/vmlinux.gz and
/dev/sda2 are representative of the second
disk label on the disk. The -fi and
-fl options stand for `file' and `flags,'
respectively.
You can also choose a slightly different path that involves an
extra prompt:
Once you see the aboot> prompt, you can use
similar kernel and root specifications to the ones used with the
-fi and fl options mentioned
above:
aboot> 2/vmlinux.gz root=/dev/sda2 |
Please Note: If any drives on your system have BSD-style disk labels, you will
not be able to use Disk Druid to set up partitions. If you use
BSD-style disk labels, you will need to use fdisk
for partitioning.
Install Red Hat Linux/Alpha as described in the
Official Red Hat Linux Installation Guide. Stop when you reach the point where
the packages you've selected are finished being transferred to the
hard drive. At this point, you are prompted to install the correct X
server for your machine, or, you will select your pointing device, if
you didn't install X. Do NOT press the Ok
button yet. Instead, follow the instructions contained in the section called Installing MILO to the 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 TTY2 console by
pressing Alt-F2. Once you've switched to the command prompt, verify that
your root directory is mounted with the following command:
This should show the partition you selected to be mounted as
/ to be currently mounted as
/mnt. Temporarily make /mnt
the root directory by issuing the command:
Now, all you need to do is actually install MILO. First, insert your
MILO disk into the floppy drive. Then you'll need to issue a command
which will vary slightly in syntax depending on your boot device. For
example, if you plan to boot your Alpha from the first SCSI hard disk,
issue the following command:
bash# dd if=/dev/fd0 of=/dev/sda1 |
If you plan to boot your Alpha from the second IDE device, the
dd command should be executed like this:
bash# dd if=/dev/fd0 of=/dev/hdb1 |
The command will copy MILO (along with
linload.exe) to the small MILO partition you
created. Once MILO has been installed, type the following command to
exit the temporary root device set using the chroot
command:
Now switch back to TTY1 using Alt-F1 and select the
Ok button to continue the installation process.
If you dedicated the first partition of your first disk drive to a
small FAT partition for booting (as the installation procedure advises
you to) you can the modify the Boot Menu to have
a selection to load MILO from this partition.
Add another boot selection, as described in the section called Setting up ARC for Installation for ARC and in the section called Setting up AlphaBIOS for Installation for AlphaBIOS. However, this time
you should select the appropriate hard disk device. If you installed
Linux to the first hard drive, the device should be:
scsi(0)disk(0)rdisk(0)partition(1) |
If you are using an ARC console or the AlphaBIOS console, select the
following device:
If you wish to autoboot into Linux, set the
OSLOADOPTIONS variable as described in the section called MILO Autoboot. Once you have done this, booting and
running Linux on an Alpha system should be very similar to doing so on
an x86 system.
In the ARC and AlphaBIOS consoles, the contents of the
OSLOADOPTIONS parameter are passed to MILO as a
command. In order to boot Linux automatically in MILO, enter a value
for OSLOADOPTIONS similar to this one:
boot sda2:/boot/vmlinux root=/dev/sda2 |