Snapdragon X notebooks: Ditch Windows, Install Linux?

Linux supports ARM chips excellently, but it is likely to stumble at first on notebooks with Qualcomm's Snapdragon X, which are currently stirring up the market

Save to Pocket listen Print view
3d,Rendering.,Word,“linux”,With,Bright,Yellow,Color,Before,Linux

(Image: Shutterstock)

11 min. read
By
  • Thorsten Leemhuis
Contents
This article was originally published in German and has been automatically translated.

Move Windows aside or delete it and install Linux: While there are all kinds of potholes and individual pitfalls lurking in newly launched x86 notebooks, those with new ARM processors are more likely to be glacial crevasses covered in masses of snow. This is not so much due to the instruction set of the processors, but rather to their respective ecosystems. This is particularly relevant for the new devices with Snapdragon X Elite, with which Qualcomm has been seriously challenging AMD and Intel in the notebook market for a few days now.

A short test with one of the first devices in the c't editorial office confirmed this: The Grub2 loader of Linux distributions such as openSUSE Tumbleweed or Fedora Rawhide started, but it didn't go much further. Fedora already had a problem with Grub2. With openSUSE it only went a little further, because the Linux kernel exited in its EFI loader code with the error message "EFI stub: Exiting boot services...".

Even if this is a single error that will soon be corrected, it is clear to see: Things are bad for Linux use on Snapdragon X notebooks for the time being. The situation should improve quickly over the next few months - but even in the medium term, greater caution is required, as the ARM world ticks differently in some areas than that of x86 PCs. Major pitfalls therefore lurk not only in the support of the individual functional units in the processor or the surrounding main board, but also in the firmware and its interaction with Linux.

The good news is that the current Linux kernel 6.9.y already includes drivers for many of the processor's functional units. This should also be necessary for booting. Unlike in the x86 world, there are no dominant and universal industry standards with which the kernel can initialize all the core functions of a processor and its environment that are important for booting - such as for clocking, interrupts, RAM, control pins or processor-internal communication buses.

To make matters worse, there are not just two dominant, but over a dozen manufacturers of processors with ARM cores that implement these functions with very differently addressed functional units (IP cores) and like to change them without much consideration for backward compatibility. This is one of several reasons why a kernel version that is one or two years old often does not even boot rudimentary on new ARM processors, whereas this usually works with newly introduced x86 processors.

It is thanks to Qualcomm itself that the kernel already includes many of these low-level drivers for the Snapdragon X: Immediately after the announcement in October 2023, employees of the company sent numerous changes to support the processor and the boards built with it to the kernel developers to incorporate them into the official kernel before the product launch. AMD, Intel and ARM themselves do the same, as support is included in all Linux distributions, including Android. Many other manufacturers of such processors are also involved to a certain extent similarly, but quite a few of them more poorly than well, including Broadcom and the Raspberry Pi Foundation. This is the reason why the Linux kernel available at kernel.org does not yet support the Raspberry Pi 5 - and many mainstream distributions as a result do not either.

The Linux kernel 6.10 expected in mid-July will bring further improvements for the Snapdragon X, including support for screen control and output. Others are expected to follow two months later, including, with any luck, support for dynamically adjusting the processor voltage and frequency via Cpufreq to reduce power consumption and improve performance. Support for using the 3D acceleration of the processor's Adreno GPU could also be included by then. The latter will be handled by existing and only slightly modified 3D drivers that the 3D graphics library and driver collection Mesa already provides for older Adreno graphics units.

Support for standby modes (suspend/resume), the image processor responsible for the webcam, video acceleration and a few other things are also being worked on. In other words, what is currently foreseeable may soon be sufficient for some applications, but it will still be a few months before the Snapdragon X is supported to any great extent - or longer if problems arise that lead to delays in the integration of new drivers or driver extensions.

