Sunday, February 21, 2010

The story of the Cobalt Qube

The other week, a friendly colleague of mine brought me a small present. He gave me one of his Cobalt Qubes (for free!) which was collecting dust at his home. He was certain that I could give it a better use.

I think I can still remember the days these things hit the market (somewhere in the late 90's). This was a home / office server appliance way before the people of Microsoft thought up their Windows Home Server. It was running some modified version of Linux RedHat, featuring a web interface for all administrative tasks. It also had 2 network cards, so you could easily turn it into a gateway / firewall. The RedHat version running on the Qube was known to be notoriously insecure. It was also running an older 2.0.x kernel which was outdated, even at that time. The Qube 2700 and Qube 2 were both equipped with a MIPS processor. Later models had an i386 architecture. Mine was a Qube 2.

Getting the serial connection to work


The Qube does not have any VGA adapter, so if you want to see what is happening inside, you'll need to get your serial connection to work. The LCD on the back also spits out some messages, but these are rather brief. Now, we need to connect a NULL modem cable to the serial console port of the Qube. You can easily create these NULL modem cables yourself. All you need is:
  • a few metres of phone cable (4 wires)
  • 2 DB9 female connectors
. Solder wire_1 to pin 2, wire_2 to pin 3 and wire_3 to pin 5 on one DB9 connector. Next, solder wire_1 to pin 3, wire_2 to pin 2 and wire_3 to pin 5 and your done. As you can see, pin 3 and pin 2 are crossed, pin 5 is used for mass.
You can connect to the serial console from any Linux box by typing:screen /dev/ttyS0 115200. The output should be similar to the text shown below:

Cobalt Microserver Diagnostics - 'We serve it, you surf it'
Built Wed Mar 3 21:26:25 PST 1999

1.LCD Test................................PASS
2.Controller Test.........................PASS
5.Bank 0:.................................64M
6.Bank 1:.................................64M
7.Bank 2:.................................64M
8.Bank 3:.................................64M
9.Serial Test.............................PASS
10.PCI Expansion Slot....................**EMPTY**
12.IDE Test................................PASS
13.Ethernet Test...........................PASS
16.RTC Test................................PASS
BOOTLOADER: trying to boot from partition /dev/hda1
Decompressing done
Decompressing \ done.

Opening the box


I head no idea what kind of hard drive was in there, or the size, so I decided to open the box and have a look. Apparently, my box had a Western Digital hard drive of 10 GB, which is rather small for today's standards. It also had 16 MB of RAM, which is also rather small.
While surfing the Internet, I found some people putting larger drives in the Qube and more RAM. Apparently, it supports up to 265 MB of RAM, but I had no idea which modern hard drives are supported.

Adding more memory


Unlike other reports you can find on the Internet, the Qube does not use some proprietary memory format. In fact, I've managed to put 2 16 MB modules in there that were salvaged from an old Pentium I computer (standard 72 pin EDO RAM). However, 32 MB is not much either, so I decided to buy 2 modules of 128 MB from MemoryTen. It only took 2 days to get the memory in Belgium and the Qube is now running happily with 256 MB.


Adding a larger disk


Since I'll be using the Qube as a LAN disk, I wanted to upgrade the hard drive to a larger format. I was not sure, however, if the Qube was going to support large drives (i.e. drives larger than, say 40 GB). After a quick search on the Internet, it seemed that all MIPS based Qubes have an LBA 48 IDE controller. This means that the capacity of the drive is limited to 144 petabytes (!!). All later models (including RAQ) based on i386 architecture have an LBA 24 IDE controller, limiting the size to 137 GB (bummer).
My local computer store still had some Western Digital Caviar disks of 320 GB, so I decided to buy one. The drive has an 8 MB buffer and is running at 7200 rpm, which should be a lot faster than the standard 10 GB drive.

Installing Debian Lenny


Martin Michlmayr has written a very good installation guide to install Debian Lenny on a Qube. The Qube can easily boot an install image from the network, but the installer requires at leas 32 MB of memory. Apparently, 32 MB did not suffice, since the installer crashed in the middle of the procedure. Having 256 MB helped a lot. If you don't want to upgrade your memory, you can still install Debian by putting the drive in an external USB enclosure and extract the tarball containing a Debian base install onto the mounted drive. This tarball (and explanation) is also available on Martin Michlmayr's site.
Since my serial connection was working properly, I used the serial installer to install Debian on the new hard drive. As with all Debian installs, this went like a breeze.

Booting the device


Booting from the new drive seemed to be difficult, however. For some reason, not entirely sure why, the Qube refuses to boot from this drive. Debian Linux did support this drive, since I was able to install it, so I needed a different device to boot from. A possible solution would be to boot from the 10 GB drive and to use the 320 GB drive as storage. The Qube does not have a lot of room to spare, however, and powering 2 IDE drives might kill the external power supply. Fortunately I had a Compact Flash to IDE adapter lying around, so I decided to try and use this as boot device.

This seemed to work just fine. The Compact Flash adapter requires an fdd power cable, which I could salvage from an old 486DX100. The fdd cable was soldered to a molex to molex cable and looks more or less like the figure below.

The Compact Flash card now contains the boot partition of 100 MB. Using a larger boot partition or the whole Compact Flash (1 GB) did not work. The rest of the file system is mounted from the 320 GB disk, to limit the number of writes to the Compact Flash.

Conclusion


Enhancing an old Qube's capabilities was a very pleasant experience. It was a lot more fun than installing the Wyse and I must say, it looks a lot cooler. Right now, the Qube isn't doing anything yet, but I will be using it as a Samba / NFS server to store backups. Keep reading this blog, as I will post some more on the Qube in the near future.

9 comments:

Anonymous said...

Intersting and I'm enjoy reading your qube installation. I have qube 2700, and installed debian too. sadly the system is unreliable because I installed colo on qube eeprom. If you don't mind, can you extract your qube firmware for downgrade my colo qube firmware.

Thank you

Dida

kennywest said...

I guess I can do that. Can you point me to some instructions on how to do that?

Anonymous said...

Thank you for your quick response, you give me new soul to my qube :).
I read install file instruction colo from at http://www.colonel-panic.org/cobalt-mips/colo/colo-1.22.tar.gz using flash tool comand. I quote some text :

