HomeIntroSoftwareHardwareOther pagesAbout  

Documentation
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