This means that Qualcomm is not so bad for a manufacturer of processors with an ARM instruction set, but is at least in a league below AMD and Intel: both usually manage to incorporate reasonably comprehensive driver support into Kernel & Co. shortly before or after the product launch.

In order for the kernel and its drivers to get central processor functions such as interrupt controllers, RAM and timers up and running, they need information about the type and configuration of the components installed by the respective system manufacturer. Just as in the x86 world, Windows on ARM receives this information from the UEFI firmware (also known as UEFI BIOS or simply BIOS, firmware or UEFI) when booting via ACPI. The ARM support of Linux also supports this path and also boots via it on many ARM servers. However, the majority of Linux ARM devices in the world obtain this information from a table called Device Tree (DT). It is provided by the BIOS or the bootloader gives it to the kernel at startup; alternatively, it can be built into the kernel.

According to Qualcomm's description linked above, Linux should not receive the information required to start the Snapdragon X via ACPI, but with the help of a device tree - possibly because the company has more experience with this, as the Qualcomm processors in smartphones and cars also work with it. Experience has shown that such an "ACPI for Windows, device tree for Linux" approach leads to major hassles at such a central point in practice. No wonder, since most notebook manufacturers concentrate on supporting Windows. As a result, they quickly slip up when providing device trees for alternative operating systems or omit them altogether – whether accidentally or intentionally doesn't matter because either way it becomes very tedious with Linux on the device.

The BIOS may also come with an unsuitable device tree. This is partly the fault of the device tree ecosystem, which has long lacked a way for the kernel to select the appropriate device tree from several stored ones. However, this is necessary if manufacturers want to support various closely related, but in detail different systems with one BIOS - and this is likely to apply to many Snapdragon X notebooks.

Similar pitfalls lurk elsewhere in the ecosystem. The BIOSes of Snapdragon X notebooks are likely to contain more new code than those of x86 devices, which have been able to mature over several product generations. This leads to teething problems that can make it difficult or impossible to use Linux. This can start with the fact that UEFI Secure Boot cannot be deactivated; the BIOS may also lack the certificate to classify and approve Linux loaders signed by Microsoft for UEFI Secure Boot as trustworthy.

The coming months will show how many such teething problems actually occur in the interaction between Linux and firmware. If there are many, some resourceful developers may try to adapt the kernel so that it also uses ACPI for initialization, just like Windows.

Linux on Snapdragon X notebooks will also encounter a familiar problem from the x86 world: even if all the important drivers for the processor have been incorporated into new versions of Kernel & Co, it will take months for all common distributions to deliver these versions in their installation media - in some cases possibly even more than a year. Fast-moving distributions that support ARM64 processors, such as openSUSE Tumbleweed, will therefore initially be the best choice for such notebooks.

At least, unless the manufacturers provide or even pre-install customized Linux distributions on their own or together with a distributor, in which they have built in all the drivers required for certain devices. This is precisely what Tuxedo is planning, as the Augsburg-based company is already working on a Snapdragon X laptop. Linux variants of the Dell XPS 13 or the Lenovo ThinkPad T14s G6 equipped with Qualcomm's new CPU would also come as no surprise, as both manufacturers ship the x86 devices in these series with Linux - and Lenovo employees have already made great efforts to provide Linux support for the ThinkPad X13s equipped with an older Qualcomm processor.

If you want to buy a Snapdragon X Elite notebook for Linux use, it's better to wait for devices with customized and pre-installed Linux distributions for now: the manufacturer has coordinated the entire package. This doesn't just mean the firmware and Snapdragon X, but also notebook-specific and processor-independent features that occasionally get into trouble with Linux on x86 notebooks - such as function keys and LEDs, tablet modes, touchscreens, LTE and much more.

In particular, the manufacturer must also provide solutions to problems during the warranty period. Of course, you have to stick with the pre-installed operating system and not install any other distribution that you like better. Initially, such an endeavor is likely to fail anyway. Over time, however, the overall situation should become more and more similar to that of the x86 Linux world, at least for such devices.

(nie)