Thinkpad in Gales

The Thinkpad in question is the recently unearthed1 lenovo x201 with all its glorious stamps and stickers of all sorts, Intel and long defunct Windows 7 included. Unearthed I said and with good reasons, all right?

Gales is the thing to break if you want to make Jacob cross2 and otherwise a fully static linux distribution of delightfully small size and clear setup that works reportedly ~everywhere, from Panama to the tar pit of many virtual machines and the backtrace of various network installations.

As a first step, I read a couple of times the BUILD and INSTALL files that are helpfully (and a bit less helpfully, respectively) provided. While the BUILD is quite clear, it's also quite long and since I never expect I'll get away with doing anything that long *only once*, my 2nd step was to pack it all into a script. Normally I'd provide here my resulting script but in this particular case and after some consideration of the matter, I think it's best to *not* provide it: the BUILD document as it is seems to me to strike the right balance - it is detailed enough that it's trivial to make it into a script (since the commands are literally given there in order and with all needed detail really) and at the same time, it's not fully pre-packaged either. So I won't set my script free and all that, you can set your own, if you must.

Armed with the script version of the BUILD doc, the build itself was quite painless on a CentOS 6 with gcc 4.9.4, with only a short wtf moment when the tar command at the end failed because of the --sort option that was simply not available on my tar 1.23 (apparently it's available only from 1.28 on). There was also the fact that my minimal kernel config was apparently some older vintage - it lacked some options and so the first run I still had to manually set a couple of options but that's arguably more to do with my setup than with anything else. More of interest to anyone else wanting to try Gales' recipe is the need to set the CONFIG_BLK_DEV_INITRD option in the kernel config so that the gen_init_cpio required for packing the initramfs is compiled as well. Note that you'll also need xz compression enabled to boot the initramfs so that's a bunch of additional options to set, namely: CONFIG_KERNEL_XZ, CONFIG_RD_XZ, CONFIG_DEC_XZ.

As there was a break3 of ~3 weeks between my initial successful build of Gales and its actual install on the thinkpad, I took the time first to re-read the INSTALL doc, although I wasn't all that impressed with its good-enough-for-me-its-author status. Still, I was able to follow the instructions for setting up an installation medium with the initramfs from the build - so I added to my collection of bootable USB sticks a fresh - and pink! - one with Gales, hooray!

Booting from the Gales USB stick was no problem in itself and then there was simply the usual formatting of the thinkpad's drive, install of Gales, config and setup of the bootloader, quite as explained in the INSTALL file. While the INSTALL file warns of complaints in the vein of "Still seems to say "does not end on cylinder boundary" for existing partitions", I must report I haven't had such complaints for the drive I formatted (though if I really wanted complaints of this sort it was enough to ask fdisk to look also at the USB stick itself - it had complaints on *that*!). I haven't spent any time investigating exactly when and why it complains otherwise - since it did not whine at my partitions, it got away with whining at others. Do write down in the comments box though if you have questions on this and/or you want more details re my setup that failed to trigger fdisk's sensibilities.

With Gales finally installed, the thinkpad booted extremely fast - there's a belated "random crng init done" coming in after the login prompt showed already. As I intended from the start to keep this laptop offline anyway, there wasn't much configuration to do otherwise and I was quite happy to simply explore the daemontools and the busybox commands (not quite all are present but I don't have any complaints on this as everything I absolutely wanted to have is indeed there).

While the next step would be perhaps to install additional things that might be needed, I'll wait until I actually find that there's something missing before I add to what's there. So far I'm fine with the minimal install for this minimal thinkpad, though I can see how various things might be required depending on the exact use for the machine. At the moment though I did the install mainly as an exercise and as such I'm quite happy with what's there, "jfw's pretty and helpful prompt string" included!


  1. Yeah, didn't really want to resist the Night in Gales fit of it all, Entschuldigung. 

  2. Hey, it says so in the very docs! And I read all the docs - eventually, given enough time - not to mention I even follow on occasion what the docs say, especially when what they say is such a sensible suggestion, as is the case here. See /gales/gports/qa.txt file. 

  3. A break from this means work done on other things and there's a long list of... things. 

Leave a Reply