Lady Goosepelt

St John Karp

Ramblings of an Ornamental Hermit

The Traid Fotron Camera

A Three-Button Lemon

The Traid Fotron (front view)
The Traid Fotron (front view)

Willya get a load of this thing? I totally got ripped off for it at the Ashby flea market, but god damn, it was worth it for a beautiful catastrophe of this calibre. It’s the Traid Corporation’s Fotron camera, a lemon sold door-to-door in the ’60s to housewives who were judged to be too dense to use a proper camera.

"Now! The amazing FOTRON® Color Camera"
“Now! The amazing FOTRON® Color Camera … Ideal for the 99 out of 100 wives who refuse to fuss with their husbands’ Cameras” (“Life”, 1968-03-08, p. 19)

James Ollinger gives probably the best review of the Fotron I’ve read: “The result isn’t something bad like a Pho-Tak or a Holga is bad, this thing is bad on a Wagnerian opera scale. This thing could fire-bomb Dresden.” He’s not wrong, either. This camera is in nearly every way a monstrosity — an enormous plastic brick that could just as effectively be used to club muggers over the head or to break a window in case of an emergency. It used 828 film which was a standard film format at the time, but instead of using the standard packaging of this film on rolls, it loaded the film into proprietary cartridges which had to be returned to the Traid Corporation to be developed. Counting in its favor, however, are the pioneering built-in flash, an electric exposure counter, motorized film advancement, and a rather cute system of buttons for selecting the exposure and focus. If you wanted to make a kids’ camera a design like this wouldn’t be a terrible idea. I think we can give ’60s housewives a little bit more credit though, especially if they’ve got biceps big enough to lug this thing around in their handbags.

The Traid Fotron (top view)
The Traid Fotron (top view)

The photos it took were apparently pretty bad. I haven’t had the chance to experiment with mine yet because the capacitors inside don’t hold a charge for very long (or do I just need to let it charge for seventy million hours?) and because you can’t get 828 film in the proprietary cartridges any more. My camera does come with two unexposed cartridges of color film, so if I can get the camera to hold a charge for long enough I might take it for a spin. But even then the color film in the ’60s used a different development process that’s no longer standard, so I’d have a devil of a time even getting the film developed. Word on the street is you can develop color film as black and white, but then that seems to be missing the point — if I can use expired film from the ’60s, I want to see all those beautiful, wrecked, and unpredictable colors.

The Traid Corporation was the subject of a class action lawsuit in 1972 and went out of business shortly thereafter. If I’ve understood the legalese correctly, the plaintiffs complained not only that the camera was a heap of junk that took crappy photos, but also that they’d been sold for $491.60 a camera that was actually only worth about $40. The paperwork that came in my Fotron camera bag would seem to bear out the story that the camera took shite pictures. There are two notes from the Traid corporation technicians telling the owner why their pictures came out looking terrible.

"…the defect in your negatives is caused by improper storage…")
“…the defect in your negatives is caused by improper storage…”
"Strobe Problem")
“Strobe Problem”

According to the Internet the Traid Corporation produced three models of Fotron — a three-button model with a frame counter window, a three-button model with an improved frame counter, and a two-button model called the Fotron III. The paperwork that came with mine calls it a two-button Fotron III, but it clearly has three buttons so I’m assuming it was the intermediate model. Since all the instructions and warranty documents were crumbling I’ve scanned them and posted them here. They are beautiful bits of ephemera, what with the typed italics, the little warning that Traid couldn’t be arsed to charge the cameras before shipping them, and the warranty card (which was apparently a sticking point in the class action suit).

"Congratulations!!")
“Congratulations!!”
"If possible, please put your Camera on charge for 12 to 24 hours before using.")
“If possible, please put your Camera on charge for 12 to 24 hours before using.”
Fotron III Instructions)
Fotron III Instructions (click for the full page)
Fotron Warranty)
Fotron Warranty

How I Installed Debian on a Cobalt Qube 3

(and so can you)

Cobalt Qube 3

