UPGRADES AND DOWNGRADES

I'm coming to you from another one of my old early 90s laptops, which
I've coerced into running Linux and talking to a PCMCIA network card.
Besides not needing a hour or two of pre-warming in order to boot up,
this one also packs some fairly meaty specs for its time, with a
486DX4 CPU clocked at 100MHz, 16MB of RAM, and a stubby little 800MB
(roughly) HDD. The reason for this is that I was inspired by Logout's
NoViCoCh (or however ne spelt it) challenge, and as he'd started off
on a Pentium 1 running (forgot which)BSD it got me thinking about
running current Linux on a 486 and thereby making the up-to-date SSH
client required to upload this to aussies.space (which only accepts
encrypted log-ins) and easy addition. So this ~27 year old laptop is
running Linux kernel v. 5.10, and happilly SSHing into aussies using
the Dropbear SSH client with little more delay than usual. OpenSSH is
slower (it fills up the ~3-4MB of free RAM left after the kernel and
essential processes have loaded, and has to quite audibly fuss about
in the swap partition), but also works and allows SFTP to be used.
Lynx browses Gopher nicely, HTTP/HTML slowly, and even HTTPS _if_ you
pick a page that's only a kilobyte or two in size and give it about a
minute (so not really HTTPS in a practical sense). ELinks browses what
little is left of the unencrypted web really snappily, as if you were
using a modern machine. The build I used doesn't support HTTPS at all
though, filling up RAM with the OpenSSL library no doubt puts Lynx at
a disadvantage from the start.

So encryption is the enemy of old hardware, but I've covered all that
before. Thanks to Dropbear I can just run Lynx on Aussies anyway. As
for Logout's challenge, I guess I'm more than fashionably late for
November. Honestly getting modern Linux to boot on this wasn't trivial
and took a lot of hacking at the init scripts. Dbus is only sort-of
half-started so modules have to be loaded manually. But I only really
wanted the PCMCIA and Xircom Ethernet adapter card driver anyway.
Trial and error determined the right PCMCIA module to load, and it
joyfully detected me sticking cards in the slot, but the damn Xircom
driver just wouldn't pay attention. I dug into how the PCMCIA
sub-system worked, but kept getting weird errors while browsing the
relevent /sys directories. I started to think that maybe the PCMCIA
driver or the ISA bus support of the kernel in general might have
suffered from a lack of testing on this sort of early hardware, and
ended up putting it off until Christmas day. As usual being
deliberately without any festive commitments, the Christmas long weekend
has been designated a four day computer tinkering session and this was
job one. I spent another age getting confused by mixed messages from
files in /sys, then gradually became aware that there are two PCMCIA
slots in this laptop, had the idea to try popping the card in the top
one instead of the bottom one, and the driver quickly loaded itself
and up popped an eth0 interface! So yes, all that because I picked the
wrong slot.

I bet I actually discovered that years ago as well, because this was
the first of the old laptops that I started messing around with as a
kid - a cast-off from my step-father's workplace featuring a broken
hinge, half-dead keyboard, and of course no batteries. By the time
you've lugged around a PS/2 keyboard, found a solid object to lean the
screen against, and plugged in the power supply, you have to admit
that the general portability of the device is rather compromised.
Still I did carry it around with me a lot, with it set up as an
ultimate DOS system. I refined the boot process so that it started up
with mouse, sound, and memory driver, then into a commander-style file
manager / program launcher, in only about five seconds from power-on
(BIOS power-on tests included), plus filled it with all the
freeware/shareware DOS games and utilities that I could find on the
(then) remaining DOS software FTP sites like Garbo.

It still boots to DOS, and then I use LOADLIN to boot Linux from a new
EXT2 parition that I put on the disk (as well as the swap partition
mentioned earlier). The linux partiton has about 30-40MB used at this
stage - I installed Linux on it by pulling out the HDD and using
a USB HDD adapter to connect it to a modern PC where I copied
all the files over, which is kind-of cheating but practical. Now that
it's network-connected I can simply install packages from the internet
though (sort-of). Speaking of cheating, this probably doesn't count as
a NoViCoCh entry anyway because my internet has to go via my mobile
broadband internet connection and in-turn my router, which I think
breaks the rules for authentic direct connections, but I'm not
prepared to subscribe to a dial-up internet service just for the sake
of this, sorry.

Speaking of my internet hardware, aside from my 'downgrade' to this
486 I've otherwise spent the long weekend getting around to all the
upgrades that I've been putting off all year. Today's battle was
upgrading OpenWrt on my router from 19.07 to the new 21.02 release,
and getting my "new" (ten-year-old second-hand, actually) 4G mobile
broadband modem working with it to replace the 3G one I've been using.
By the way, Xiled recently phlogged about redoing his network and
upgrading the firmware of an old router he's using.
[I would insert a link here, but it's way too much trouble on this
machine]

