Title: Resurrecting My Zaurus
Date: July 10, 2016
Tags: hardware openbsd
========================================

Finally got my SL-C300 running again! ...mostly.

I have had a Zaurus[0] SL C-3000 for maybe 10 or 11 years.  I love this device.
It's a palm sized clamshell computer.  ~400MHz, 64MB of RAM, and a 4GB micro
harddrive.  It was built to run Linux.  I've run the stock Linux distro on it, a
couple custom kernels, Debian, even Gentoo, which was my preferred distro at the
time.

Eventually, I settled on OpenBSD, which was supported[1] (though still in heavy
development at that time) and was sort of new to me.  I was curious about *BSD's
since Gentoo owed it's portage system to *BSD's ports.  I can't recall now if I
had ever run OpenBSD before.  I may have tried installing it once and not gotten
past disk partitioning.)  I was motivated enough to power through it for the
Zaurus, I guess.  Side note, I've used OpenBSD on something ever since.  It's
now my daily driver and preferred OS.

After using the Zaurus with OpenBSD for several years, with the age of the
hardware (it was outdated by the time I bought mine) and the proliferation of
small, more powerful arm devices like smart phones, it was put away for several
years.  I pulled it back out about two years ago and updated OpenBSD to the
current release (5.4 then 5.5 was released).  I started to notice some strange
behavior, though.  Compiling large applications would crash with a bus error and
sometimes junk data fetched from memory.  I noticed was the screen flickering
vertical lines randomly and the power light flickering.  Eventually, I powered
it down and it wouldn't power back on.  I was bummed.  I thought the days of the
Zaurus were finally over.

My first thought was that the battery was bad.  But with the hardware being 9 or
10 years out of production now, and never even sold outside of Japan, batteries
were not exactly easily available.  I found one that was selling for $50.  I
wasn't willing to put that much money into a hunch.  My biggest fear was that
something in the internal power management was bad.  And the bus errors made me
think memory was fried.  So the Zaurus went back into a drawer for another
couple years.  I randomly searched for a battery again, one day and found one in
the $15 range.  Ok, this much I was willing to invest.  When it arrived, I
popped it into the Zaurus and *bam!*  It booted right up like it never had a
problem.  So the battery was dead, I thought.  I updated to the current snapshot
(in my excitement I forgot that you can't do that.  Upgrading, skipping releases
isn't supported and doesn't always work and some things were indeed unhappy).
Things seemed to work.  I sill had that weird screen flicker, though.  Well
after a couple hours, the thing shut down and wouldn't boot again.  So we're not
charging.  Maybe it is internal.  But first, let's put a multimeter on the power
supply plugged into the wall.  It's supposed to put out 5V.  The multimeter read
1.3V max and it was jumping around constantly.  So the power *was* bad, but it
wasn't internal.  For the last year or so, it had always been the wall wart.  I
found a cheap universal power supply that was adjustable and could output what
the Zaurus needs.  With that, it booted back up, charged the battery, and we
were back in business.


At this point, the screen flicker has gone away (it took about a week for some
reason), I was able to do a fresh install from a snapshot, then compile -current
(which was sort of a mistake, since running 5.9 would have allowed me to install
packages instead of building everything) and moved on to compiling some ports.
I got through a couple days of compiling (everything takes days to build) before
..bus error.  Caused by building useless documentation for dbus which I don't
even use but it's a build dependency for something's dependency...  I worked
around it, but eventually, I'll hit something I can't work around.  I still fear
that the bad power caused damage to memory.  Or maybe projects have just gotten
to the point where no one cares about reducing memory requirements for platforms
that measure it an Megabytes and builds are simply running out.  I also feel
that the OpenBSD project might stop supporting the Zaurus soon.  There are very
few left in use these days.

I am happy to have the Zaurus back.  Though it's mostly a comfort/nostalgia
thing as I have little practical use for it anymore.  I just can't let the
little guy go.  And I still hate to think there might be a hardware problem.


[0] https://en.wikipedia.org/wiki/Sharp_Zaurus
[1] http://www.openbsd.org/zaurus.html