If some gorgeous thing plagues your life for three whole weeks, depriving you of sleep and sanity, it’s either an ex-boyfriend or a Cobalt Qube. I’ve wanted one of these for years — I mean look at it, who wouldn’t want such a beautiful computer in their house? But the expense was always a sticking point for me, even long after the Qube computers were current, until recently I spotted old Qubes going for about $70 on eBay. Ka-ching. Pick me up a cheap Qube, whack Debian on a hard drive, and Bob’s your aunty — adorable home server. Or so I thought. Little did I know that I was getting myself into three long, hard weeks of boot hell, kernel compiling, and painstaking upgrades.

But first, a little background. The Qube 3 is a square-ish computer designed as an easily configurable server with a web admin interface. The earlier models ran MIPS processors, but the Qube 3 runs an i586 AMD K6-2 processor. I gather they shipped different configurations of the machine, but the highest speed they sold was 450 MHz. My home server has been happily chugging along on a Sheevaplug for ages, but I’ve been irked for a while by the fiddliness of having the OS on an SD card, the lack of grunt of the 1.2 GHz ARM processor, and the fact there’s no good place to stick a hard drive. I thought, if I’m going to have a shit home server, it may as well be a cute one. I’ve determined that about the most modern release of Debian this is ever going to run is Debian Wheezy (still technically supported, but not for much longer). The process of upgrading the Qube to run something semi-modern is not straightforward, and this guide is for all you (one? two?) intrepid archaeonauts who want to make the best of beautiful old hardware.

Hardware Upgrades

Cobalt Qube 3 innards

Yes, you heard it here first. Raise that RAM to the mother-lickin’ roof. Mine came with a 64 MB stick of RAM, but you can upgrade it to a max of 512 MB. Do it! Grab some off eBay, stick it in, and boot it up. Amazingly, this was the only straightforward part of the upgrade process.

The CPU was held down by a tall, silver heatsink that did not want to budge. The clamps holding it down were merciless, and the thermal paste had hardened so much I thought the heatsink might actually be glued on. After prying at the damn thing with screwdrivers, I finally managed to free both the heatsink and the CPU without damaging the motherboard. Turns out the CPU that came with it was an AMD K6-2+ (450 MHz). Well I thought we can do better than that, so I popped on eBay and nabbed a 500 MHz K6-2+. That’s a performance boost of like… a ninth? Bonanza. Only when I booted, the ROM kept telling me the thing was only running at 450 MHz, or thereabouts. Turns out the jumpers for selecting the CPU speed aren’t actually jumpers at all. They’re resistors soldered onto the damn motherboard, under the CPU if you please.1 Well I’m not taking a soldering iron to my motherboard for 50 MHz, so I guess I’ll stick with 450.

Now let’s talk hard drives. The Qube has room for two IDE hard drives, but the controller only permits a maximum size of 137 GB each. So far I haven’t had any luck replacing the 20 GB drive that came in the box. The first 120 GB drive I got off eBay was actually a mis-advertised 160 GB drive, and the second one I bought got delivered to Anchorage, Alaska. I live in California. I do, however, need something with at least a terabyte as a secondary drive so I can stream my music collection and run a small backup server. The Qube has one free PCI slot, so I bought a SATA controller card that has so far done nothing but throw “lost interrupt” errors and has prevented the machine from booting, so screw it. My 1 TB drive is currently connected with a SATA-to-USB adapter to the USB 1.1 port at the back of the machine. I’ve bought a USB 2.0 PCI card with an internal port, so hopefully that will give me slightly zippier storage. I’m thinking I can also get a USB-to-ethernet adapter and get some faster ethernet than the motherboard’s sluggish 10BASE-T.

The ROM

The Qube has a slightly bizarre boot process that’s going to inhibit everything we do from this point on. As far as I can tell it doesn’t load from the hard drive’s bootloader. It boots a minimal Linux kernel from its own internal ROM, which it then uses to load a secondary kernel from the hard drive. If it can’t load the secondary kernel, it will actually boot the OS using the ROM kernel. Being from 2002 the ROM kernel is version 2.2 (or something equally archaic) and won’t recognize an ext3 filesystem, but when Sun stopped supporting the Qube they open-sourced the ROM code and some enterprising developers made their own improvements.

