Linux on the Arm-based Thinkpad X13S: It's getting there
Armbian 23.08 is out, and adds preliminary support for this ultralight Snapdragon laptop
Review The latest release of Armbian helps with the non-trivial problem of installing and running an arbitrary Linux distro on Arm computers.
The Lenovo Thinkpad X13S Generation 1 which we reviewed back in March is the first mainstream Arm-powered laptop that the Reg FOSS Desk has got to evaluate. There are other Arm-based laptops out there, such as Pine64's Pinebook Pro and various Arm-powered ChromeBooks, but the X13S is closer to an ordinary X86-based laptop: it has a decent spec, with 16GB of RAM, a 256GB NVMe SSD – plus PC-industry-standard UEFI firmware, which is still relatively unusual on consumer Arm computers. Better still, you can disable Secure Boot, which many Arm-powered devices don't allow. A decade ago, this was a critical problem with the original Microsoft Surface RT: Windows RT was a flop, and the firmware wouldn't let you run anything else.
Although the X13S went on sale in May 2022, it took some time for the machine to get any Linux support. This blog post lists some of the issues, and its subtitle "Embrace the Suck" should give you a general hint. The post points to this lengthy how-to guide for getting Debian onto the machine. We tried that, and the interim Debian build, with a custom kernel, did install.
Getting it to boot from SSD is an epic undertaking, involving entering a UEFI firmware shell and manually going through 30 or 40 entries to find and enable the right UEFI boot entry, but after hours of searching and countless reboots, it worked, and Debian would start. Unfortunately, when booting the installed OS, the screen blanked after just a few lines of output, never to return. The OS was running – for instance, pressing the power button led to a clean shutdown after a few seconds – but with no display, not even a text one, we couldn't configure a Wi-Fi connection, and the machine has no built-in Ethernet port.
There is also a "concept" build of Ubuntu 23.04 "Lunar Lobster", but it's unfinished and the company asked us not to share the link. Since we've had this machine, there have been multiple firmware updates: it came with version 1.25 and it's now on 1.57. Around firmware version 1.49, the firmware setup program gained a beta "Linux" option, and with the next update, it successfully booted our Ubuntu USB key for the first time. The bootup process is extremely slow: the machine takes 10-15 minutes or more to start up, and when it's running the live system, there are significant limitations: no sound, only 2.4GHz Wi-Fi, and so on. However, it does just about work well enough to install it. The first boot goes to a blank screen, but you can switch to a virtual console, log in, and update the OS from a shell prompt. Once updated and rebooted, the graphical login screen appears, and we could log in. 5GHz Wi-Fi starts working, too.
Around the time that firmware 1.56 was current, Ubuntu still had significant limitations on this hardware: no sound, and only Wayland working – no X.org. As is our standard practice, we installed with
/home on a separate disk partition, and Ubuntu started with a read-only home directory, meaning that it couldn't save any settings and none of the standard directories (
~/Documents and so on) were created. A manual
chown command fixed the permissions error and made our home directory writeable.
Fully updated, even X.org works, so non-GNOME desktops should finally be feasible too
Firmware version 1.57 appeared last month, and reinstalling and updating Ubuntu "Lunar" yielded working sound and X11, so non-Wayland desktops are now feasible. It's still not easy, and a USB-C Ethernet adaptor is a useful thing to have around, but the X13S is now usable as an Ubuntu laptop. A noticeable difference from running under Windows is that, with no x86 emulation and only native Arm64 apps, the machine runs cooler. Although its base does become warm, it's usable on bare legs without discomfort.
Even the sound chip is supported, and we were able to play audio and adjust the volume
A (somewhat) easier option: Armbian
The problem with Linux on an Arm laptop is that Arm-powered computers are not just x86 PCs with a different kind of CPU. Standard motherboards and chipsets, and interchangeable GPUs, are rare. Most machines are based around a highly-integrated System-on-a-Chip, containing CPU, GPU, and all the other components.
On an x86 PC, the OS can rely on the presence of standard firmware to start the computer, but not all Arm kit has that. Manufacturers build each Arm device to run one specific OS, and replacing that OS with a different one can be a very tricky thing to do. This is one of the reasons for the success of the Raspberry Pi line of computers: not because they are especially simple machines – they aren't – but simply because they have sold in such large quantities that they're widely supported.
The Armbian project is a response to this. It builds specially-configured kernels tailored for a wide variety of single-board computers (SBCs) – mostly Arm based ones, as the name implies, but not exclusively. As of the 23.08 release, codenamed Colobus, it lists 59 Arm64 devices supported, but also eight RISC-V boards – and a generic x86-64/UEFI version. We looked at Armbian 22.02 in March last year, but we are revisiting it because this release includes a version for the X13S – although the support is still work-in-progress.
With an x86 PC, you generally boot from an installation medium and then install the OS onto the machine's internal drive. With an SBC, though, it's more common to write the image onto a memory card, then boot the computer from the card; there's no installation process as such. The Armbian download for the X13S is only some 2GB compressed, but it contains a complete installed system, so you'll need at least a 16GB USB key. On the first boot, it drops to a text-mode prompt, and asks for a root password, some credentials for a user account, timezone and locale information. Only then does it load the graphical desktop.
The result was a working system, with screen brightness controls and so on. After a reboot, we could connect to Wi-Fi – both 2.4GHz and 5GHz – and run an update in the usual Debian way:
sudo apt update && sudo apt full-upgrade -y. However, there was no sound, and battery support isn't there yet: it doesn't charge, and the indicator doesn't work. It also didn't detect the Ethernet port on our Planet Computers USB-C hub. We tried installing Armbian to the SSD using the
armbian-installer script, but although Ubuntu found the resulting OS and added it to its GRUB menu, Armbian wouldn't boot from the SSD.
Linux support for the Qualcomm Snapdragon 8cx Gen 3 is visibly improving with time. As of the latest updates, Ubuntu on the X13S is usable with kernel 6.2, and we suspect the machine might become a supported platform when the next release of Ubuntu appears next month.
Some of the other distros are working on support, as well. There's a kernel image for Fedora, but so far, that's about it. There's also a pre-release image for openSUSE Tumbleweed, but there's no installer, and no support for sound or battery yet.
- Had enough of Android? First 'Focal' based Ubuntu Touch is out
- Not all vendors' Arm-powered kit is created equally, benchmark fan finds
- Juno offering Linux-powered tablet PC for pre-order
- End-of-life smartphone? Penguins at postmarketOS aim to revive it
OpenBSD directly supports the Qualcomm chip, with the usual caveats around that OS – such as no Bluetooth support whatsoever. We've verified that it can boot from USB and configure both Wi-Fi and USB Ethernet successfully, but so far, not much more, as we were nervous about removing Windows, the only completely-working OS on the machine at the time.
And, of course, there's Windows Services for Linux. That's currently the easiest route to a working Linux system: we tried Ubuntu in WSL2 under Windows 11, and it works perfectly fine – with the added benefit that you know you're running native Arm apps, not x86 code under power-sapping emulation. However, running under Windows isn't very efficient, and if you have some X86 stuff in the background, it will badly impact battery life.
If you're content to run from a USB key – we suggest a fast USB-C one – then Armbian will get you up and running easily, with some limitations. As support in newer kernels improves, then so will Armbian's functionality.
The X13S is not yet ready for prime time with any FOSS OS – notably, the webcam remains unsupported – but Ubuntu is very nearly there. The image isn't official yet, but your preferred search engine will find it. Failing that, Armbian is close behind. ®