Getting Debian installed on a Digital Alpha Workstation


Author: Martin List-Petersen - martin at list-petersen dot dk
The newest version of this document can allways be found at http://www.marlow.dk/alpha
Version: 0.1
Created: October 11th, 2004
Last updated: October 13th, 2004

The information here is provided AS IS and comes at no warranty.

Introduction

I recently traded myself to a Digital Personal Workstation 433a, which even though it seems a bit outdated, still is a quite powerful machine. I've allways been interested in Alpha CPU based systems, installed a few, but only bought myself a motherboard with CPU (PC164) last year to realise, that i couldn't get my hands on 72pin EEC memory modules (yep, EDOs and i haven't given up finding some yet).
Anyhow, on my last trip to Denmark a Alpha Personal Workstation, that had crossed my path, was dumped in my car and brought back to Ireland. Of course it's supposed to run Linux.

Installing Linux, especially on the "a" series of the PWS is a bit tricky. The PWS a-series was designed for Windows NT and the early beta's of Windows 2000 for Alpha. But with a little research all the bits and pieces can be found. I just thought it might be nice to collect them in one spot, which I will do here.

Content

History

Digital Personal Workstation 433a (Miata)

Digital Personal Workstation 433a (Miata)
The Miata initially starts up with the GUI based AlphaBIOS, but it also has the SRM bios, which looks a bit like a shell. And should you ever forget to attach a keyboard to the machine, don't wonder why it might stay blank. The output is on the serial port (9600 8n1), if no keyboard is detected. There a besides two versions of the Miata: the "a" series, that was ment for Windows only and the "au" series, that was ment to be run with Unix.

AlphaBIOS and MILO

The AlphaBIOS is what Digital designed for Windows NT and the Beta 2000 releases (since Windows 2000 for Alpha never was released). Using AlphaBIOS for booting Linux requires MILO (the Alpha MIni LOader), which either can be booted from floppy or a FAT partition, so actually the first thing to do is to create a 2 MB FAT partition on your harddisk, because the AlphaBIOS can't read anything else.
MILO will afterwards be able to read kernel and initrd image from an ext2 image.

The FAT partition can be created and formatted from the BIOS and it's probably best to do that, before you start installing the system.

My initial choice of installation was floppy, because i had forgotten the caddy for the PlexWriter in the system and I was too lazy to install a tftp server on one of the other machines.

3 floppies are needed: milo, rescue and root floppies. I usually ommit the driver floppies unless i have some very specific hardware. The milo image can be found at: http://ftp.ie.debian.org/debian/dists/woody/main/disks-alpha/current/MILO/milo_miata.bin. Basically all images can be found at http://ftp.ie.debian.org/debian/dists/woody/main/disks-alpha/current/. Regarding the MILO images, those are specific to each system because they replace the BIOS in the memory during boot. If you have another Alpha system, you will need another milo floppy.

After downloading and creating those floppies, the first task is to tell AlphaBIOS to boot the milo floppy. Enter the BIOS with F2, go to Utilities -> OS Selection Setup and press INSERT to create a need entry in the boot manager. Let's call this MILO-FLOPPY or whatever suits you. Boot File is set to A: and "linload.exe", OS Path: is set to anything (mine says CD:) and "milo". Save the changes by pressing enter and F10 as soon as you are back in the bootmanager part of the BIOS.
Exit the BIOS, choose MILO-FLOPPY and MILO will be loaded instead of the BIOS.

replace the MILO with the rescue floppy and enter boot fd0:linux.bin root=/dev/fd0 load_ramdisk=1 at the MILO> prompt.

From here the installation is straight forward and looks like any other Debian Woody installation, so i will not cover that part.

Once installation is finished, it seems to fail to make the system bootable, but no worries. Once you are back at the milo floppy, you can (depending on your installation) type boot sda2:vmlinuz root=/dev/sda3 to boot the system. Boot your Linux installation, copy the files from the floppy to the initially created FAT partition and back to the BIOS.
In Utilities -> OS Selection Setup, you can specify the FAT partition now and enter boot sda2:vmlinuz root=/dev/sda3 for "OS Options". That will automatically boot your installation.

Anyhow, i had loads of trouble with AlphaBIOS and also i wanted to try to do a netboot install, so in the BIOS under "CMOS Setup", you can press F6 for Advanced. Console Selection let's you choose, what kind of BIOS you want and "UNIX Console (SRM)" is what i want to introduce now. After making that change the machine has to be switched of and turned on again, to let the change kick in.

SRM and aboot

Debian Sarge, which is the next Debian to be released, can currently only be installed by cd or netboot and as i mentioned earlier, i didn't have the caddy for my PlexWriter and was too lazy to find another cd-rom drive to mount in the machine.

After my machine came back up, SRM enabled, i just got a blue screen, with a blinking cursor and no reaction of the keyboard. Not even the Num Lock key. Unplugging the keyboard, rebooting the machine, brings the SRM console up on the serial console:
Either SRM does not like the graphics card installed in my machine or the 433a BIOS was so crippled, that SRM is not easy to get to. So I decided to do this on the serial console right now and see what happens, once i boot Debian.

When the SRM comes up, it looks a bit like this:
  Digital Personal WorkStation 433au5.e4.
  Console V7.2-1 Mar  6 2000 14:47:02
  >>>
		
First of all, we need to know, what devices we can use:
  >>>show dev
  dkc0.0.0.1010.0            DKC0               IBM DNES-318350W  SAH0
  dkc200.2.0.1010.0          DKC200      PLEXTOR CD-R   PX-R412C  1.02
  dva0.0.0.0.1               DVA0                               
  ewa0.0.0.3.0               EWA0              00-00-F8-75-4B-8D
  pkc0.7.0.1010.0            PKC0                  SCSI Bus ID 7  5.57
  pqa0.0.0.4.0               PQA0                       PCI EIDE
  pqb0.0.1.4.0               PQB0                       PCI EIDE
		
To perform a netboot, I needed to setup a tftpserver, my choice was tftpd. I downloaded the netboot image from the debian installer (d-i) development page. In the dhcpd (I use the ISC one) the following lines needed to be added to /etc/dhcpd.conf:
  allow booting;
  allow bootp;

  use-host-decl-names             on;

  subnet 10.2.47.0 netmask 255.255.255.224 {
  option subnet-mask 255.255.255.224;
  option domain-name-servers  217.67.140.90, 194.168.4.100, 193.88.44.22;
  range 10.2.47.16 10.2.47.29;
  option broadcast-address 10.2.47.31;
  option routers 10.2.47.30;
  next-server 10.2.47.11;
  option domain-name "home.marlow.dk";

    host schroeder {
      hardware ethernet  00:00:f8:75:4b:8d;
      filename "/tftpboot/boot.img";
    }
  }
		
And of course the dhcpd had to be restarted.

The interesting part of this configuration are allow booting;, allow bootp;, next-server 10.2.47.11, which specifies the tftp-server and of course the section on host schroeder is my Miata.
At the SRM prompt, i now entered: boot -proto bootp ewa0 -flags "" and exactly as assumed. Linux boots on screen, not on console.

Keyboard plugged back in i could perform a full Debian Sarge install. aboot, which is the bootloader that should be used together with SRM, is installed correctly and on a reboot (remember to unplug the keyboard) i'm back on the SRM console via my serial terminal.

Now, there are some variable we can set, to let SRM autoload a certain partition:
  >>>show boot*
  boot_dev                dkc0.0.0.1010.0 
  boot_file                               
  boot_osflags            0               
  boot_reset              ON              
  bootdef_dev             dkc0.0.0.1010.0 
  booted_dev              dkc0.0.0.1010.0 
  booted_file                             
  booted_osflags          0               
		
By executing set bootdef_dev dkc0 i've told SRM that the default boot device is dkc0, which is my harddisk.
  >>>show auto*
  auto_action             BOOT            
		
By setting auto_action to boot (set auto_action boot) we force SRM to boot to bootdef_dev automatically. So when i turn my machine on, keyboard unplugged, I get the following on the serial console (check the last aboot line, i've set my Linux to show output both on serial and console):
  Console V7.2-1 Mar  6 2000 14:47:02

  CPU 0 booting

  (boot dkc0.0.0.1010.0 -flags 0)
  block 0 of dkc0.0.0.1010.0 is a valid boot block
  reading 171 blocks from dkc0.0.0.1010.0
  bootstrap code read in
  base = 1d8000, image_start = 0, image_bytes = 15600
  initializing HWRPB at 2000
  initializing page table at 1ca000
  initializing machine state
  setting affinity to the primary CPU
  jumping to bootstrap code
  aboot: Linux/Alpha SRM bootloader version 0.9b
  aboot: switching to OSF/1 PALcode version 1.22
  aboot: booting from device 'SCSI 0 1010 0 0 0 0 0'
  aboot: valid disklabel found: 5 partitions.
  aboot: loading uncompressed vmlinuz...
  aboot: loading compressed vmlinuz...
  aboot: zero-filling 398888 bytes at 0xfffffc0000546708
  aboot: loading initrd (5390336 bytes/5264 blocks) at 0xfffffc000f9d4000
  aboot: starting kernel vmlinuz with arguments ro  root=/dev/sda3 console=tty0 console=ttyS0,9600n1
  Linux version 2.4.27-20041008-ev56-schroeder (root@schroeder) (gcc version 3.3.4 (Debian 1:3.3.4-13)) #1 Fri Oct 8 21:01:22 IST 2004
		
I am quite happy with using SRM as BIOS, but as mentioned, I need to unplug my keyboard every time I boot. The machine will halt, if the keyboard is attached.

Links

Website last modified: Jan 8th, 2007 - 1:39 PM  GMT.
(C)opyright 1997 - 2007  by Martin List-Petersen
IPv6 Ready Hosting by TuxBoxValid HTML 4.01!Valid CSS!