My network is pretty simple, just this old router, a model from 2007
or therabouts of which I have three so I rotate between two of them
when upgrading the firmware so that in case it all goes wrong I can
swap back to the old one. Upgrading the firmware always goes wrong as
well. This time as the router only has 32MB of RAM it's not longer
officially supported (gah! You only need 16MB I tell ya!), and
installing packages before the modem was up was always awkward anyway,
I decided to try the image builder. That all went quite well actually,
except it required a 250MB download (1/12th of my monthly data
allowance) and by not looking closely enough at the example URL in the
tutorial I accidentally grabbed the snapshot relase. I ended up using
my website's VPS to download and build it, my site's so light-weight
that it never seems to have any significant load going on anyway. But
then came the flashing over TFTP, and somehow I always need to battle
for hours to get TFTP to work. This time I decided to start afresh,
doing it from another laptop (the Thinkpad T60, which I set up the day
before to take over from the R60 which I was going to upgrade to until
it died before I got around to it), and with the GNU inetutils TFTP
server which I hadn't tried before. The first hour was me setuffing up
the inetd.conf because I got the idea that TFTP was over TCP rather
than UCP (some sources on the web suggest it's both, I'm still a bit
confused), then I forgot to allow it through the firewall which was
just silly, but then I got it working with a TFTP client running on my
internet Client computer, yet it still got an error on the router. In
the end changing the TFTP directory permissions and making the server
run as root might have been what got it working, but as ever I'm not
really sure.

In the afternoon I slowly pieced together the driver packages required
for the 4G modem, but could only make it work in PPP mode rather than
Direct IP. I'm only getting about 4Mbit/s max though, so I don't think
it makes much difference. By tracking down some device-specific AT
commands I was able to discover that it's actually still using 3G, and
when I force it to 4G/LTE only it says there's no signal. So it seems
I haven't got 4G coverage anyway, at least indoors at the window where
the router lives. Not so surprising because 3G is on 850MHz whereas 4G
is 1800MHz, and higher frequencies generally don't travel as far. I'll
probably have to build another cantenna (the last one was for connecting
to another provider with a more distant tower), but I've still got a
year and a half to do that before Telstra turn off 3G in Australia, and
the 'new' modem actually seems to get faster speeds on 3G anyway, even
though the old one was supposed to be rated for 7Mbit/s.

So for my Christmas upgrades i've done one old laptop, one umm... old
but new to my standards laptop, and one router. Plus I finally managed
to get Firefox updated on my Internet Client machine. The problem
there was actually with the old X servers on the PCs that I want to
display the FF window on. The v. 91 ESR release of Firefox crashed
whenever any drop-down menu (excep the-URL suggestions one) was
displayed. The "BadValue" error reported by GTK on terminal (on behalf
of the X server apparantly) alleged that Firefox was sending X
nonsense commands. Whether that's true or not, the newer X servers
seem to cut it some more slack. I'm not the only person having
troubles stepping up to v. 91 from the old v. 78 ESR, Debian 11 has
only just recently got it in their security repo even though 78 went
unsupported back in early November, apparantly because of build issues
on some targets and its insistance on a newer version of Mesa than
Debian Stable had. The 'new' laptop is actually set up with Debian 10
(it was newly released when I started half-hearted laptop upgrade
project), and it looks like that might be stuck at v. 78 forever. They
introduced WebRender by default and also pushed the switch to EGL
OpenGL accelleration with v. 91, so I spent a lot of time messing
about with turning these on/off with about:config settings who'se days
are numbered anyway. As it turned out that made no difference, it
seems like the bug is actually in the UI part of the code rather than
the page rendering side of things. So I had to give up on 91, and
luckilly I found that the latest beta release for v. 96 didn't have
the problem, so now I'll just have to chase the main releases until
the next major ESR version is released in seven month's time, which is
annoying but better than nothing. It's still a bit more laggy compared
to 78 and has bursts of network saturation which again seems triggered
by the UI, but at least it gets the security updates, and I use Dillo
instead as much as I can anyway.

Well that was all very long and nerdy, but that's pretty much what
the last few days have been actually. It's nice having time to slowly
work through things and make notes while tinkering with this
configuration stuff, but at the same time it doesn't seem to reduce
the sillyness of the mistakes that I make. I noticed from file
creation dates that it was about this time last year that I last
did a lot of this stuff, so I guess this is getting to be a bit of a
yearly tradition.

Finally, just to change the tone, here are a few more verses of nonsense
that might vaguely suit a song if a melody presented itself:

The dream that you find
deep down in your mind.

The dream you can't see
is all the design.

The line in the reason that sets you free
is the truth in the knowledge of destiny.

- The Free Thinker.