occ  openbsd 

2024-07-10

xorgless occ

intro picture

The return of the return of the Pentium-M Man.

The older I get, the more results of stupid decisions catch up with me - but not this time. The Old Computer Challenge is an annual event originally started in 2021 by solene, as an amusing way to test aging hardware against the ever persistent forced-obsolescence of the modern tech world.

The past three years tested the challengees' mettle by limiting their hardware and internet connection, teaching them how to endure with the old and slow. This year the computerists step once more into the fray and face against a world that no longer welcomes them. The choice of their arsenal their own.

Never alone. The machine spirit rubs its chin as the tormented drones charge head on against the immeasurable behemoth, hand-in-hand with once liberated tech that has since become their siblings in the struggle.

On the fourth year of the Old Computer Challenge, prahou and the pentium-m man return to prove to themselves that one can survive inside the aquarium console.

Veterans of the Cyber Wars

To put it simply, I am going to spend the week with the T42 and OpenBSD in the console only. No cwms, no ratkillers, no windows, no GUI.

Yes, Linux is better suited for such a quest. I don't want to hear it. Since I know there are a few OCC memebers, who may be trying OpenBSD for the first time, I'm going to list a few basic things I did after installing the fish into the veteran.

The Prequel

Yes, installation of OpenBSD is stupid simple. There's only one step during it that is relevant to my OCC. The installation of sets. At which point a fork in the road presents itself. One could deselect all the x-related sets and boot into a bare text-only OpenBSD console. This will hovewer prevent many programs from compiling and installing. Even those that have seemingly nothing to do with X(org).

x-sets

Understand that this is a valid path to take, a very meditative and calm one. You'll have access to the base OpenBSD system and with luck might get a few extra packages to help you out to at least play mp3s or stream online radios. Links2 will work fine, so will curl. But the challenge ends there. "Can you survive for a week without pictures, videos and Web x.0?" I want more, I want to push the console to its limits. I want to prove to the rest of you, that it's doable to have a single xorgless machine from 2004 and persist on the frontier of the post-modern world with the rest of the machine freaks and their decked-out cyberdecks.

Oh and - if you need to use the fancy internet, you're [REDACTED].

In the end I install the entire system, the whole package, all the fish.

fun sized bytes

During the installation I say no to xenodm and that's that.

I do the installation connected via an ethernet cable, this pulls the wi-fi drivers upon the first boot. Then I edit /etc/hostname.ath0, where ath0 is the wi-fi interface listed by running $ ifconfig.

#/etc/hostname.ath0
join "SSID" wpakey "passw0rd"
dhcp
inet6 autoconf
up powersave

Reboot or run # sh /etc/netstart. From now on, the computer will connect to "SSID" whenever it detects it.

color in the terminal?

By default, the OpenBSD console emulates the vt220 terminal, which is monochrome, but it can do colors - just set the ENV variable TERM to pccon0.

export TERM=pccon0

But I'm doing the default vt220.

apmd

Since something like 7.0, CPU cycles on the T42 are always locked to the max, despite any settings, BIOS or otherwise. But putting the machine to sleep works, so I still enable apmd, this will allow me to run zzz(8). There's also a fun quirk, where the ethernet port stops working after waking up from sleep, but since I'm using a wi-fi connection, which works fine, the machine autoconnects to the AP instantly.

# rcctl enable apmd
# rcctl start apmd
$ apm
Battery state: low, 42% remaining, 109 minutes life estimate
AC adapter state: not connected
Performance adjustment mode: auto (1500 MHz)

the rat

Next up I enable wsmoused, which lets me use the mouse to select and paste console output. This is how I will be taking screenshots, I suppose.

# rcctl enable wsmoused
# rcctl start wsmoused

Word of advice, if wsmoused is running, the console snatches the mouse for itself. Ie: the mouse will not work in x, if wsmoused is running. Not an issue here. Yet. You'll see what I mean soon.

lid action

I don't want the computer to sleep when I close the lid. I add the following to /etc/sysctl.conf.

machdep.lidaction=0

~/.profile

The file that is executed upon logging in.

Not much to do here but customize ksh. I add:

export ENV=~/.kshrc
export PS1=\$

Then I edit ~/.kshrc and add set -o vi. This lets one navigate ksh with vi-keybindings. My left pinky is fairly short and I'm used to:

Caps Lock is Escape

# wsconsctl keyboard.map+="keysym Caps_Lock = Escape" 

To have it persist over reboots, place it in /etc/wsconsctl.conf. See the manual page for other examples. wsconsctl(8)

TUI bug out kit

It's a small box with software I already use on a daily bases:

MPV, the killer of chill vibes

I will get more into the software which I'll be using when the challenge starts, hoping to find more and better ways to work inside the console, but as of now, mpv seems to be the catch-all solution to most media problems. Using the SDL driver, it can open images, play videos, play audio of all formats imaginable... It can even be incorporated into the links2 browser and made to open image urls.

Prophet of the Book of Links

A quick example for the unbelievers. Start links2, press Escape, go to Settings, Associations. Label it whatever, content-type whatever you can imagine mpv could open - from images, over music to video files. Put mpv into Program: mpv --vo=sdl %.

Now select an image, press enter and select open. this is an image.

+------------------------- Edit association -----------
|  Label                                             
|  images                                            
|                                                    
|  Content-Type(s) (comma-separated)                 
|  image/png, image/jpeg                             
|                                                    
|  Program ('%' is replaced with file name)          
|  mpv --vo=sdl --loop %                             
|                                                    
|  [X] Block terminal while program running [X] Run o
|                                                    
|  [X] Run in X-Window [X] Ask before opening [X] Acc
|                                                    
|  [X] Accepts FTP URLs                              
|                                                    
|                         [ OK ]  [ Cancel ]         
+----------------------------------------------------
link2s mpv

I expect to be doing a whole lot more through links2. In the very least I will be posting on the OCC forum, browsing invidious instances to download/stream videos/music, potentially browsing mastodon through brutaldon as well.

the cheater

I'm allowing myself to use the cell phone to take pictures and upload them to my server to use in further occ articles. But for the most part, my screenshots will be blocks of text. I will not use the phone for anything else. If I will for example want to post an image on lemmy, I will use the old.lemmy.sdf.org interface, which works fine in links2.

what about the art?

Pencil.

And did you know, you can use uxn without X? ;)

uxn oekaki

Help me!

This is an experiment which I am approaching mostly blindly. I'm aware that the OpenBSD console is fairly limited when compared to Linux or even FreeBSD, but I don't love either of those nearly as much as I do the fish. If you have any tips on how to get by with OpenBSD console on (very old) bare metal, let me know.

See you on the 13th.