Unforgettability.Net

Coming Up...

Pioneer One
is a new free sci-fi series distrubuted under the Creative Commons. Check it out!

Thicker Than Blood
Give it a read. I liked it!


============================================================
Cobalt RaQ3 | Gentoo APRS Ebuilds | Heathkit GR-54 | J-Pole in a tree | Milk Jug Dipole | Power Supply | Workbench

Updating a Cobalt RAQ 3 in 2010

   It's a great time for a geek to be alive today.  There's all sorts of great gadgets available that just weren't possible not very long ago.  Let's say you want a small, dedicated computer for some task.  Maybe it's a router, a fileserver or a web server.  It could be more on the radio side of things, a dedicated APRS IGate, an EchoLink or IRLP node.  For such things you don't have to have the latest and greatest processor.  Low power consumption and reliability are far more important.  The options today are amazing. If you want to stick with x86 Intel with it's Atom processors would be a great choice.  If you don't mind doing a little compiling yourself you could go Arm with a  Beagle Board or for a really small server there's Gumstix.  Of course, let's not forget the Sheeva Plug if you want to hide your server in plain site among the wall warts. Chumby Guts are a great option if you want a display to come included.

   These little machines are great, but how many can you buy?  I don't know about you but I only have so much budget for my hobby.  Actually, I am currently saving a little bit each paycheck for an oscilloscope and at this rate it's definitely going to take  a while.  Don't get me wrong, I am fortunate to have a nice job which pays well.  My wife... well at least her job gets the pays well part.  Things are going good enough for us but a hobby just can't take the majority of my paycheck and from what I see on the news plenty of people today would agree.

   That's where a Cobalt server comes in. I got mine off of EBay for less than $30, including the shipping. So what is a Cobalt server? It's a 1-U 19" rack mount Linux box.  There were multiple models and mine is a RaQ3 which has a K6-2 300Mhz processor, 2 RAM slots, 1 PCI slot and 1 USB port.  Obviously this is an outdated computer.  But... it's cut down to just what you need for a dedicated machine.  There is no video, no PS2 ports, nothing to give it a standard PC interface, just an LCD and some pushbuttons on the front.  The whole machine only uses about 50 Watts of power.  I have lightbulbs that are bigger than that! I suspect I could lower the power requirement even further by replacing the hard drive with a CF card.

   Can a 300Mhz computer be useful today?  Of course it can!  I have certainly used routers with less power.  I had a Linksys which was customized with DDWRT before it died.  That was pretty nice and I could do neat things with it but how much more flexible would an X86 machine with a hard drive be?  The requirements for IRLP are only P133 with 96Megs of RAM.  How about APRS?  I bet my wristwatch could do that!  This guy does APRS with just an AVR chip!

   So, what is involved with using a Cobalt?  Cobalts are Linux boxes, mostly standard hardware with a Linux backend and a proprietary front end for managing it as a webserver.  The Linux involved is ancient, it's kernel 2.2.  For you Windows guys that's kind of like running Windows 3. I don't mean windows 3.11, I mean Windows 3, and that's being generous.  Now, I said Cobalts are mostly standard hardware.  They aren't quite PCs, they don't have a typical PC BIOS.  Cobalt ROMS expect to load a Linux kernel and this is all they know how to boot.  They expect that it's a 2.2 kernel in fact.  Fortunately there is an open source replacement BIOS which will allow you to run 2.4 and 2.6 kernels.  Now that's more like it!  Actually, I believe it allows for NetBSD as well but I don't know anything about that so you are on your own there.  Unless you want to play around with an old and no longer supported by anyone version of Linux this will be your first task, replace the ROM.  After that, just pop in a modern Linux distro and whatever software you need for the chosen task.

   Backing up for a moment, I actually started by modifying my Cobalt.  The RaQ series of Cobalts have two fans, one for the PSU and one for the CPU.  These are the small kind which fit standing up in the 1U case.  Both were seized up in my server when it arrived. This didn't bother me much because I absolutely HATE small fans.  Surprisingly they seem to be noisier than the larger ones, probably because they spin faster to make up for their size.  On top of this they are known to wear out much faster.  Instead of replacing my fans I just removed them.  Then I cut two holes in the top of my case and mounted standard sized case fans to it.  I had a couple of brass fan guards left over from some machine or another that I gutted.  I picked up some brass screws, washers and nuts from the local hardware store to match them. It actually doesn't look that bad, the brass goes well against the black and purple Cobalt.  It does mean my 1U box now takes up more like 2U if it were actually on a rack.  Plus I would really need 3U so that the fans have somewhere to pull air through.  This isn't bad though because I don't actually have a rack to mount it in.  Even if I did I don't mind sacrificing a little vertical space to get rid of those horrible little fans.

   Another possible upgrade is to replace the CPU.  I've read that some have used K6-3 450Mhz chips.  Unfortunately there are no jumpers to change the clock speed.  The only way to do it is to short two pins in the CPU socket.  I first read about this around a year ago.  Since then it seems that most information about Cobalts has been taken offline.  Fortunately there is the Internet Archive AKA, the Wayback Machine.  Here's their copy of the page I read concerning changing the clock multiplier.  I wonder if I really have to bother with placing a wire in the CPU socket.  Why not just add a solder bridge to the back of the PCB board?  I believe this would get your speed up to about 412Mhz. On top of that, K6-IIIs had more onboard cache and that seemed to make a difference. I may eventually try this.

   First I needed a null modem serial cable.  Normally you can log into a Cobalt machine through the first serial port at 115200 baud, 8N1.  I found this page which describes the pinouts of all sorts of null modem cables.  I didn't really know which one I need so I chose to go with the very last one, the big one with the most wires connected that was supposed to support the fastest speeds.  Of course it didn't work.  At least, not until I disabled both software and hardware flow control which I assume eliminates the benefit of all those extra wires.  Oh well, at least I'm in.  That's good enough.  Unfortunately this one doesn't seem to allow serial access in quite the same way.  I get all the ROM and bootup messages but no login screen.  I tried both ports and even adding the missing inittab lines but still nothing.  I can login with single user mode.  To do that press the spacebar to get into the ROM setup.  Go to the boot menu by typing "boot" then Enter.  Type "set_params single" to set single user mode then "bfd" to make it boot.  Unfortunately this provides no networking so I couldn't download the ROM update.

   I decided to risk getting disconnected during the ROM update and do it from Telnet.  I didn't have the password from the previous owner so for this I had to reset the admin password.  To do that there is a recessed button next to the LCD.  Use something sharp to hold it in a moment and the LCD tells you when it is resetting the password.  Then you can telnet in using the username "admin" and a blank password.  I did this and used wget to retrieve the new ROM image and the update tool from this page.  I followed Jeff's directions and created a backup of the original ROM first.  When I tried to write the new ROM though I received a bunch of messages about blocks failing to erase.  The error message actually suggested that maybe there was no Flash chip to write to!  After this I made a new backup and used diff to compare it to the original.  They differed.  I also compared it to the new image.  That was different too!  I tried flashing the backup back to the chip but had the same results.  I tried a few more times but got nowhere so I flashed the new ROM on one last time and decided to go ahead and reboot  to see if it was really bricked or not.

   That got me the following funny screen (in minicom):

