Skip the install kernel and install bootloader step. You don't need a bootloader (the firmware is the bootloader) and the stock arch kernel doesn't work because the firmware doesn't support initial ramdisks.

Skip the install kernel and install bootloader step. You don't need a bootloader (the firmware is the bootloader) and the stock arch kernel doesn't work because the firmware doesn't support initial ramdisks.

Revision as of 21:49, 7 March 2008

This document explains how you can install Arch Linux on a Sun Cobalt RAQ 550 machine.

About the RAQ 550

The Sun Cobalt RAQ 550 is actually just standard PC hardware with customized firmware and board layout. It contains a ServerWorks CSB5 dual channel IDE controller. It has no VGA adaptor, although there is a PCI slot where you could install one (and you would be able to use it). A RAQ 550 comes with the following specifications:

About the processor

The original RAQ 550 came shipped with a Pentium 3 1 Ghz (Coppermine) or a Pentium 3 1,26 Ghz (Tuatulatin). However, there's no reason why you can't replace the processor with something else. I tested a celeron 1,2 Ghz (Tuatulatin) and it works. The celeron only has 100 Mhz FSB, and I haven't found a way yet to force the FSB to be 133 Mhz. I believe anything that's Coppermine or Tuatulatin should work.

Terminology

boot kernel/firmware: This is the software loaded on the system's EEPROM. This is basically a modified linux kernel.

load kernel: This is the kernel that the firmware will try to load. You can use your own kernel here.

Requirements

One Sun Cobalt RAQ 550

One hard drive

Another computer

One crazy admin

Firmware requirements: I haven't tested this with the original firmware that normally ships with the RAQ 550, because mine already came with updated (unofficial) firmware. Updating the firmware is beyond the scope of this document. BIG FAT WARNING:If the firmware update process goes wrong and you reboot your system, you just have turned your RAQ 550 into a piece of junk. The only way to fix it would be to desolder the flash chip and have it flashed again with correct firmware. If your firmware works for you, I recommend not touching it.

Setting up your serial port

The RAQ 550 has two serial ports, which the first one (marked with a single dot) serves as console access. Configure your terminal application to use 115200 baudrate, 8 bits, no parity and 1 stop bit (115200 8N1). Use screen: screen /dev/ttyS0 115200. This serial port setting is hardcoded and cannot be changed.

How the RAQ 550 boots

Booting from hard disk

The firmware is actually a modified linux kernel, serving as a bootloader. It will search for

vmlinux.gz

vmlinux.bz2

/boot/vmlinux.gz

/boot/vmlinux.bz2

on the root device you set, so this means the boot kernel needs to be able to read the filesystem where your load kernel resides. This limits the filesystems you can use where the load kernel resides to the filesystems that the firmware supports. Customized firmware may support other filesystems, cobalt's official software only supports ext2. Use ext2. If you have a seperate /boot, you can use whatever filesystem for / that the load kernel supports.

Booting from network

As you might have noticed, the RAQ 550 supports "netbooting". But it's not the netbooting you would expect, it doesn't use PXE. It uses its firmware kernel and tries to set it up with an NFS (Network File System) root.

Installing without RAID

Moving the RAQ 550 hard drive

The easiest way for installing Arch Linux is to take out the hard drive, put it in another computer and install Arch Linux from there. If you know what you're doing you can install it any way you want, this article only covers installation via the Arch Linux installer CD. Put the hard drive in the other computer and start the install CD.

Installing the base system

Select your method of installation (I always use FTP installs) and proceed with the installation as usual.

Partitioning

When it's time to partition your harddrive, the partition where the kernel resides must be supported by the firmware (see "How the RAQ 550 boots"). Unless you're running modified firmware, the built in firmware only supports ext2 (ext3 is backwards compatible). The kernel must also be located on the first partition.

Load kernel must be located on the first partition

Filesystem of the first partition must be supported by the firmware

Kernel must have a specific name (see "How the RAQ 550 boots")

/

Skip the install kernel and install bootloader step. You don't need a bootloader (the firmware is the bootloader) and the stock arch kernel doesn't work because the firmware doesn't support initial ramdisks.

Install the linux-raq550 kernel

Exit the installation and chroot to your new system. Configure pacman's mirrorlist and run

Configure the serial port for terminal access

We're not done yet. We need to configure init to spawn a terminal on the serial port. Add this to your /etc/inittab:

s0:0123456:respawn:/sbin/agetty -8 -L 115200 ttyS0 vt100

That will spawn agetty vt100 on the first serial port with a linespeed of 115200 bits/s and assume the line is 8 bit clean. You can comment out the virtual consoles (the vc/n) ones if you don't intend on using them.

Notice that you won't be able to log in as root on the serial. In order to allow root to login from the serial add that serial port to /etc/securetty

It's useful to already setup sshd. Don't forget to set a password for root (sshd denies passwordless logins by default), and don't forget about hosts.deny.

Disconnect the harddrive and put it back in the RAQ 550.

Configuring the firmware

Now you'll need to configure the firmware and set your root device. Pay close attention to the startup messages and press the space bar to enter the system rom menu mode. Type boot and then set_root_dev to set the root device. For example:

Put the RAQ 550 harddrive back

By now the RAQ 550 should start and you'll be able to login and further configure your system to your likings.

Notes

What about the LCD/Front panel?

The only way I've found to make the LCD and front panel work is by the patches supplied by Jeff Walter (see resources). These aren't included in the linux-raq550 kernel, as there's no clean way to apply these patches yet. (The patches were written for gentoo's kernel)

What about earlier RAQ servers, like the RAQ 4?

The RAQ 4 and 3 have an AMD K6-2 processor, which do not support the full i686 instruction set. RAQ 2 and 1 use MIPS processors. Therefore you cannot use Arch Linux on these RAQ servers.

Post-install cleanup

Because of the customized kernel without an initial ramdisk, you can get rid of the following packages:

kernel26

mkinitcpio

klibc-udev

klibc-module-init-tools

klibc-extras

klibc

gen-init-cpio

grub

cpio

lilo

And obviously packages like pcmcia-utils.

Using your own kernel

You can use your own compiled kernel, but the compressed size of the vmlinux file may not be larger than ~1,8 megabytes. Using bzip2 results in a slightly better compression than gzip. The configuration of the linux-raq550 kernel is a good starting point, you can find it in /proc/config.gz

Resources

Unfortunatly, information about the Cobalt RAQ servers is sparse and scattered. Most documentation insists on using CentOS. Here are some interesting links:

Jeff Walter [1]: This guy installed gentoo on his raq, and wrote kernel patches for using the LCD and front panel.

Sun's Cobalt site [2]: Contains the original documentation for the raq 550 server.