FAQ: Ubuntu 25.04 on Snapdragon X Elite

Does Ubuntu 25.04 work on Snapdragon X Elite laptops?

Most devices that have only worked with the Ubuntu Concept 24.10 ISO up to this point can now also be installed with the new generic Ubuntu 25.04 arm64 ISO.
A non comprehensive list of devices that we have seen successful installations on are:

  • Acer Swift 14 AI SF14-11
  • ASUS Vivobook S 15
  • Dell XPS 13 9345
  • HP Omnibook X 14
  • Lenovo Thinkpad T14s Gen 6
  • Lenovo Yoga Slim 7x
  • Microsoft Surface Laptop 7

:warning: Hardware support for Snapdragon X Elite is work-in-progress and lots of features are not yet supported (built-in speakers, webcam, ).

We recommend installing all firmware updates before installing Ubuntu. For now it is best to install Ubuntu in a dual-boot setup to preserve your Windows installation for future firmware and BIOS updates. Make sure to tick the “include additional drivers” box in the Ubuntu installer and connect to the network during installation to receive the latest updates and bug fixes.

Most machines rely on additional device-specific firmware files that are not available under a compatible license yet (at the moment this affects all devices except the Lenovo Thinkpad T14s which should work out of the box).
You can extract the firmware files from a local Windows installation using the qcom-firmware-extract tool from the Ubuntu package with the same name.

sudo apt install qcom-firmware-extract
sudo qcom-firmware-extract

Known issues

Devices with more than 32 GB of memory are affected by a firmware bug that is worked around in the Concept ISO but not in the official Ubuntu 25.04 installer. If you would like to run Ubuntu on an affected device, we recommend installing the Ubuntu Concept image and upgrading to 25.04 from there.

On the Asus Vivobook S15 there is a bug where the installer does not install the meta package correctly resulting in broken installations, see Bug #2107692 “[SRU] Asus Vivobook S15 hwe-qcom-x1e-meta modsign...” : Plucky (25.04) : Bugs : ubuntu-x1e-settings package : Ubuntu.

What’s the difference between the Ubuntu Concept 24.10 ISO and the official Ubuntu 25.04 arm64 installer ISO?

The biggest differences between Ubuntu Concept and official 25.04 installations are the ubuntu-concept PPA which is enabled by default when installing via the Ubuntu Concept installer and overrides some packages with patched versions as well as the linux-qcom-x1e kernel that is our WIP kernel with more Qualcomm specific changes added that are not suitable or too experimental for the generic arm64 kernel.

Ubuntu Concept installations also default to bleeding edge snap channels for the mesa provider snaps gnome-42-2204 and mesa-2404. To get working hardware acceleration in snaps on a fresh 25.04 installation we recommend switching the channels manually using:

snap refresh --channel adreno/stable gnome-42-2204
snap install --channel beta/kisak mesa-2404

Over the lifetime of 25.04 the concept PPA will continue receiving regular feature updates while the official 25.04 packages stick to the Ubuntu policy and will only receive bug fixes.

How can I go from Ubuntu Concept 24.10 to Ubuntu 25.04?

An existing Ubuntu Concept 24.10 installation can be updated to 25.04 without reinstalling. Release upgrades from 24.10 to 25.04 are currently disabled because of a critical upgrade bug. As soon as that is fixed the system should automatically offer to upgrade.

If you manually want to force the upgrade despite this bug you can run:

update-manager -d

or

do-release-upgrade -d

If you want to continue receiving package updates from the Ubuntu Concept PPA, make sure to reenable the ppa after the upgrade with:

sudo add-apt-repository ppa:ubuntu-concept/x1e

Will there be a Ubuntu Concept ISO based on 25.04?

Yes! We plan to continue our more experimental development in the ubuntu-concept PPA and regularly release new ISOs including the latest changes to enable more devices.

We have some work to do on our build pipeline before we can start publishing 25.04 ISOs, until then it is possible to install 24.10 and upgrade to 25.04 if needed as explained above

My machine doesn’t work, what can I do?

Please check bugs.ubuntu.com/ubuntu-concept and see if a tracking bug exists for your device. The comments should give you a good idea what works and what doesn’t.

Many devices are now available in X Elite or X Plus configurations, the latter are currently not as well supported since they were released recently and upstream Linux support hasn’t caught up yet.

How can I help?

We appreciate test feedback and bug reports on Launchpad. Keeping all the info up to date and relevant is hard so feel free to let us know if you think anything needs to be updated.

If you own a device that doesn’t work yet, please help us by opening a tracking bug at Bugs : Ubuntu and share your smbios information if possible. For an example see the T14s tracking bug. X Elite and X Plus configurations for similarly named machines should be tracked in separate bug reports.

If you are working on more experimental changes such as a new device tree or kernel patches the easiest way to get them into our tree is submitting them upstream for the Linux kernel.
We are generally happy to backport fixes to our Ubuntu Concept qcom-x1e tree as long as they also get upstreamed.

You can create merge requests against our Ubuntu Concept packages at Git : Code : “Ubuntu Concept” team

2 Likes

Maybe clarify this is because firmware for the Thinkpad T14s Gen 6 is merged in linux-firmware: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/log/?qt=grep&q=t14s

(not because the T14s is less supported which could also be deducted).

Maybe clarify this is because firmware for the Thinkpad T14s Gen 6 is merged in linux-firmware: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/log/?qt=grep&q=t14s

