Saturday 23 March 2024

Tiny Core Linux on a ThinkPad X60s

Let's have a brief look at Tiny Core Linux, a tiny Linux distribution. It's only 23mb! Or 240mb if you want out-of-the-box WiFi support and a choice of different languages. That's a far cry from the days of the Commodore Amiga and the Atari ST, when operating systems could fit into a 256kb ROM chip, but it's still very impressive for something that can connect to the internet.

Now, I didn't explore it in any depth, and I wasn't expecting something I could use on a day-to-day basis. I think of Tiny Core Linux as a kind of singing dog. It doesn't matter what tune the dog sings, it's enough that it can sing at all.

In the image above I've connected my old X60s to the internet with an Ethernet cable. Tiny Core Linux doesn't come as standard with WiFi support. I tried out the Core Plus version, which has WiFi, but although it detected my WiFi network it couldn't connect. My hunch is that the WiFi card in my X60s is too old to support modern encryption. You might have better luck than I did.

The oldest laptop I own is an IBM ThinkPad 600X, but it doesn't boot from USB, so I used my circa-2006 ThinkPad X60s as a guinea pig instead. Mine has the chassis of an X60s, but the lid of an X61, because I swapped the screens. The X61's screen was getting yellowy and old.

Tiny Core Linux's website is vague about the minimum hardware requirements, but it apparently needs at least 48mb of RAM. My X60s has three gigabytes of memory, so it's good to go.

The X60s-for-slimline model is a distant ancestor of the X1 Carbon. It has a low-voltage, dual-core, 32-bit Core Duo processor running at 1.66ghz, with a slimmer heatsink than the standard X60. In theory it'll run Windows 10 - probably very badly - but I've left Windows XP on mine for compatibility reasons.

The X60 in general will take 4gb of memory, but the motherboard can only see 3gb, and unlike the X61 it won't accept the popular Middleton custom BIOS that unlocks SATA 2 storage speeds. It's stuck on SATA 1. My X60s has an old SSD in it, but a lot of the SSD's speed is wasted by the slow bus.

The best thing is the keyboard. The X60-61-200-220 generation of ThinkPads had a lovely, lovely keyboard. From the X230 onwards Lenovo moved to an Apple-style design that is, apparently, still very good, but not in the same league.

Overall the X60s is a really nice piece of hardware. Lightweight but solid-feeling, plastic but not in a bad way, with decent ergonomics and a surprising amount of ports, including three USB sockets, an SD card reader, BlueTooth, FireWire 400 - unusual for a PC laptop - and a PCMCIA card slot. It's let down by an Intel GMA graphics chip that was below-average even in 2006, and it only has VGA out, not DVI or HDMI. The 64-bit X61 is more useful nowadays, although the faster models tend to run very hot.

A long time ago you could pick up ThinkPads of a similar vintage for £120 or so. As of 2024 the X60 generation has mostly gone to silicon heaven. After all this time even third-party batteries are dying off, so it's of limited utility as a portable laptop. Enough of the X60s.

I downloaded the regular 23mb version of Tiny Core, which has a graphical interface. There's a command-line-only version that's just 16mb. They're available for both 32-bit and 64-bit processors. I burned the ISO to a USB stick with Etcher on my Mac Mini, which worked flawlessly.

Tiny Core boots at lightning speed. As far as I can tell it loads itself into memory and uses free RAM as a virtual hard drive, which meant that the version of Tiny Core I used wasn't persistent - I had to download everything from scratch whenever I rebooted, but that wasn't particularly onerous. I'm sure it can be persistently installed to a hard drive, I just didn't feel the need. I downloaded Nautilus, a file manager, and it saw the SD card reader, so I used an old SD card to store downloads.

On boot it comes up with a Mac-style dock with a terminal, a control panel, a text editor, and an application repository. In the following image I'm installing Chromium, a web browser:

Initially it didn't work, but after trying to run it from the terminal I realised that I needed to install a supporting library as well:

After installing libEGL Chromium started working. Video is a distant dream, but it did access the internet and render pages, although curiously it only loaded the first few images. Perhaps there's a memory limit:

Unfortunately this version of Chromium is over a decade old, and a lot of websites refused to work because the security certificates were out of date. Perhaps there's a way to update the certificates. I don't know.

I tried out Dillo, another browser that's notable for being small, although it doesn't have support for JavaScript so it's of limited use. It worked! I also tried out a couple of other applications, including FoxIt (a PDF viewer), AbiWord (a word processor that will write PDFs), and Audacity, an audio editor. And DOSBox.

When I say "tried out" I mean "I established that they would run, then closed them":

Running under DOSBox, this is Doepfer's official utility for the A-112 sampler module

And, well, that's Tiny Core Linux. It works on a ThinkPad X60s, and will load and run a bunch of standard applications, albeit that they're all very old and it feels clunky. I have a hunch that TCL is largely pointless on something like an X60s, because the X60s is still sufficiently modern to run full-blown versions of Linux.

It might come into its own on a small development board, or perhaps you something that could sit in a cupboard under the stairs as a media server or firewall or something - although that raises the spectre of the Raspberry Pi, which can do those things in a smaller case. Incidentally the Tiny Core people have a Pi version of Tiny Core if you want to try it out.

It strikes me that Tiny Core has a fundamental problem. Development began in 2009, a few years before the Pi, a few years before a flood of ARM-based development boards. So they made it for x86, and for a while that made sense. But in this day and age x86 feels like a slowly, slowly narrowing dead end, especially for tiny versions of Linux. If you have an old PC gathering dust something like Puppy Linux is more functional. The fact of it being just 23mb is an impressive technical feat though.

Bonus Beat
But that's not all. No! Let's also have a look at Supermium, a port of Google's Chrome browser for older versions of Windows. It sounds vaguely rude but I can't put my finger on it.

Supermium is conceptually a bit like TenFourFox, the it-was-great-while-it-lasted port of FireFox for PowerPC-powered Apple Macintoshes. It's a port of Chrome for versions of Windows that no longer support Chrome, which includes Windows 7, Vista, and XP, with rumours of Windows 2000 support in the works. As mentioned up the page my X60s has XP, so I decided to see if Supermium worked on it.

What's the point? It might be particularly handy if you're running a business that has a bunch of XP machines that have some kind of industrial software, but they have a browser-based front end, or perhaps you need to log into a manufacturer's website to download an updated driver and you have to do it on the local machine. Or maybe you have an ancient Netbook, and you just want something that will check the BBC's news website or Wikipedia etc. Given the age of XP I would be wary of giving Supermium my credentials, but as a dumb internet terminal it might be useful.

The most modern version of Chrome for XP is 49. On my X60s I actually use FireFox, which goes up to version 52:

Why FireFox? Historical inertia. I'm old enough to remember Netscape Navigator. I'm old enough to remember when it became Netscape Communicator. This was back when the version numbers of browsers actually represented real, major changes. Now Mozilla just updates the version number to one-up Google (as I write these words Chrome is at version 122, Firefox is version 123), and in turn Google updates the version number at random, because Google doesn't care what Mozilla does and probably doesn't even like to acknowledge its existence.

I'm digressing here. FireFox 52 works, but again I would be wary of giving it my credentials. As mentioned my ThinkPad X60s has Windows XP, Service Pack 3, with 3gb of memory. Supermium installs without a problem:

And it runs just fine, complete with support for extensions:

Internet video playback is choppy, not unwatchably so, but not pleasant. I assume that's the fault of the X60s' ancient video chip. I was hoping Supermium would break, or something, because then I would have something to write about. A funny anecdote or something. Something about fiddling with the BIOS, or something.

Still, in summary, Supermium installs without any fuss whatsoever on a ThinkPad X60s that has Windows XP SP3 with 3b of memory. It browses the internet more or less exactly like modern Chrome, potentially giving the machine a new lease of life if you're very, very careful about using script blockers and don't plan to give the machine your personal details.

My recollection is that the typical netbook of 2007, 2008 only had 2gb of memory, which might be tight, but on the other hand XP doesn't take up all that much space, so perhaps it would even out.