Difference between revisions of "Cobalt"
(→Running Linux: Added note about the firmware's NFSv2 requirement.)
|Line 93:||Line 93:|
== Hints for running Linux ==
== Hints for running Linux ==
Latest revision as of 01:16, 6 October 2014
Note, This page does _not_ cover the x86-based Qube 3, Raq 3 and later Cobalt servers which are based on x86 processors.
- 1 General
- 2 Processor Options
- 3 Memory
- 4 Serial Console
- 5 Storage Options
- 6 Power Supply
- 7 Networking Options
- 8 Firmware
- 9 Running Linux
- 10 Hints for running Linux
- 11 Other information
The Qube and RaQ series was created by Cobalt Networks Inc. (which was later bought by Sun Microsystems). EOL of the RaQ2 series was in 2001.
The machines were build to suit different purposes. Therefore they were sold with different hardware options regarding memory, storage options and networking.
The boxes were shipped with a web-based administration GUI on top of a Red Hat Linux running a 2.0.x-kernel. Additionally certain basic settings could be set using the LCD display and the control buttons.
Cobalt Qube and Cobalt RaQ were equipped with RM5230 processors running at 150MHz. Qube 2 and Raq 2 use the RM5231 CPU which doubles the cache size over the RM5230 running at upto 250MHz. This processor is a MIPS IV architecture with minor extensions. At the moment, Linux/MIPS will run in 64-bit mode on these machines, but support is very experimental at the moment, and therefore is not recommended for production use. Running a 32-bit kernel however is quite stable.
The RaQ uses Galileo GT-64011 System Controller and VIA Technologies VT82C586A (Apollo VP) PCI-ISA Bridge and IDE UDMA-33 controller.
The RaQ 2 uses Galileo GT-64111 System Controller and VIA Technologies VT82C586.
All boxes have two 72-PIN EDO slots on the same board as the CPU. The boxes came with standard amounts between 16 and 256MB RAM. Maximum is 256MB (2x128MB DRAM EDO SIMMs, 3.3V).
These boxes are completely headless though the Qube2 and RaQ/RaQ2 provide a serial console port (originally running at 115200 bps, 8-bits, no parity, 1 stop bit). To enable this during the startup, hold in the "password reset" button whilst powering the unit on. On RaQ machines this button is behind the hole on the lower right corner of the LCD (use eg a pin to operate). When "Console ON" appears on the LCD panel, power-cycle the box. From now on you should see the Cobalt firmware (or CoLo) starting up.
The 19", 1U RaQ-case fits for up to two hard disks (each max. 137GB - also please keep the rating of the power supply in mind, Jim Gifford recommends against using a second disk faster than 5400 RPM). They also have a single IDE socket, which means that the two disks are to be mounted on the same IDE interface. Of course this requires another IDE ribbon cable with 3 connectors, as well as a Molex splitter since the motherboard has only one power outlet. (With the latest Colo and Debian Lenny I have run 1x 512GB 7200RPM drive in it, without any issues, don't know if this works for everybody)
Another, better performing solution for 1U RaQ's for someone with some soldering experience is to enable the second IDE channel by fitting the components for it (the IDE circuitry is already there, one just needs a handful of resistors, a diode and the connector). Here is the result:
Additionally some RaQ 2's have an onboard LSI-Logic (this photo) SCSI controller (NCR53C810, ultra narrow) which hooks to an additional mini-micro 50-pin SCSI port at the back.
The original Qube, as well as the Qube2, had a single ATA66 IDE socket on the main board.
The Qube2 can happily accept any PCI SCSI card that will physically fit inside the case (I'm happily using a Adaptec AHA-2940AU PCI SCSI card without any problems).
Note that the Cobalt firmware only recognises the Master IDE HDD plugged into the onboard socket.
RaQ are fitted with an Artesyn NLP40-7629PSU. It's rated +5V/4A, +12V/2A. Spares are still available (approx. 60 EUR/85 US$ + S&H per piece).
The Cobalt servers are equipped with either one or two ethernet interfaces. The first revisons of Qube and RaQ have 10Mbit interfaces using the DEC Tulip 21041 network controller. The more recent 21143 controller supports 10/100Mbit ethernet and was build into later revisions of Qube and RaQ. Qube 2's and RaQ 2's use the 21143, too. Again, if your server has a PCI slot you can install a PCI network card into that slot to use it with Linux. Note that you can only netboot with the onboard Primary (eth0) interface.
Network performance using a current kernel is rather poor (only up to approx. 1,5 MB/s).
The stock firmware on the Cobalt servers is basic to say the least. It supports netbooting using DHCP & NFS, as well as booting off the hard drive. The firmware expects to see a kernel image called 'vmlinux.gz' on the root directory of the first partition on the first drive. It can only read EXT2 revision 0 partitions (create them using mke2fs -r 0 /dev/BLAH) and cannot load kernels of over 675kB in size.
Peter Horton is the author and current maintainer of the CoLo boot loader. CoLo, unlike the original bootloader, has no limitation on the size of kernel to load, and also features support for initial ramdisks, EXT2 and EXT3 support, as well as loading kernels over NFS and TFTP. It can be configured through the use of scripting, with the capability to chain scripts together, ask questions on the LCD panel and perform various tasks.
Installation of Linux on Qube and RaQ is done by either serial line or netboot/nfs. Therefore special support is required.
The "intended" way
The Cobalt boxes were shipped with a preinstalled Red Hat based Linux distribution. Additionally Cobalt provided a GUI to admin the box. A restore CD  to do a net-install using a PC having a defined NIC (3com-series) was included. Shipped Kernel was of the 2.0.-series. (Outdated) update packages are still available. "Newest" provided Kernel was 2.2.x
The "unoffical" Debian way
In mid 2002 Paul Martin published a How-To to install (the at that time new) Debian Woody 3.0 on the cobalt machines. He also provided the necessary files and a 2.4.18 kernel (supporting ext2- and ext3-filesystem) for the base installation. The Cobalt machines aren't officially supported by Debian Woody - but are doing well running their MIPSel flavour after base-installation is done.
The "new" Debian way
Oncoming Debian Sarge will officially support MIPS-based Qube and RaQ. It will include its own installer but requires another system for acting as NFS and DHCP server.
The Gentoo Way
ÂµClibc's buildroot also can be used to build a 32-bit userland that will run on a Cobalt machine.
In order to network boot the Cobalt devices when running their stock firmware, you will require:
- A DHCP server, which will tell the device its IP address and next-server address
- A NFSv2 server: the stock Cobalt firmware tries to download its kernel from a file in the /nfsroot directory on the NFS server which it mounts using NFSv2. NFSv3 is not supported by the device.
Note that lately Linux distributions are shipping with NFSv2 support disabled or broken: a virtual machine running an older edition of Linux (such as Debian Sarge, Etch or Lenny) is sufficient for working around this problem.
Hints for running Linux
Build your own kernel
When building your own kernel start with few kernel options and add required options later. Some combinations fail(ed) to compile - or don't work properly (eg. SCSI-support is/was affected). The provided "defconfig-cobalt" is a good start. Other user-contributed .config settings can be found on the Gentoo/MIPS Hardware Compatability Database.
When the compiler is finally running and building the kernel, have some quantity of your favorite beverage or go out for a nice walk or have a chat. On a RaQ2 with 256 MB RAM and a decent hard-disk building the kernel and modules will take more than two hours ;). Maybe setting up a cross-compiler is a good idea either.
Using the original boot-loader
main article: Cobalt_Firmware
As the boot partition is ext2-type at least support for ext2-filesystem has to be included in the kernel.
Following is valid for kernel < 2.4.23 and machines running the original firmware: Kernel size is a big matter. Maximum compressed size is about 620 kB (depending on model). "strip vmlinux" is recommended to reduce the size. Afterwards do "gzip -9 vmlinux" and install your kernel.
Copy your own version of System.map and vmlinux.gz using appropriate names (eg. 2422.gz) to the boot partition. Keep a copy of a running kernel as backup! Enable the serial console (if not already done), attach a cable to the serial console, start your favorite terminal program (115k2, 8N1) and power on the box. When post is running press space and enter e.g. "bfd /boot/2422.gz". When the kernel is booting you're done. Otherwise reboot and boot your backup kernel.
When using CoLo only installed memory is the limit of the kernel size. For other advantages - see CoLo ;)