Disclaimer
This post is about a personal project of mine and not something official or supported by Canonical. Be aware that I’m not responsible should you give this guide a try and end up loosing data and/or your Windows installation. Back up your disk beforehand!
Introduction
Some of you might have heard of the Lenovo ThinkPad X13s Gen1 laptop. It’s a nice little ARM laptop running WoA (Windows on ARM) and is driven by a Snapdragon 8cx Gen3 SoC from Qualcomm. Ubuntu Mantic provided experimental support for this machine via a dedicated kernel linux-laptop
and some additional configuration settings provided by the kernel’s meta package linux-meta-laptop
(binary package linux-image-laptop-23.10
). Semi-official desktop installer images are available for installing Ubuntu Mantic.
The goal was to have official support in Noble but that plan unfortunately didn’t materialize
primarily due to lack of resources. The community (read me ) is still working on adding support to Noble even though it might not end up being an officially supported platform.
The good news is that the machine is now supported by the official Ubuntu Oracular ARM desktop image!
Current status
- Official installer ISOs for Oracular are available here. The generic ARM desktop image now supports the X13s thanks to @tobhe! Be sure to check the installation section below.
- Official installer ISOs for Noble are not available.
- Unofficial installer ISOs for Noble are available here. Note that these ISOs contain packages from the PPA ubuntu-concept/x13s.
- Official installer ISOs for Mantic are available here.
- X13s specific configuration settings are provided by a new package
ubuntu-x13s-settings
. This package is inOracular
but not (yet) inNoble
. ForNoble
it can be installed from the PPA ubuntu-concept/x13s. - The generic 6.8 kernel in Noble supports the platform.
- The dedicated
linux-laptop
kernel is removed in Noble.
Upgrade from Mantic to Noble
If you do a regular upgrade from Mantic to Noble, the linux-laptop
kernel is replaced by the generic 6.8 kernel. Part of that upgrade also involves the removal of the linux-meta-laptop
package which (in Mantic) provides the config settings for X13s (specifically the binary package linux-image-laptop-23.10
). These settings include a list of modules to be included in the initramfs, additional GRUB kernel commandline options and some other bits and pieces. Without these settings, the machine won’t boot with the new 6.8 kernel. The fix for this is to boot with the (hopefully still existing) 6.5 kernel and then install the ubuntu-x13s-settings
package from the concept PPA and update the initramfs of the 6.8 kernel:
$ apt-add-repository -P ubuntu-concept/x13s
$ apt install ubuntu-x13s-settings
$ update-initramfs -u -k 6.8.0-<x>-generic
$ reboot
New installation
In order to run Ubuntu on the X13s, SecureBoot needs to be disable. If you want to install Ubuntu alongside Windows, you also need to disable BitLocker.
One-time preparation
To prepare the system for a first-time installation of Ubuntu alongside Windows, do the following:
- Install all available Windows updates, specifically the Lenovo firmware.
- [optional] Create a Windows Recovery Drive. This allows you to restore the system should something go (very) wrong. See here for instructions.
- [optional] Disable BitLocker or back up its recovery key. Disabling SecureBoot in the next step will prevent Windows from booting if BitLocker is enabled. If you disable BitLocker, the Windows volume is decrypted, which takes some time.
- Shrink the Windows partition using Windows Disk Management to make room for Ubuntu.
- Reboot into the BIOS Setup Utility and:
- Disable Secure Boot (Security → Secure Boot).
- Enable Linux Boot (Config → Linux). This setting allows the Linux kernel to access EFI variables (I think) and also loads an on-disk device tree blob at boot which we don’t really care about since GRUB is doing that for us. I just mention it here for completeness. Note that this setting does not interfere with booting Windows and can be kept turned on.
Install Noble
As stated above, there is currently no official installer ISO for Noble.
- Download the unofficial installer ISO for Noble from here.
- Flash the ISO image to a USB stick or USB disk and plug it in.
- Boot from the USB device and install the OS.
Install Oracular
As stated above, the generic installer ISO now supports the machine.
- Download the ARM desktop image from here.
- Flash the ISO image to a USB stick or USB disk and plug it in.
- Boot from the USB device and install the OS.
- Make sure to tick (enable)
Install third-party software for graphics and Wi-Fi Hardware
. This is currently required to install the X13s specific configuration packages. Without this, the machine will likely not boot.
Note that at the moment Oracular still installs the 6.8 kernel. 6.11 is available from oracular-proposed. Once Oracular officially switches to 6.11 we should get preliminary camera support and hardware video acceleration (which requires an unofficial/unreleased firmware blob).
Known issues
[X13s] Fingerprint reader is not working (LP: #2065376).- Camera is not working (work in progress, SW ISP should be doable).
- Audio volume is very low.
- Hibernation and lowest-power suspend is not working (not yet reaching deepest low-power state).
- Virtualization is not working (probably never will since it needs firmware changes).
- ARM Pointer authentication is not working (needs firmware fixes, disabled via kernel commandline).
- No SecureBoot.
- TPM?
- …
Also relevant but not X13s specific:
- os-prober ignores grub devicetree statement (LP: #2065155).
Reporting bugs
If you encounter any issues not mentioned in this post, please file a bug in Launchpad. Either against the kernel (package linux) if you believe it’s a kernel issue or otherwise against Ubuntu Concept.