Qualcomm goes where Apple won't, readies official Linux support for Snapdragon X Elite

Qualcomm Snapdragon X Elite
(Image credit: Qualcomm)

Qualcomm is making good progress on adapting its new Snapdragon X Elite laptop CPU for Linux use. The mobile SoC manufacturer revealed that it has laid a lot of the groundwork already to get the Snapdragon X Elite running the Linux operating systems. However, Qualcomm is far from done, as there's still a lot of development work needed to get the X Elite into a fully operational state in Linux. Upcoming Linux kernels should enable full support for all the chip's features.

Qualcomm prides itself on its Linux enablement work and has prioritized Linux enablement in all of its previous Snapdragon laptop CPUs, typically announcing Linux support one or two days after launch. The Snapdragon X Elite continues that pattern, with Linux enablement being announced the very next day after its original October 23, 2023 debut.

That's in stark contrast to Apple, which so far hasn't provided much in the way of official support for Linux — Asahi Linux continues to work on supporting the M1 and M2 processors, and presumably M3 and Apple M4 silicon going forward, but most of that work appears to be coming from the community rather than from Apple itself.

So far, Qualcomm has most of the critical functions working inside Linux, specifically version Linux 6.9 that was released not too long ago. These critical functions include UEFI-based boot support along with all the standard bootloaders like Grub and system-d. Dual-booting is also possible for users who want to run Windows and Linux installations simultaneously on their X Elite-powered machine.

Other critical functions that have already been implemented include the DWC3 sound driver, reference board support, ADSP/CDSP support, multimedia clocks, PCIe/eDP/USB Phy, and system caching through NVMe SSDs over PCIe.

Functions that are being worked on for future iterations of Linux include additions to battery support, on-board display connectivity, external DisplayPort connectivity, sleep and wake-up functions on the GPU, camera support, video support, better CPU frequency support, and speaker/mic/headset enablement. These functions are expected to arrive in Linux 6.10 and 6.11.

Qualcomm is also working on fixing a problem related to the UEFI boot process pertaining to device trees. There's a problem right now where there's no standard way of selecting a device tree to pass onto the Linux kernel if more than one devicetree blob is packed into the firmware package flashed onto an X Elite laptop.

Further out, Qualcomm provided a six-month roadmap of features it's still working on. These features include end-to-end hardware video decoding within Firefox and Chrome, GPU and CPU performance optimizations, power optimizations (suspend/DCVS), and easy/more accessible installations of Ubuntu and Debian for Qualcomm X Elite users.

For diehard Linux enthusiasts, Qualcomm has provided an experimental raw disk image for a Debian installer that you can use at your own risk. Technically, Linux is functional on Qualcomm X Elite processors right now, but Qualcomm's implementation is far from complete, meaning you can expect to run into bugs and a number of non-working features that will otherwise work just fine in Windows on ARM.

Aaron Klotz
Freelance News Writer