Step 2 - saving the old boot loader
-----------------------------------

Take a copy of the original boot loader

#flash-tool cobalt-original-boot.bin

This should create a file called 'cobalt-original-boot.bin' that is 512KB in
size.

!! SAVE THIS FILE SOMEWHERE VERY SAFE !!

Save the file somewhere safe, not on your Qube/RaQ. You will need this file to
restore your unit to it's original state.

Thanks

dida

kennywest said...

I followed the instructions and the file can be downloaded near http://users.telenet.be/Kenneth.Westelinck/cobalt/

Hope this helps.

Anonymous said...

Thanks Mr Kenneth for your effort to extract qube firmware. These step what I've done to downgrade firmware using tftp.

After download your extracted firmware cobalt-original-boot.bin, using tftpd32 (under winxp) dhcp and tftp service. I setup dhcp and tftpd root directory in the folder cobalt firmware.
Qube connected using serial and ethernet to my PC. Start the Qube, when in hyperterminal show "booting", then press CTRL-C,
- ? show various command on Colo
-net ( qube got ip address from dhcp)
-tftp ipaddrrmypc /cobalt-original-boot.bin
-md5sum (I'm forgot to ask you md5 of downloaded file, ahh, just cross finger, I hope it works)
- flash 0 (confirmation to flash, change rapidly asking about single char)
-Reboot

Tada

There's no Colo anymore on my Qube firmware, next step, installing debian.

kennywest said...

Glad it worked.

Sameer Verma said...

I have a Qube2 running 24/7 for over 11 years now, with minor downtime for maintenance. It is quite an amazing machine.

kennywest said...

Is this with stock OS or Debian?

A.Z said...

I could not make if you are using a qube(1) ?

The tutorials tates debian will not work in qube1.