You’ll want to grab the flashtool and latest ROM from the Cobalt ROM project. For the Qube 3 the appropriate ROM is cobalt-2.10.3-ext3-1M.rom.

  1. Get yourself a serial-to-USB null modem cable and plug it into the serial port at the back of the Qube.

  2. Boot the Qube while holding down the Reset Password button with a paperclip. This will enable the serial console.

  3. From a Linux machine on the other end of that null modem cable, run:

    sudo screen /dev/ttyUSB0 115200
    

    You now have console access to the machine, and you’re going to be using this a lot.

  4. We’re going to install a basic OS that will let us get started. The Qube supports netbooting, but fuck a lot of that, I’m going to use VirtualBox instead. Grab your hard drive and an IDE-to-USB adapter and plug it into your Linux machine.

  5. Create a virtual disk mapped to your hard drive:

    sudo VBoxManage internalcommands createrawvmdk -filename /home/user/woody.vmdk -rawdisk /dev/sdd
    

    (or whatever your device is called)

  6. Run VirtualBox (as root so you have access to that VMDK):

    sudo virtualbox
    
  7. Create a new virtual machine with your VMDK file as its drive.

  8. Grab an installer for Debian 3.0 (Woody) from Debian’s CD archive and set that ISO as the virtual machine’s CD drive.

  9. Install the hell out of Debian, being sure to use ext2 partitions. Don’t worry about package repos — not yet anyway. We just need a minimal machine to flash the ROM.

  10. Shut down the VM.

  11. Copy your flashtool and ROM onto the drive.

  12. Edit the /etc/inittab file to enable the serial console. I had to comment all the lines that enable tty1, tty2, etc., and uncomment the line that gives you a serial terminal:

    T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
    

    Make sure you’ve set the baud to 115200 as well, because by default it’s going to be 9600.

  13. Move the hard drive to the Qube and boot it.

  14. Back up your original ROM:

    ./flashtool -v -r > original.rom
    
  15. Flash your new ROM:

    ./flashtool -v -w cobalt-2.10.3-ext3-1M.rom
    
  16. Reboot and make sure your new ROM kernel boots successfully. You should be able to boot into Debian Woody at this point, but don’t worry, we’re not leaving it there.

Upgrade the OS Kicking and Screaming

