|
Jensen
install using 'aboot'
[Updated 17.9.2000 for aboot 0.7
+ ELF kernel]
This file is an updated version of
Michael Schwingen's changed version of Jim Paradis' documentation on installing
Linux on the "Jensen" Alpha board. I [Michael] have changed this to reflect
the steps necessary to use aboot instead of the standard bootloader.
NEW: I have changed the necessary
items to install aboot 0.7 and a more recent kernel (2.2.17). Following
these instructions it should be possible to install RedHat 6.2 and SuSE
6.3 and 6.4.
Using aboot has two advantages compared
with Jim's original solution you don't need a special modified kernel to
install. Any standard vmlinux.gz can be used.
-
aboot can load multiple kernels direct
from a ext2-filesystem from a partition on the root disk after installation,
so you can easily try out new test kernels without destroying your only
working kernel.
-
aboot can pass *any* bootoptions you
want to the kernel, and does not limit their size
-
using aboot, you can auto-boot Linux
from the SRM console even if you require boot-options longer than 8 characters
(eg. root=... :-))
The necessary files can be found in:
ftp.alphalinux.org/pub/Linux-Alpha/jensen/install
You will need the following files:
minlabel.exe
: Partitioning utility
copyboot.exe
: Utility for copying the bootdisk to the hard drive
lxboot.aboot
: copy of an aboot-ready sector 0 (disklabel) from my disk. copyboot needs
this to extract the position and length of the bootcode from the image
bootlx.aboot
: The aboot first-stage loader image itself Currently, this is aboot-0.2.
As soon as I find the time, I will provide a version with aboot-0.3* and
with an extra option so that you do not have to recompile aboot to get
the whole functionality.
bootlx.aboot0.7
: The aboot first-stage loader image itself This is aboot 0.7. This one
is more verbose and offers more options than previous versions. Be sure
to have a look in the
SRM Firmware HOWTO to learn about the new features.
vmlinux-*.gz
: A stock kernel with the following options [IIRC]:
-
ramdisk
-
all SCSI devices, AHA1742
-
NE2000, WD8003, SMC ultra
-
DOS, Minix, ext2, iso9660 filesystems
-
PS/2 mouse, serial + parallel port drivers
jensen17.gz
: A mildly patched kernel with the following options:
-
(initial) ramdisk of 65535K (for SuSE's
yast)
-
module support for RedHats's installer
-
all SCSI devices, AHA1742
-
NE2000, 3com509, all ISA/EISA DEC cards
-
DOS, Minix, ext2, romfs, iso9660 filesystems,
...
-
PS/2 mouse, serial + parallel port drivers
jensen17.img
: A mildly patched boot image disk. (Apply this
patch to a vanilla 2.2.17 source to build your own kernel.) This image
supercedes all the jensenN.img (N beeing a natural number) that are floating
around. (At least the one's I produced. SM)
I tested this on a Jensen with Firmware
ROM 1.7. Things should work with older ROM versions, too. When you want
to upgrade your firmware and have an ELSA WINNER 1000 graphics card in
your system, be aware ROM versions above 1.7 hang during initialization
of the ARC firmware when the ELSA card is used in EISA mode - this seems
to be due to a bug in the ELSA's own firmware ROM, and ELSA is not willing
to help in that case. (If stuck with a firmware beyond 1.7 one can turn
the card around and use the ISA connectors.)
WARNING: it seems that aboot will
not work on a Jensen with a firmware >1.7 - you get a fail message directly
when loading aboot. The only solution I know is downgrading to a 1.7 firmware
(which has no disadvantages AFAIK).
NEW: To perform the up/downgrade
you will need the following files:
jensfw.bin
: The new firmware image.
jnupdate.exe
: The firmware installer (runs in ARC mode).
jensen_ecu_disk
: The EISA configuration utility (ECU).
jensen_firmware_procedure.html
: Detailed instructions how to up/downgrade the firmware.
Just follow the supplied instructions.
Procedure:
1. Prepare your
floppies:
-
Create a DOS-formatted floppy with the
standalone ARC utilities (MINLABEL.EXE and COPYBOOT.EXE)
-
Create the bootimage and write it to
a second, formatted floppy:
-
cat lxboot.aboot lxboot.aboot bootlx.aboot
vmlinux.gz >/dev/fd0
(or do the same with COPY /B on
a DOS system and copy the resulting file to disk using RAWRITE.EXE).The
double lxboot.aboot is not a typo - we need a filler of 512 bytes since
for reasons I forgot, aboot expects to be placed starting at sector *2*
on the disk.
You can replace vmlinux.gz with
any newer kernel you like - use quickstrip before compressing to save space.
-
NEW: jensen17.img
For your convenience jensen17.img
is a ready-made image of a "bootdisk". Use RAWRITE.EXE on a DOS/WINDOWS
system or something along the lines of "dd if=jensen17.img of=/dev/fd0
bs=512 count=2880" on a UNIX system to write the image to floppy. (Actually
the image was produced with "dd if=/dev/sdc of=jensen17.img bs=512 count=2880"
after using "swriteboot /dev/sdc bootlx.aboot0.7 jensen17.gz" to write
the bootloader kernel combo to the disk.) The old method does not seem
to work with the aboot 0.7.
-
If you are installing Red Hat, prepare
a pseudo-bootdisk: take any of the bootdisk images and create a disk as
describes in the installation docs. The setup tool needs this to copy a
kernel to your harddisk later during the installation, and will insist
to do so. You can later replace this kernel with a real one for the Jensen.
(The pseudobootdisk is not required for RedHat 6.2)
-
Create the ramdisk floppy image for
your distribution plus any other disks which your installation may need
(debian base-disks etc.).
-
You will, of course, need the installation
media for your OS distribution (CD or floppies)
2. Partition the root
disk
-
Get to the ARC console opening screen.
If your Jensen comes up to the ARC console (it says "ARC" in the first
line and presents you with a menu), you're all set. If it comes up to the
SRM console (>>> prompt), enter the command "SET OS NT" and press CTRL-P
to enter the ARC console.
-
Insert the "ARC utilities" disk.
-
Choose "Run a program"
-
Enter:
a:minlabel
[use eisa(0)disk(0)fdisk(0)minlabel.exe
if that fails]
This invokes the standalone minlabel
utility, which is exactly like the Linux minlabel utility.
-
Choose the disk you are going to partition.
I [Jim] have made every effort to make these utilities understand Linux-style
device names, so you should be able to enter something like "/dev/sda".
['sda' seems to work fine - ms]
-
Partition the disk. Most likely you'll
want a small (4Mb) initial partition for the bootstrap, and the rest of
the disk for Linux. If you have only one disk on your system, you'll have
to further partition the disk to provide a Linux partition and a swap partition.
Make sure that the space for the bootstrap is not only the first partition,
but is at the beginning of the disk (offset 0).
-
NEW: Some random comments on
disk partitioning. Aboot and the kernel do not have to reside in a partition.
(But aboot definitively has to start at offset 0). It is sufficient to
leave at least 1.44 Mbyte worth of unallocated cylinders before the first
partition for the bootstrap. (The bootimage contains at most 1.44 Mbyte
or 1474560 Kbyte). The required cylinder count depends on the actual mapping
used. Around 2 to 4 cylinders should suffice. (Putting the bootstrap before
any partitions has some implications on updates of the bootloader and "installation
kernel". You then do not have to explicitly force swriteboot to overwrite
a partition with the "-fN" switch, N beeing the number of the partition,
normally 1). There are reports that fdisk/minlabel overestimate the size
of disks. It is therefore advisable NOT to allocate the last cylinder of
disks as minlabel prints, as this can lead to severe disk corruptions.
(So the last partition should end on the penultimate cylinder. BTW the
cylinder count in the disk info block is given in absolute numbers, whereas
in the partiton table cylinder "addresses" go from 0 to count-1.) All sizes
in minlabel are given in sectors (of 512 byte). Size and offset of partition
n add up to the offset of partition n+1. If a partition does not end on
a cylinder boundary it is marked my an asterisk in the last column of the
minlabel/fdisk output. It is preferable to have all partitions end on cylinder
boundaries, if not required. It is customary for BSD unices (xxxBSD, also
for OSF, T64U) to have a third partition (c) that spanns the whole disk
(from cylinder 0 to count-1). Those systems use c to access the raw disk.
Linux uses the /dev/sdX devices for that purpose (X beeing the letter of
the disk, beginning with a). For a Linux system it is therefore not necessary
to allocate all cylinders to partition 3. It does not hurt, though. If
you are reusing a BSD labeled disk from, say True64Unix be sure to zero
the old disk label (command z in minlabel.exe) to avoid trouble. Under
Unix use "dd if=/dev/zero of=/dev/sdX count=2 bs=512", X beeing the letter
of the disk.
-
NEW: A tentative partitioning
scheme. Most disks are fastest on the outer cylinders. The outer cylinders
are usually allocated first. Therefore the first partitions usually are
the fastest. Based on this reasoning I recommend to use the first partition
as swap partition (type 1). The size of the swap should be around twice
your physical memory as a rule of thumb. Take more if you a) know what
you are doing or b) are suffering under low amounts of ram. The next partition
should be around 31 or 63 Mbyte. This can be mounted under "/boot". It
is convenient to store kernels in this partition. This way it is possible
to avoid to overwrite your (working) installation kernel with a new untested
one. This partition should be reachable from aboot. Therefore it has to
be formatted with a blocksize of 1024. (Is this still true?) The remainder
of the disk could be allocated to a third partition to be mounted under
"/". (Real unix guru's probably would create at least a small "/" partition
a bigger "/usr" and a "/home" partition. This is usually considered to
improve data integrity. It is somewhat inflexible for home systems as e.g.
the amount of data in "/opt" varies between distributions.)
-
Exit the minlabel program.
3. Copy the aboot bootloader
and Linux kernel to the boot partition:
-
be sure that you have set the correct
floppy drive type. Even if you *do* have a 2.88MB ED drive, you should
set this to 1.44MB if you want to read a 1.44MB disk using copyboot. To
set this, use 'Edit environment variables' from the Setup menu and set
'FLOPPY=2'. You may have to do this directly before the next step, otherwise
you get read errors after block 720 and the system will not boot.
-
Choose "Run a program" from the ARC
menu
-
Enter: a:copyboot
[use eisa(0)disk(0)fdisk(0)copyboot.exe
if that fails]
-
Select source and destination devices
(source is typically /dev/fd0, destination
is /dev/sda, /dev/sdb,...)
-
Remove the ARC utilities disk from the
drive and insert the Linux bootimage disk.
-
Hit ENTER to start copying.
4. Set up the system
to come up to SRM console:
Remove floppy from drive
Select "Supplementary menu..."
Select "Set up the system..."
Select "Switch to OpenVMS or OSF console"
Select "Switch to OSF"
Type ESC
Power-cycle the system.
5. Boot and install
your system:
-
At >>> prompt, type:
BOOT -FL "i" DKAx00
where x00 refers to the boot device
(DKA000 for SCSI device 0, DKA100 for
device 1, etc.).aboot will then
load and ask you what kernel and commandline to boot.
boot dkax00 also brings you into
aboot's interactive mode. The x in dkax00 equals the SCSI device ID, that
is jumpered on your boot disk. [sm]
-
at the aboot prompt, type:
0/a root=/dev/fd0 load_ramdisk=1
(or whatever you need to install/boot).
The '0/a' tells aboot to load the kernel that was written directly to the
beginning of the disk. You can tell aboot to load a kernel directly from
the root filesystem later, after installing the system.
NEW: b 0/a root=/dev/fd0 load_ramdisk=1
(or whatever options you need to
install/boot). The 'b 0/a' tells aboot to load the kernel that was written
directly to the beginning of the disk. (In contrast to the SRM-HOWTO, 'b
-' will not boot the raw kernel, probably because it does not expect compressed
kernel images?) You can tell aboot to load a kernel directly from the root
filesystem later,
after installing the system.
From here on, you should be able to
follow the instructions that came with your Linux distribution. Beware,
however, that you should not re-partition the disk containing the boot
code + kernel, since this will remove the bootable flag from the disklabel.
Also, you do not need to write bootcode and/or kernel to the disk, since
this will remove the aboot code. If either of these happens, you should
be able to reinstall aboot+kernel from the ARC console as described above.
NEW: It is easier to use swriteboot
from aboot 0.7 and the according bootlx (bootlx.aboot0.7) to recreate the
boot code after tempering with the disk label. Be sure to use a command
like "swriteboot (dev/your_boot_disk_goes_here bootlx your_kernel_goes_here.gz"
before you shutdown the system once you have changed the disk label. (Not
putting aboot into a partition probably saves it from beeing overwriten
in the first place.)
Once you have installed Linux on your
system, you can boot it from the
SRM console by saying something
like:
>>> boot -fl "i" dka000 [interactive
boot, as described above]
>>> boot -fl "1" dka000 [use default
config no. 1]
>>> boot dka000 [interactive boot,
less typing]
Read the aboot docs for further instructions
about the possible options and how to setup auto-boot.
NEW: Go for the SRM-HOWTO
as this contains the latest information for aboot.
SuSE 6.4 is bootable from the CD
on the Jensen. Try "boot dkax00", x beeing the SCSI-ID of your cd-drive,
followed by "3" at the aboot prompt. For this to work it is necessary that
your cd-drive is set to 512 byte blocks. (Nowadays 2048 byte blocks are
more customary for those devices. Some drives can be jumpered for both
block sizes.)
RedHat 6.2 ist not CD-bootable, as
it contains no jensen kernel. Generic kernels do not work on Jensens (verified
up to 2.2.16). Therefore one has to use ramdisk floppies. This distibution
requires that the kernel is built with module support, even if you do not
use modules, strange.
When configuring "Timezones", select
"EST" for the timezone, or the value for your location. Do not select "Hardware
clock set to GMT".
Both distributions come with XFree86
version 3.3.6. At least with the ELSA Winner 1000 this release does not
work. The quick and dirty fix is to use the binary of the X server (XF86_S3)
from the version 3.3.5 with the rest from 3.3.6.
The ARC-bootable minlabel and copyboot
which were provided by Jim Paradis enabled this installation procedure
- before, you had to do this on another system with SCSI disks.
Thanks a lot, Jim!
This text is based on Jim's original
documentation and contains major parts of that. I [Michael] have removed
parts that are not necessary for installing (but which you may want to
read in the original version, because they outline *why* this complicated
procedure is necessary), and have added things which I thought might be
helpful while trying this installation myself.
Michael Schwingen, michaels@stochastik.rwth-aachen.de
This version of the jensen install
howto is basically Michael#s with some minor comments. Additional information
was stolen from the Compaq Linux Installation and Configuration Guide.
I tried to add the necessary stuff to install more recent distributions
based on aboot 0.7 and kernel 2.2.17. In addition I verbosely tried to
include some hints regarding partitioning.
Sebastian Moeller, sebastian.moeller@lur.rwth-aachen.de
-- Jim Paradis (paradis@amt.tay1.dec.com)
"It's not procrastination,
Digital Equipment Corporation it's
my new Just-In-Time
(508)952-4047 Workload Management
System!"
http://www.tiac.net/users/jrp/index.html
|