blog · git · desktop · images · contact · gopher

Upgrading OpenBSD on my Pentium 133


This is the only old machine that I have kept around. It’s from around 1995, I don’t remember exactly. Despite its old age, it’s relatively powerful:

It is slow by today’s standards, but the RAM and the NIC make it surprisingly useful. 8 GB for a disk is also more than you might think. It’s one “generation” after DOS (think 8 to 25 MHz, 70 MB disk tops, 4 MB RAM, something like that), it came with Windows 95, and was blazingly fast back then. It was the first time ever that I saw a video playing on a computer, while other programs could be run in parallel.

I installed OpenBSD 5.7 a few years ago. Time for an upgrade.

Originally, I expected this to be a very long blog post with a lot of nasty details. There are some obstacles:

So, how on earth would I be able to update that system?

What I did have lying around were some old 3.5" floppy disks. And much to my surprise, OpenBSD 6.7 offers a floppy image. I copied it to the floppy, booted, and … it just worked. It detected the NIC, requested an IP via DHCP, and then the installer was able to install a brand new OpenBSD via HTTP.

Holy cow.

What a humbling experience. On one 1.44 MB floppy disk, they have a working kernel, enough drivers to support my hardware, a working userland including a DHCP client, and a working installer. In 2020, where a simple “hello world” in Golang needs over 2 MB of disk space, this is absolutely mind blowing. Even when compared to other operating systems from the 1990ies, I feel like this is pretty impressive, because IBM PC-DOS came on what, 5 floppys? With no notion of networking whatsoever and virtually zero drivers? But to be honest, that’s so long ago, I can barely remember anymore what a vanilla PC-DOS felt like and which features it had, so I might be wrong.

Since there are virtually no technical details to blog about, here are some photos from the installation process. One of the last ones being me writing this blog post in X11. And the very last one? That’s katriawm, bevelbar, and (invisible but running) nhkd. Whoa.

After the photos, I’ll put some quick configuration notes.


IMG_0491.JPG-small.png IMG_0493.JPG-small.png IMG_0499.JPG-small.png IMG_0500.JPG-small.png IMG_0509.JPG-small.png IMG_0512.JPG-small.png IMG_0515.JPG-small.png IMG_0525.JPG-small.png IMG_0526.JPG-small.png IMG_0527.JPG-small.png IMG_0530.JPG-small.png IMG_0531.JPG-small.png IMG_0532.JPG-small.png

Yes, it’s a GNU Gnu. Deal with it.

Configuration notes

OpenBSD creates a unique randomized kernel on each boot. On that old machine, this takes literally an hour. I have disabled both KARL and library relinking in /etc/rc. This should be done using ed(1) directly after the installer has finished: It offers you to open a shell and the filesystem on which you installed is still mounted.

The system has neither USB nor PS/2. I can only attach a serial mouse. It doesn’t get detected automatically, so I have to create an /etc/X11/xorg.conf as follows:

Section "ServerFlags"
    Option "AutoAddDevices" "False"
    Option "AllowEmptyInput" "False"

Section "InputDevice"
    Identifier  "Mouse0"
    Driver      "mouse"
    Option      "Protocol" "Microsoft"
    Option      "Device" "/dev/tty00"
    Option      "ZAxisMapping" "4 5 6 7"

Section "InputDevice"
    Identifier  "Keyboard0"
    Driver      "kbd"
    Option      "XkbLayout" "de"

wsmoused works too (but must not be running when X does), it needs these flags:

-p /dev/cua00 -t microsoft