(not because the T14s is less supported which could also be deducted).

Indeed, the intention was to say the exact opposite. The T14s is better supported out of the box. Let me see how I can rephrase that.

1 Like

Great! And the next concept image could probably include the Lenovo Yoga Slim 7x firmware files, since they are available in Linux git now too.

https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/qcom/x1e80100/LENOVO/83ED

1 Like

Firstly, hats off to all the people who contributed to this effort; my experience with the X1E Lenovo Slim 7x on Ubuntu 25.04 has been amazing so far, given how fresh this platform is. Welcome to the new era of computing!

Just a note that the steps above should be updated; on a fresh Ubuntu 25.04 install:

# snap refresh --channel adreno/stable --no-wait gnome-42-2204
7
# snap refresh --channel beta/kisak --no-wait mesa-2404
error: cannot refresh "mesa-2404": snap "mesa-2404" is not installed```

// Daniel J Blueman

Thanks for the feedback, glad to hear it works that well for you!

I believe what would best in this case is

snap install --channel beta/kisak mesa-2404

which installs the dependency in the right channel if it isn’t installed yet. This will make sure that if you pull in a snap consuming the mesa content snap in the future it should just work.

1 Like

Great work!

I’m wondering since the Surface Laptop 7 should be similar to Surface Pro 11, if we could expect anything for the latter anytime soon.

I’m looking for a tablet convetable device that can run Linux and its hard to find anything else.

Someone has tried porting it to Arch and has had some success. GitHub - dwhinham/linux-surface-pro-11: Arch Linux ARM for Surface Pro 11.

Just placed an order for Lenovo Slim 7x. Cant wait for Linux on ARM

Tried installing 25.04 ARM ISO on Lenovo Yoga Slim 7X with ZFS w/ encryption alongside Windows and it failed with following error:

May 31 21:33:03 ubuntu subiquity_log.4039[5385]: Err:27 http://ports.ubuntu.com/ubuntu-ports plucky/universe Icons (64x64)
May 31 21:33:03 ubuntu subiquity_log.4039[5385]:   Connection timed out [IP: 2620:2d:4000:1::19 80]
May 31 21:33:03 ubuntu subiquity_log.4039[5385]:   Connection timed out [IP: 91.189.91.103 80]
May 31 21:33:03 ubuntu subiquity_log.4039[5385]:   404  Not Found [IP: 2620:2d:4000:1::19 80]
May 31 21:33:04 ubuntu subiquity_log.4039[5385]: Fetched 32.9 MB in 13min 47s (39.8 kB/s)
May 31 21:33:04 ubuntu subiquity_log.4039[5385]: Reading package lists...
May 31 21:33:04 ubuntu subiquity_log.4039[5385]: E: Failed to fetch http://ports.ubuntu.com/ubuntu-ports/dists/plucky/universe/dep11/icons-64x64.tar  404  Not Found [IP: 2620:2d:4000:1::19 80]
May 31 21:33:04 ubuntu subiquity_log.4039[5385]: E: Some index files failed to download. They have been ignored, or old ones used instead.
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['udevadm', 'settle'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: TIMED subp(['udevadm', 'settle']): 0.007
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['mount', '--make-private', '/tmp/tmpc0houwl6/mount/usr/bin/ischroot'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['umount', '/tmp/tmpc0houwl6/mount/usr/bin/ischroot'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['mount', '--make-private', '/tmp/tmpc0houwl6/mount/sys/firmware/efi/efivars'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['umount', '/tmp/tmpc0houwl6/mount/sys/firmware/efi/efivars'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['mount', '--make-private', '/tmp/tmpc0houwl6/mount/sys'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['umount', '/tmp/tmpc0houwl6/mount/sys'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['mount', '--make-private', '/tmp/tmpc0houwl6/mount/run'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['umount', '/tmp/tmpc0houwl6/mount/run'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['mount', '--make-private', '/tmp/tmpc0houwl6/mount/proc'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['umount', '/tmp/tmpc0houwl6/mount/proc'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['mount', '--make-private', '/tmp/tmpc0houwl6/mount/dev'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: Running command ['umount', '/tmp/tmpc0houwl6/mount/dev'] with allowed return codes [0] (capture=False)
May 31 21:33:04 ubuntu subiquity_log.4039[5361]: finish: cmd-in-target: FAIL: curtin command in-target
May 31 21:33:04 ubuntu subiquity_event.4039[4039]: configuring apt
May 31 21:33:04 ubuntu subiquity_event.4039[4039]: 
May 31 21:33:04 ubuntu subiquity_event.4039[4039]:  curtin command in-target

Sorry, I am confused by these description. Where should I run these sudo commands? They are Linux commands. Aren’t these firmware files needed for successful Linux installation? It looks a chicken-n-egg problem.

What are the files for?

Where should I run the sudo commands?

Where should I copy the extracted firmware files to?

How are they related with installing Ubuntu on a Windows Arm64 laptop?

I am not entirely sure I understand your questions @blue3too . But if I try to take you at your words I would say that the files are binary blobs (files) that make some hardware in your laptop function better (or even at all). You open a terminal after installing Ubuntu 25.05. Then you run those 2 commands in the terminal. The qcom-firmware-extract command will copy the files to the correct place for you. Those blobs/files are part of the windows distribution that are borrowed to the Ubuntu install to make some hardware work when running Ubuntu on your windows arm64 laptop.