Sun Cobalt MiniMonitor
-------------------------------------
h - display help
m - download and run new monitor
b - download and run a bzip2ed monitor
q - quit MiniMonitor (proceed to Monitor)

The H only got me the same menu again. M and B made it seem to wait indefinitely for me to do something else and Q just caused the server to halt with an error message. I found this forum thread which discussed the same menu.  Here a helpful person going by the name jimbob provided a file which could be sent to the Cobalt via the serial port to get it past this message.  Just chose option B and then type cat filename >/dev/ttySx to send the file where ttySx is your serial port.  I tried this and it worked, I got the normal ROM screen.  It still wouldn't load the kernel though.  Also, if I rebooted I was back to the minimonitor menu and had to send the file via serial port again.

   At this point I decided to give up on the "safe" method of updating the ROM and try it via serial port without the OS.  I still had to use jimbob's file one more time to get into the regular ROM menu but from there I was able to install my new ROM via the serial port method. It seems to have taken just fine and the original Cobalt software runs again.  I can see it is the new ROM because it mentions XFS and EXT3 at the startup.  The old ROM only supported EXT2.  Next I intend to try installing a modern Linux.  I think I will probably go with Gentoo so that it matches my desktop.  I will probably just install it in a chroot environment on my desktop then transfer it to a hard drive for the Cobalt.  Jeff wrote about that too which is how I originally found his Cobalt articles.  I could also install Debian, there is a guide for that here.  Really I suppose any flavor of X86 Linux should work just fine.  It's just a matter of getting it on the hard disk without the ability to boot from any kind of removable drive.  There are ways to do this using tftp and similar methods but I think I will just pop the hard drive into a different machine, do my install and then put it back.

   What will I do with my Cobalt once the OS is installed and it is all finished?  I originally intended to make a combination router and php development test server.  I had OpenVPN built into my old DDWrt Linksys router and was close to having IPV6 tunneling when it died.  This would be so much easier in an x86 device with a real rewritable hard drive.  A friend gave me a laptop which is much newer and faster than the Cobalt but has no screen.  The screen was ripped off bracket and all.  I also have an old rack mount ethernet switch which requires an expensive controller to make operational.  I could mount the laptop guts in the switch's chassis and use that for a more powerful machine.  I wouldn't have the PCI slot though and I've never seen an adapter to plug a full 3.5" hard drive into a laptop IDE port.  I could also use the cobalt as an EchoIRLP or APRS node.  I may even build a dialup to ethernet/wifi router with DNS and image caching built in for my Dad.  Even today there still aren't any reliable broadband options available in his area.

To be continued.....



1 Comment - Add Comment

The Timmy - 2013-08-25 00:22:24 - Reply

Part 2 requested! I have a Cobalt Raq3i running Debian -with reoccurring errors. As an amateur linux user, finding info regarding post-EOL uses for this machine is hard to find. Your links helped a lot, but I would like to talk to someone with experience.

============================================================