blog · git · desktop · images · contact & privacy · 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 it’s 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.


IMG0491 IMG0493 IMG0499 IMG0500 IMG0509 IMG0512 IMG0515 IMG0525 IMG0526 IMG0527 IMG0530 IMG0531 IMG0532

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