The Qube just does not want to run a modern OS. This is partly because the i586 processor architecture is all but unsupported these days. Debian dropped support for this with Stretch. Jessie will still run on an i586, but because of the fact we need a kernel patched specifically for the Qube and I haven’t been able to find a kernel patch for any version beyond 2.6.36, the latest Debian that we’ll be able to run is Wheezy. Getting us there is going to be a chore. You might think you could just install Wheezy on a hard drive, boot it from the ROM kernel, and compile your kernel right there. Nope. Nope. Big bag of nope. Wheezy won’t even boot with the ancient ROM’s kernel. So what we need to do is install the latest bootable Debian and start upgrading from there.2

  1. Install Debian Etch on the drive using your Linux machine and the same VirtualBox procedure as above. When asked to configure the package repo, you can specify the Debian archival repo at http://archive.debian.org/debian/.

  2. Boot Etch in VirtualBox and install the dependencies we’ll need to compile a kernel:

    apt-get install build-essential bzip2 kernel-package gcc libncurses5 libncurses5-dev bin86 gawk ncurses-dev initramfs-tools
    
  3. Shut it down and copy to the drive all the Cobalt files we’ll be using. These consist of:

  4. Move the hard drive to the Qube and boot into Etch. We need to install a 2.6.24 kernel (but not greater) in order to upgrade to Lenny. After that we can install our 2.6.36 kernel.

  5. Install the kernel source:

    dpkg -i linux-source-2.6.24_2.6.24-7_all.deb
    cd /usr/src
    tar -jxvf linux-source-2.6.24.tar.bz2
    mv linux-source-2.6.24 linux-source-2.6.24-cobalt3-tw
    ln -s linux-source-2.6.24-cobalt3-tw linux
    cd linux
    
  6. Apply the Cobalt kernel patches:

    patch -p1 < ~/linux-2.6.24.3-cobalt3-tw.patch
    
  7. Copy the kernel config:

    cp ~/linux-2.6.24.3-cobalt3-tw.config .config
    
  8. Edit .config and set CONFIG_LOCALVERSION to “-cobalt3-tw”.

  9. Prepare to compile:

    make oldconfig
    make-kpkg clean
    
  10. Compile that mother! This will take a wee while. I’ve used the date as the revision number.

    make-kpkg --initrd --revision='2018.05.15.1' kernel_image kernel_headers modules_image
    
  11. The previous step resulted in two beautiful new DEB files in /usr/src. Install them now:

    dpkg -i ../linux-headers-2.6.24-cobalt3-tw_2018.05.15.1_i386.deb ../linux-image-2.6.24-cobalt3-tw_2018.05.15.1_i386.deb
    
  12. Create the vmlinux:

    make vmlinux modules modules_install
    strip vmlinux
    bzip2 -c vmlinux > /boot/vmlinuz-2.6.24-cobalt3-tw.bz2
    
  13. Change into the /boot folder and configure the newly generated boot files for the Qube by setting up the appropriate symlinks:

    ln -s System.map-2.6.24-cobalt3-tw System.map
    ln -s initrd.img-2.6.24-cobalt3-tw initrd.img
    ln -s vmlinuz-2.6.24-cobalt3-tw.bz2 vmlinux.bz2
    
  14. Reboot and make sure you’re now booting successfully from your 2.6.24 kernel (i.e. not falling back to the ROM kernel).

  15. Move the drive to your Linux machine again and boot the VM. When GRUB comes up, you won’t be able to boot from your newly compiled kernel so just pick whatever came with Etch.

  16. Upgrade Etch to Lenny by updating the release version in /etc/apt/sources.list and running:

    apt-get update
    apt-get upgrade
    apt-get dist-upgrade
    
  17. Boot the Qube again. It’s time to compile a 2.6.36 kernel.

  18. For some reason it won’t compile without a newer version of kernel-package, so go ahead and install that from the files we transferred to the Qube earlier:

    dpkg -i kernel-package_12.036+nmu1_all.deb
    
  19. Unzip the source for the new kernel:

    tar -jxvf linux-2.6.36.2.tar.bz2
    
  20. Compile the kernel using the same steps we used for 2.6.24. I used the 2.6.36 patches I found on the Web. They came with a kernel config that didn’t entirely work with subsequent versions of udev that we’ll get to in a later upgrade, so I made some tweaks and you’ll want to use that. It’s going to take considerably longer to compile than the 2.6.24 kernel did, so leave it overnight.

  21. When it came to linking the new initrd.img, I found the compiler hadn’t generated one for me. No worries, we can do it ourselves:

    mkinitramfs -o /boot/initrd.img-2.6.36.2-cobalt.img 2.6.36.2-cobalt
    

    Remember to remove the symlinks we previously created in order to link to the newer kernel.

  22. Plug the hard drive into your Linux machine and boot the VM again.

  23. Upgrade Lenny to Squeeze.

  24. Upgrade Squeeze to Wheezy. Now you’re upgrading to a supported distro, so you can change your repo URL to a current one instead of the archive (e.g. http://ftp.us.debian.org/debian/). By the time you read this it may no longer be supported, in which case stick to the archival repo.

  25. Boot the Qube again. We’re now running Wheezy — huzzah! But there’s some additional steps we’ll need to get a few things working.

  26. I needed to run “depmod” to get the kernel to generate/load/whatever the appropriate modules. Without that everything was SNAFU’d.

  27. Remove the ethernet device definitions that will contain the virtual network card from VirtualBox because that virtual card buggerizes things a bit:

    rm /etc/udev/rules.d/70-persistent-net.rules
    

    Don’t worry, this file gets regenerated with the correct settings when you reboot.

  28. Install ethtool, which will help us get the network running properly:

    dpkg -i ethtool_3.4.2-1_i386.deb
    
  29. At this point I had a working OS, but no network! Turns out the OS tries to read the ethernet adapter as 100BASE-T when it’s only 10BASE-T, so we’re going to need to tell it what speed to use. Add this line to the end of the definition of eth0 in /etc/network/interfaces:

    up ethtool -s eth0 speed 10 duplex full autoneg off
    
  30. Reboot — and there you go! Your own working, (semi-)modern Cobalt Qube 3 in only seventy million easy steps.

You’re welcome to go dickering with these steps — I’m positive there’s a lot of room for improvement, but I spent a long three weeks working these out by trial and error, so when I got to a working set of steps I wasn’t inclined to go screwing with it.

Where to from Here?

At the moment I’m quite happy with Wheezy. As of writing it’s still supported, so it has all the backports and security updates necessary to run a secure server. In the future I’ll probably wind up compiling more of my own software to keep it up to date. In terms of speed it’s not the flashiest thing in the universe, but it sure is the sexiest. I’m even running Subsonic on it to stream my music, and although the UI is a tad sluggish the MP3s are streaming flawlessly. Provided Subsonic doesn’t have to transcode anything, software really isn’t involved — the bottleneck is probably going to be the hard drive and ethernet speeds.

IMHO this is about as far as you’ll be able to upgrade the Qube without a newer kernel. I see no good reason the Qube shouldn’t be able to run Debian Jessie (the last Debian release to support i586) or the latest version of Slackware (still supports i586) if someone were able to patch a newer kernel, but that is waaaay beyond my level of expertise. Any volunteers out there? Can it be done?

Notes

  1. A lot of source material on the Qubes is no longer online, so be prepared for a lot of links to the Wayback Machine. For the Qube’s processor hardware, see Martin Hoeffer’s blog

  2. For the kernel compile steps I’m highly indebted to Installing Debian on a Cobalt Qube 3. It’s an excellent article with probably even more detail than I have here, but it was written in 2009 and there have been a lot of changes in Debian since then. 


The Longest Limp

I’m not disabled, just a terrible person. I’ve been called manic. Someone told me I’m “a prism through which light is refracted.” And I’ve had a complaint filed against me by a coworker who thought I was experimenting on him with a ray gun secreted between my legs. But I’m not disabled — I feel like that’s an important piece of information before we start.

Years ago, when I turned 21, my friend got me a walking stick with a bicycle bell attached so I could signal to pedestrians and other meaningless blockages that I was coming through. I loved it. But, like most of my things, the walking stick has spent the last ten years in my parents’ house in Sydney. Somehow it managed to survive the living carpet of mold that ate the family photos and the rust that turned the inside of my vintage computers into a moist, crystalline forest. But my parents are tired of housing what’s left and keep dropping hints they want it gone. My mother sent me a photo of herself next to a big, gasoline-soaked pile of my childhood treasures, one hand holding a martini and the other poised to flick a lit cigarette onto the pyre.

On my most recent visit I decided to cram as much as possible into my luggage to bring it back before my stuff went the way of Saint Joan. I wound up with two full suitcases toeing the airline’s weight limit, but I didn’t mind if one went over — even the excess baggage fees are cheaper than paying to send heavy boxes by airmail. Once, bamboozled by the shipping costs, I asked USPS if I could send something by seamail instead. There is an episode of The Simpsons in which Mr. Burns attempts to send a telegram to the Prussian embassy in Siam. The look the clerk gave him was the same one the postal worker gave me. Apparently seamail hasn’t been a thing for years.

That’s why I was determined to fit everything into my bags, which left only one problem — the walking stick. It wouldn’t fit in my luggage and it would cost hundreds of dollars to check in an extra bag. So I looked up the regulations and it turned out I could bring any amount of “Mobility Equipment” I needed. All I had to do was limp a little and I could carry it onto the plane for free.

So limp!” my dad told me. “You know how to limp, don’t you?”

So I limped and hobbled into the terminal dragging my heavy bags behind me. As I approached the check-in counters I realized I was passing more and more people in wheelchairs. And tracksuits in the Australian colors. Right after the Rio Olympics. And then it hit me — it was the Australian Paralympic team. I had just faked being disabled in front of the world’s best disabled athletes. I could not have felt worse — at least, not until the stewardess ushered me into the priority boarding queue. And seated me next to the only empty seat on the plane to give me some extra room. Because once I’d started I couldn’t stop. If I stopped limping now they’d think I had deliberately tried to get special treatment. I was trapped in my own unspoken lie for the next fifteen hours of the flight to San Francisco. And while waiting at the baggage claim. And in the taxi home. Because once people have seen you limping with a cane, God help you if you suddenly stop.

Mate!” Dad chortled when I told him over Skype. “You’re a genius. I should try that next time.”

But I know my walking stick is going to stay at home, at least until I actually need it. I can’t take it outside now — I never want to go through that again. The only problem is that, by coincidence, another friend also bought me a cane for my 21st — the kind with a silver knob at the top for beating up tramps and castigating beggars. And it’s still in Sydney. And I have no idea how I’m going to bring it back.


Certainly never send me any email here: gerald@fuzzjunket.com.