2022-04-10 - Hosting on the Sun Blade 100
Since yesterday afternoon this gemini capsule is hosted from the 20 year old Sun Blade 100 sitting in my home office. This generated a fair bit of interest on Mastodon, so I thought why not write a bit (or a lot) more about it?
Why Do This?
Back in my undergraduate days our computer science department at the University of Exeter had a lab (known as 'The Blue Room' since it was painted blue) full of Sun Ultra 5 / 10 and SGI Indy workstations. They were getting old, and were unfamiliar to most, so it was an easy place to get a seat when the other Linux/Windows computer labs were busy. I later ended up with a Sun Ultra 10 as my main computer for a short while, as well as buying an Indy, plus a SparcStation 10 and 20, to play around with.
I bought the Sun Blade 100 from a local computer recycling place a bit under a year ago for nostalgia purposes. I used it with Solaris 8 as a retro UNIX desktop from which to browse the small web, listen to SDF anonradio, and chat on IRC and COM.
Since we are planning to move from the USA to the UK later this year I decided to sell the Sun. Unfortunately the repairs I had done to it went wonky before I could do so. I let it sit for a few months, but eventually decided it'd still be fun to invest some more time and effort into getting it back up and running as a web / gemini server. It does have a dual voltage and frequency PSU, so we'll ship it to the UK!
More broadly... I'm a software developer working on relatively low level stuff on Linux all day. Playing around with Linux distributions isn't fun for me like it used to be. Setting up old hardware and other stuff like that might be pointless, from a practical sense, but I enjoy it :-)
Sun Blade 100 Hardware
My Sun Blade 100 was manufactured in 2001. The low end Blade workstations (100/150) really replaced the Sun Ultra 5 and 10 as fairly inexpensive hardware to run a Solaris desktop for those who needed it. They were used as syadmin and developer workstations, as well as control computers for some medical hardware etc. of that vintage.
The Sun Blade, like the Ultra 5 and 10 before it, uses quite a bit of PC standard hardware. Expansion cards are PCI, storage is IDE/PATA, graphics use an ATI chipset. The power supply is an ATX PSU, but with very specific lengths of cable. From the outside the machine isn't very interesting. It's a nice darker grey with a splash of purple, but not as colourful as the later high end Blade workstations, nor as 'classic' as older Sun Ultras or SparcStations.
Although it looks somewhat like a boring 2000s desktop PC, the Blade 100 is still a UNIX workstation. If you boot it without a KB/Mouse/Monitor it'll default to a serial console. The motherboard is on a tray with a latch, which lets it slide out quickly. Internal peripherals are connected to a riser board that the motherboard plugs into via a large edge connector.
CPU and RAM
The CPU of this system is an UltraSparc IIe, running at 500MHz. The UltraSparc IIe was designed as an embedded version of the II. It's a 64-bit processor with 256 KB L2 cache, and has a passive heatsink since it's a 13W part. Definitely not a speed demon, but it works. The slightly fancier Blade 150 used the UltraSparc IIi, with 2MB L2 cache, and high-end workstations of the time used the UltraSparc III which had 8MB cache and was much faster.
Blade 100 systems usually came with 512MB of RAM or less. The one I purchased locally had 256MB installed, but I've upgraded it to the maximum of 2GB via 4 512MB sticks.
The system has a number of storage devices:
- A 3.5" floppy drive
- A Smart Card reader
- An IDE/PATA CD-ROM drive
- A 120GB SATA SSD, with PATA<->SATA convertor
Originally these machines came with IDE hard drives of around 20GB or so, but using one of those is a painful experience. I took a punt on the cheapest WD Green SATA SSD (120GB), plus a StarTech IDESAT2 PATA<-> SATA convertor, and it works well.
The tape all over the drive is to help keep the adapter on the drive, and avoid bending the SATA connector, as it is all installed in the machine. The drive area of the Blade 100 is quite tight, and the old IDE ribbon cables were made only just long enough, and are rather inflexible. The slide-in drive mounting plate did not come with the machine, so the drive is stuck with 3M sticky pads onto the frame to which that would have slid on. It's a bit of a mess, but it'll do.
Disk access on a Sun Blade is *much* faster than the Ultra 5 and 10, which also used IDE drives. Those machines had a notoriously bad disk controller, while the Blade 100 does ATA66 properly. I remember the Ultra 10 I used with Debian being horrifically slow (even for its time) for any disk access, which is thankfully not the case here.
The Blade 100 has onboard 100Mbps ethernet, which is slow these days but does the job. I have the machine connected to an old Apple Airport Express, so that it can connect to the secondary WiFi network in the house that holds any IoT and other 'untrusted' stuff. Gemini connections are port-forwarded to it.
The machine originally came with extra PCI network cards, but these were also 100Mbps and have been removed as I won't be using them. From the stickers on these cards it's likely the system was originally a control PC for some medical imaging or scientific equipment.
Getting to the point of having the machine able to run stably as a server has taken a bit of effort. Although the machine isn't as old as a lot of retrocomputing hardware, the larger electrolytic capacitors on the motherboard were bulging a lot. My first recap attempt failed after a while, and the machine then sat for a couple months. It ultimately took two more attempts for my soldering to hold up. I haven't soldered for a long time before this, and it's a multi layer board that additionally has very large tracks/pads in this area, sucking away all the heat you apply.
Like other Sun systems, the Blade 100 keeps its serial number, MAC address, etc. in a battery backed NVRAM chip. When the battery dies you lose these details. The system can still boot if you command it, but it will not do so automatically and you have to set a MAC address, the time, etc. from the OS in order to have working networking. Although there's a coin cell battery on the board, it is *not* powering the NVRAM chip - which has its own cell embedded in plastic on top of the chip.
I followed guide on the internet and used a hacksaw and needle files to cut the connection to the dead battery, expose the connections, and solder on some wires leading to an external coin cell. I wasn't aggressive enough with the hacksaw at first, so the internal battery somehow remained connected and quickly drained the external coin cell. Third time was the charm on this part.
For the first few months I had the Sun, I ran Solaris 8 on it as a retro desktop to play around with.
This was fun, but it's not very practical for a server that's going to be exposed to the Internet. Solaris 8 has not been patched for a long time, and I'm sure it has plenty of vulnerabilities in its basic networking stack, let alone anywhere else. OpenBSD probably has the best maintained support for these systems at present, so was an obvious choice. Illumos has dropped Sparc support, so keeping to the Solaris family wasn't an option.
The stable release of OpenBSD 7.0 had an issue that prevented its use:
Therefore, this machine is running a snapshot, installed in March from a CD-ROM. The CD-ROM drive on the machine is the original, and it still works great after 21 years. I'm slowly working through the spindle of 100 Verbatim CDRs in the closet that must be 10 years old by now!
Nothing odd to report about installing OpenBSD. Other than requiring the snapshot it's just like installing on a PC... once you type `boot cdrom` at the Blade's OpenBoot `ok` prompt.
When I first started looking at Gemini I grabbed the JetForce server, which is written in Python, and haven't really bothered to try anything else. Because OpenBSD has binary packages for sparc64 systems it's easy to set it up.
# pkg_add python3 # pkg_add py3-pip py3-cryptography py3-twisted $ pip3 install --user jetforce
Note that `py3-cryptography` and `py3-twisted` are installed using `pkg_add` instead of `pip` as a pip install of them involves various dependencies and compiling of C code... which will take a looooong time on this system.
That's all there is to it. The machine now sits on top of a filing cabinet in my home office, whirring to itself and answering requests from the internet. It's quite noisy, so perhaps quieter fans are in its future at some point.
At some point this summer we will relocate to the UK, so there'll be an extended outage or temporary use of a VPS. Fingers crossed the Sun Blade has many years of service ahead of it once it arrives across the pond.
Index of Posts