SPARCStation 10 NetBSD 8

February 14, 2019
Categories: retro computing operating systems
Tags: sparc retro bsd


Finding an OS for the Unix Workstation

When I was first looking at my SPARCStation before bringing it home, I was hoping to be able to run Linux on it. I have been using Linux on all my computers for a while, so it would be a familiar and I could try to get modern software running on it. Of course I could also find some installation media for any of the Sun Unixes that can run on it, but that would really mean stepping back into the 90’s and hope I could find the documentation and software I needed. This dream of using modern Linux quickly faded as Linux dropped support for 32 bit SPARC a while ago. So I turned my attention to NetBSD, which supports almost everything (or at least feels that way).

Hardware Adventures

Just to back up real quick, and explain how I got things working. I didn’t get a hard drive with the computer, and I don’t have any SCSI2 hard drives. My solution to this was to get a SCSI2SD , which makes it really easy to set up multiple SCSI devices all using a SD card. My initial plan was to set up the SCSI2SD to have a CD drive and two hard drives, allowing me to install with the downloaded iso and have a boot drive of 2GB1. The other hard drive would be configured to be as large as the rest of the space on the SD card was (since the SCSI2SD is pretty smart). All I had to do was set up the correct SCSI ids for the CD and boot drive (6 and 3 respectively ), and copy over the iso onto an SD card.

A quick spoiler, this plan didn’t quite work out as well as I wanted it to. Either there was a problem with the iso image written to the disk, or the SCSI2SD didn’t like reading and writing at two different rate during its emulation. This caused there to be issues copying over all the files during installation, and either the install would fail or the system would run into issues during use. I was lucky enough to have a friend that had an old SCSI CD drive that they didn’t want anymore, so I burned a disk and used that without any issues.

I also had another interesting hurdle to get through, as I also didn’t get a keyboard or mouse with the computer. So while I bought a proper converter to use a VGA connection, I needed to connect to the serial console to do anything. So while Sun was nice enough to put two serial ports on the machine, they are combined in a DB23 connector, which meant I had to stick some wires in, held with tape, to get to serial port A. This wasn’t the most robust solution, so I eventually made a proper cable, which gave me a lot fewer communication issues.

It’s a Unix System

Finally I got NetBSD 8 installed, and was able to ssh into it (as 10Mb ethernet is so much faster than 9600 baud). Besides having played around with various Linux distros and BSD flavors, I haven’t really spent the time trying to do any serious work on a BSD system. I was a little worried that the difference between the GNU tools and BSD tools would cause me some headaches, but either because NetBSD includes a decent amount of GNU tools or because the authors tired to keep the differences small, that hasn’t been an issue. What I did have to do some work on understanding is NetBSD’s pkgsrc tool, as there are a lot of tools that don’t come in the base install. So with a quick search of the online repository, hoping to see SPARC versions of all my desired packages, I noticed that there aren’t any premade packages for NetBSD 8, or 7. Honestly, at this point I was too worried about having to reinstall the OS again if using an old package messed things up, so I dove into building all the packages I needed from source.

Without really thinking about what kind of dependencies things would need (and the fact that my machine only has a 33MHz processor), I decided I would build git so I could at least use some version control. Now pkgsrc is pretty smart, and all I needed to do was tell it to build me git, and it went off looking for what other packages it needed to make. Once things started running, I left it thinking that I would be able to see some good progress in a couple of hours. I woke up the next day to it still building Perl, and that is when I realized there was still a bunch of other things it was going to need to build just to give me git. Doing some really rough math, I realized I was going to spend weeks building everything I needed for the few things I wanted. This was not going to fly for me, as while this computer doesn’t use as much power as my modern development and gaming machine, it still uses a bit of power, and a good portion of that power goes to the fans which I was not going to be able to listen to drone on and on.

So I upgraded things, by setting up a virtual SPARCStation 20 with a 200MHz processor and 512MB of RAM with qemu-sparc. This was still going to take a long time to build everything, so I set it up on my Raspberry Pi 3, which chugged away silently as it sipped electricity. Using a combination of pbulk and pkgsrc , I was able to build all the packages on my list with little manual involvement. In case anyone else is looking for some packages for NetBSD 8 on SPARC, I have all the ones I have built here which you can also access via FTP2 if you want to grab them from your SPARC machine.

For the couple of weeks that I have been using my SPARCStation, it has mostly been just to test that stuff compiles and runs on a different platform. I have really liked how clean and simple NetBSD is, and I am looking forward to trying it out on other computers even though I don’t think it will become my daily driver. I also need to figure out the keyboard, as I can’t try out anything graphical as machine will only boot into console mode if it doesn’t have a keyboard connected at boot. For now, I am enjoying seeing what I can do with this machine and learning more about SPARC as an instruction set.

Neofetch Splash


  1. The boot ROM can only boot an OS off the first 2GB of a partition. Though I have later found that the partition it boots off of doesn’t have to be 2GB in size. ↩︎

  2. anonymous access via: ftp matt-in.space ↩︎