Aaron Klotz is a freelance writer for Tom’s Hardware US, covering news topics related to computer hardware such as CPUs, and graphics cards.

  • ThomasKinsley
    I'm seeing a pattern jumping out here.

    - SemiAccurate alleges Qualcomm chip runs atrociously on Windows. Qualcomm blames MS for poor early sample performance.
    - User mod sees Windows 11 ported to Nintendo Switch. Can't run basic programs.
    - Qualcomm officially supporting Linux.

    It certainly appears that Qualcomm is hedging their bets by having a backup solution in case Windows doesn't work, but there is another issue here that I'm wondering about. I'm sure other members will be able to express this more accurately than I am able, but one of the unique problems on ARM/Mobile development (Android is the best example) is that it needs a custom ROM per unique hardware. There is no universal OS that fits all. Windows has previously gained its users by being easy to install on a wide variety of PCs regardless of the parts chosen. Is that no longer the case on ARM? Are we seeing that universality come to an end and does the OS need to be optimized per device?
    Reply
  • JamesJones44
    ThomasKinsley said:
    Windows has previously gained its users by being easy to install on a wide variety of PCs regardless of the parts chosen. Is that no longer the case on ARM? Are we seeing that universality come to an end and does the OS need to be optimized per device?
    In my opinion this is very much a Windows problem. Many Linux distros run well on both x86_x64 and ARM 32/64 (also seen in the Switch "hack"). macOS actually still runs on both x86_x64 without issue. I think the WinTel runs deep within Microsoft and for some reason they either can't or are not actually interested in seeing it succeed. Back in the RT days these things were difficult, but today supporting ARM and x86_x64 in a single product is fairly strait forward.
    Reply
  • CParsons
    Seems like everyone wants a piece of Snapdragon X Elite.
    Reply
  • HaninTH
    ThomasKinsley said:
    I'm seeing a pattern jumping out here.

    - SemiAccurate alleges Qualcomm chip runs atrociously on Windows. Qualcomm blames MS for poor early sample performance.
    - User mod sees Windows 11 ported to Nintendo Switch. Can't run basic programs.
    - Qualcomm officially supporting Linux.

    It certainly appears that Qualcomm is hedging their bets by having a backup solution in case Windows doesn't work, but there is another issue here that I'm wondering about. I'm sure other members will be able to express this more accurately than I am able, but one of the unique problems on ARM/Mobile development (Android is the best example) is that it needs a custom ROM per unique hardware. There is no universal OS that fits all. Windows has previously gained its users by being easy to install on a wide variety of PCs regardless of the parts chosen. Is that no longer the case on ARM? Are we seeing that universality come to an end and does the OS need to be optimized per device?
    Possibly, but since most reasonable PC outlays, today, have way more storage than typical mobile devices, packing on several "common hardware setup" ROMs in a master distribution shouldn't be an issue.

    I know, this can be an problem for some purist that prefer a minimalist approach to distributions, but until/unless they can get some universal components working, this might have to be the approach in the near term.

    For me, much like my hatred of CLI when we have vast resources to utilize comprehensive GUIs for every function, having a bigger distro to deal with is not much of a concern, as even a 1TB distro won't make a dent in my data storage systems. Games are pretty close to this range already.
    Reply
  • cknobman
    This is why Snapdragon will be getting my money.
    I'm done with Windows, its ad ridden spyware trash now.
    Apple wants to be a dictator and makes products for people that dont ask questions and do what they are told.

    Linux is the platform I will be moving forward with.
    I only have a windows laptop because my company forces me to do my job on it.

    Have not bought a new laptop, and been waiting on purpose, because Intel and x86 in general is shit.
    The only mobile platform I've bought is a Steam Deck which runs on Linux.
    I love that thing but looking forward to some of that ARM battery life goodness.
    Reply
  • ezst036
    ThomasKinsley said:
    I'm seeing a pattern jumping out here.

    - SemiAccurate alleges Qualcomm chip runs atrociously on Windows. Qualcomm blames MS for poor early sample performance.
    - User mod sees Windows 11 ported to Nintendo Switch. Can't run basic programs.
    - Qualcomm officially supporting Linux.

    It certainly appears that Qualcomm is hedging their bets by having a backup solution in case Windows doesn't work, but there is another issue here that I'm wondering about. I'm sure other members will be able to express this more accurately than I am able, but one of the unique problems on ARM/Mobile development (Android is the best example) is that it needs a custom ROM per unique hardware. There is no universal OS that fits all. Windows has previously gained its users by being easy to install on a wide variety of PCs regardless of the parts chosen. Is that no longer the case on ARM? Are we seeing that universality come to an end and does the OS need to be optimized per device?

    JamesJones44 said:
    In my opinion this is very much a Windows problem. Many Linux distros run well on both x86_x64 and ARM 32/64 (also seen in the Switch "hack"). macOS actually still runs on both x86_x64 without issue. I think the WinTel runs deep within Microsoft and for some reason they either can't or are not actually interested in seeing it succeed. Back in the RT days these things were difficult, but today supporting ARM and x86_x64 in a single product is fairly strait forward.

    To my understanding, you're actually both correct.

    ARM isn't like x86 where there is much more commonality across CPUs and software can have a "give" to it and keep working. To that extent, no, AFAIK there can't be a "universal OS" in the ARM world. Each CPU requires CPU-specific bits to even begin.

    And while this certainly is a Windows problem, it really isn't a Windows problem. What I mean is, only Microsoft has Windows source code. So Qualcomm cannot really "contribute" as Linux users understand contributing. Meaning: every ARM CPU that Windows will ever support will only be supported once it gain's Microsoft's blessing. Qualcomm has to wait for Microsoft. With Linux, Qualcomm can just go in and get it done and then guess what - its done. Microsoft is a gatekeeper, Linux has no equivalent gatekeeper.

    ARM fragmentation will prove to be a big challenge to Windows, but Linux is designed quite well to handle it.

    Hopefully someone with more knowledgeable than me can clear this up.
    Reply
  • JamesJones44
    ezst036 said:
    ARM isn't like x86 where there is much more commonality across CPUs and software can have a "give" to it and keep working. To that extent, no, AFAIK there can't be a "universal OS" in the ARM world. Each CPU requires CPU-specific bits to even begin.
    The ISA for ARM versions is common for all ARM based processors. Almost all of the code for one ARM CPU can be shared and executed on another ARM based processor that runs the same version of the ISA. Now, just like Intel and AMD there can be differences in performance handling based on the CPU architecture (Hybrid e cores from Intel for example) which can require special handling, but this isn't a common thing.

    On the server side there are several different ARM processors that all work out of the box with Alpine Linux or Ubuntu (and other distros) for example, there is no special handling for an Amazon Graviton vs Ampere Altra with Google Cloud/Azure for example. Even in various IoT/DYI board, there are may different ARM based CPUs and Alpine or Ubuntu can still be installed no problem CPU wise. Drivers for the various I/O expansion is where trouble starts, not the CPUs.

    This is the whole reason to have a common ISA. The fragmentation in ARM is a perception, it's not a real issue.

    Also we are talking about support exactly 1 vendor for Windows at the moment, Qualcomm. Even for previous MS attempts they were only supporting 1 vendor.

    I can't buy it's not a Windows problem when you have a common ISA and several other OS's that support just about any ARM CPU ever made and Windows can't support a single vendor.
    Reply
  • mitch074
    JamesJones44 said:
    The ISA for ARM versions is common for all ARM based processors. Almost all of the code for one ARM CPU can be shared and executed on another ARM based processor that runs the same version of the ISA. Now, just like Intel and AMD there can be differences in performance handling based on the CPU architecture (Hybrid e cores from Intel for example) which can require special handling, but this isn't a common thing.
    So it is for the x86 world. However, contrary to when Linux started and there was 5-6 makers of x86 processors (Intel, AMD, Cyrix, TI etc.) and half a dozen generations (386, 486, 586, PPro and some intermediaries), now you have three of them (Intel, AMD, Via) with little changes for the last decade or so.
    You can still build a 486 binary and it will run on all of them, but you will lose a truckload of performance on the way. ARM is more fragmented but each version is less likely to run with a bunch of other hardware connected to it.
    JamesJones44 said:
    On the server side there are several different ARM processors that all work out of the box with Alpine Linux or Ubuntu (and other distros) for example, there is no special handling for an Amazon Graviton vs Ampere Altra with Google Cloud/Azure for example. Even in various IoT/DYI board, there are may different ARM based CPUs and Alpine or Ubuntu can still be installed no problem CPU wise. Drivers for the various I/O expansion is where trouble starts, not the CPUs.
    As said above, you can build a one-size-fits-all binary, and it will run, but you lose performance. Also, the main problem with ARM is the firmware used and the extra hardware plugged into it.
    JamesJones44 said:
    This is the whole reason to have a common ISA. The fragmentation in ARM is a perception, it's not a real issue.
    It is one, but it's neither new nor is it specific to ARM.
    JamesJones44 said:
    Also we are talking about support exactly 1 vendor for Windows at the moment, Qualcomm. Even for previous MS attempts they were only supporting 1 vendor.
    So did they with Alpha, with x86-64 AKA AMD64... But the latter ended up dominant.
    JamesJones44 said:
    I can't buy it's not a Windows problem when you have a common ISA and several other OS's that support just about any ARM CPU ever made and Windows can't support a single vendor.
    Because "other OS'es" is pretty much restricted to Linux (including Android), BSD and Minix - and all of these are open source.
    As a matter of fact, the main problem isn't the CPU, but build-specific driver blobs for stuff like controllers (audio, I/O, graphics etc.) As a matter of fact, as soon as an open source driver comes out for a piece of hardware, a bunch of homebrew OS versions come up. On Windows, nope nope nope.
    Reply
  • Wookey
    This is good news, but I'm surprised that the biggest issue with 'Linux on Qualcomm arm laptops' is not mentioned. That is that the firmware (on the Lenovo X13s, the only laptop so far available) does not allow Linux to boot in EL2 so you can't run a hypervisor, and thus VMs, properly. The Qualcomm firmware boots the OS in EL1 which is fine for running a normal OS, but a hypervisor needs extra privilege. Proper firmware boots in EL2 so the OS can decide. For Windows they implemented a proprietary security mechanism to talk back to the firmware for hypervisor code to get the necessary privilege, but that's not available for Linux (or any other OS) to use.
    So yes Linux works great on the X13s so long as you didn't need a VM. Note that the X13s uses the Snapdragon 8cx Gen 3, not the newer X Elite (X1E-84-100).
    That's not a matter of the Linux support in the kernel, its a matter of the UEFI/firmware/'BIOS' implementation, and some fool at Qualcomm only cared about making Windows work. Lenovo and Linaro have not been able to get this fixed yet. I sincerely hope they (Qualcomm) are not going to put the same dumbness in newer laptops using the Elite X. You can have all the kernel support you like, but if it can't be used because of stupid firmware decisions, it doesn't help you much.
    Reply
  • syadnom
    Why does it always seem like someone has to lash out against apple not supporting an operating system they have nothing to do with? Oh, apple wont contribute to linux running on apple silicon! it ruins the credibility of the article. Apple makes Apple products, they aren't into linux. They don't run linux. Nothing about Apple should suggest that they do anything to make linux run on Apple silicon.

    In other news, Apple not helping microsoft port windows to apple hardware either. obviously.

    Windows on arm is trash. There are very few machines you can even buy and those are barely passable. Almost certainly the best machine is the lenovo x13s and it's pretty meh. Partially from poor software support but also it's just not fast and you spend too much time hitting the CPU if you do anything intensive and that soaks up the battery making it basically no better than an intel model.

    Don't get me wrong, I'm really looking forward to decent performance arm laptops. I would take apple M1 level performance here. I run a macbook pro m2 max 16 as my daily driver primarily because of battery and cpu performance. I have no specific love for macos (though I don't know how I'd live without imessage with a keyboard...), I need to be untethered and not pack a power supply everywhere and apple silicon on M1 and now M2 have been the only chips/systems that have provided that.


    I hope they get linux and wayland to be first-class software on x elite series and they are M1-M2 level performance AND they put it in a nice box.
    Reply