FAQ: Ubuntu 25.04/25.10 on Snapdragon X Elite

just to check you have the Slim 7x? both internal speakers and microphone work on mine.

can’t think of anything special about my setup. i just installed Ubuntu 25.10 ARM, followed by x1e PPA, followed by qcom-firmware-extract, followed by my instructions a few posts up.

obviously need to apt upgrade and reboot

btw. the camera does work but involves minor editing and then re-compiling the slim 7x .dts from the ubuntu concept soure code ( How to build your own Ubuntu Concept X Elite kernel ) into a .dtb and then replacing the current .dtb. i got a bit lost on how to do this but shouldn’t be massively complicated if you are determined (https://gitlab.com/Linaro/arm64-laptops/linux/-/issues/9). The Linaro people seem to be also adding some commits to their repo around the Omnivision sensor so this may be added to x1e PPA in 1-2 months if you’re prepared to wait.

Ohh))

I have Asus Vivobook S15))

Hello everyone. I own a Lenovo Ideapad Slim 3 15Q8X10 laptop. I have been trying to install Ubuntu on it, but I am not able to succeed.

When I boot using the USB, I get the boot menu. After pressing enter on “Try or install ubuntu”, an error in red letters appears:

pe.c:372@pe_locate_sections: HWID matching failed, no DT blob will be selected: Not found.

After this, the previous menu appears again.

It builds:

  • Snapdragon X126100 - Qualcomm Oryon CPU
  • Qualcomm Adreno X1-45 GPU
  • 16 GB.

Is it possible to install Ubuntu on it? Has someone managed to? Thank you in advance.

Hello everyone,
Lenovo Yoga Slim 7x user here. I’ve been daily driving Ubuntu 25.10 for a couple of months now and wanted to share some fixes I’ve worked on.

  • Camera Issue:

I’ve managed to get the camera to work as expected. The kernel patches are working great, but the userspace color tuning still needs work.
If anyone has experience with libcamera tuning files or color correction, I’d really appreciate help improving the YAML tuning file. It’s attached in the bug report below - the camera works but colors could be better balanced.

Camera bug report with patches:

  • 5 GHz Wi-Fi Issue:

After kernel 6.16, 5 GHz Wi-Fi completely stopped working on my machine - only 2.4 GHz networks would show up. Turns out it was due to broken frequency range filtering logic introduced in 6.17. I’ve removed that logic and rebuilt the kernel, and now 5 GHz is working perfectly.

But here’s what’s interesting, I haven’t seen anyone else report this issue. Is 5 GHz working fine on your machines with stock kernels 6.17+? I’m curious if this is specific to certain hardware configurations or if others just haven’t noticed yet.

WiFi bug report with patches:

  • Regarding HW Acceleration:

It was using llvmpipe by default causing performance issues and battery drain. To fix this, Extracted vendor firmware archive, installed the required firmware blobs, updated initramfs, and rebooted. After this, glxinfo shows Device: Adreno X1-85 and GPU hardware acceleration is active. And now battery, perf are bettter

Remaining bugs:

  • Sound (There is a patch but its dangerous)
  • Suspend / deepsleep
1 Like

Hi all!

Development continues based on 25.10, there is a new ISO available in the usual place. The questing PPA has also received an update to kernel 6.19, so make sure to give that one a try.

In order to make Microsoft Surface 11 and 12 devices work out of the box we need some help collecting device information from both OLED and LCD models. There is a new helper script available in the stubble github repo which generates all the data we need including EDID information.

Please leave a comment or open a github issue/PR with a dump from your machine if you own any of those!

4 Likes

Camera

Fantastic to hear the camera is working. Here are AI-generated notes on color tuning, prompted by my experience building a homebuilt webcam a few years ago using a sensor and M12 lens. Hopefully they are partially accurate!

TL/DR if you are able to display a ColorChecker (e.g. https://upload.wikimedia.org/wikipedia/commons/4/4f/Color_Checker.pdf) on an already-calibrated device (phone/computer) and point the Slim 7x at that device you can avoid a full studio setup. Alternatively, the metadata might already have the needed color correction if you can capture a raw .DNG on Windows.

Color Tuning for Slim 7x Camera

  1. The “Poor Man’s” Tuning (No Color Card)

If you don’t have a Macbeth chart, you can achieve 90% of the quality by manually tweaking the CCM (Color Correction Matrix) in your tuning file.

The raw output of the OV02C10 is likely very green because image sensors are naturally more sensitive to green (the Bayer pattern has 2 green pixels for every 1 red or blue). The CCM’s job is to mix these channels to look like human vision.

Step 1: Locate your Tuning File
In libcamera , this is typically a .json file. If you are using SoftISP, it might be loading a default file like simple_greyscale.json or uncalibrated.json .

  • Location: /usr/share/libcamera/ipa/ (or similar).
  • Look for a section named rpi.ccm or just ccm .

Step 2: Borrow a “Safe” Matrix
Instead of calculating one from scratch, inject a standard sRGB matrix. This won’t be perfect for the OV02C10’s specific silicon, but it will be better than raw data.
Find the ccms array in the JSON and replace the matrix with a generic one (identity-like but boosted for saturation):

“ccms”: [
{
“ct”: 6500,
“ccm”: [
1.6, -0.5, -0.1,
-0.3, 1.4, -0.1,
-0.1, -0.5, 1.6
]
}
]

  • How to Tweak by Eye:
  • Green Tint? Lower the middle value (1.4 ) slightly or increase the Red (1.6 top left) and Blue (1.6 bottom right) diagonals.
  • Washed out? Increase the diagonal numbers (e.g., 1.61.8 ) and decrease the off-diagonals (e.g., -0.5-0.7 ) to maintain the row sum near 1.0.

2. Visual Tuning with a “Digital” Color Card

If you don’t have a physical card, you likely own a high-quality smartphone (iPhone/Pixel) or a calibrated monitor. You can use this as your reference.

  1. The Setup: specific “Color Checker” image on your calibrated screen.
  2. The Capture: Point your webcam (OV02C10) at the screen. Ensure the screen brightness is high and the room is dark to avoid reflections.
  3. The Cheat: Take a RAW capture. Open it in a tool like RawTherapee .
  4. The Fix: Use the “Color Management” or “Input Profile” tools in RawTherapee to manually adjust the sliders until the screen capture looks like the image on the screen.
  5. Export: RawTherapee can often display the resulting matrix values. Copy these 9 numbers into your libcamera JSON file.

3. Using the Raspberry Pi Tuning Tool (CTT)

The “Homebuilt Webcam” community relies heavily on the Raspberry Pi Camera Tuning Tool (CTT) . This is a Python script that automates the math. You can use this for the OV02C10 if you have a color card (even a printed one is better than nothing).

  • Repository: utils/raspberrypi/ctt/ in the libcamera source.
  • Process:
  1. Take a RAW image (DNG) of a color chart with the OV02C10.
  2. Run the CTT script pointing at that image.
  3. It will generate a macbeth.json (or similar) containing the mathematically perfect 3x3 matrices for your sensor.
  4. Copy the ccm section into your OV02C10 tuning file.

Summary Checklist for OV02C10

  • Black Level (BLC): Ensure this is set correctly first (usually 64 or 256 depending on 10-bit/8-bit readout). If black looks purple or green, your color tuning will never work.
  • Lens Shading (LSC): The OV02C10 is tiny and often has terrible vignetting (dark corners). Before tuning color, fix this by taking a photo of a white wall/paper and generating an LSC table.
  • AWB vs CCM: AWB (Auto White Balance) fixes the temperature (making gray look gray). CCM fixes the hues (making red look red, not orange). Fix AWB first (gray card), then CCM.

1. Can we steal the Tuning Parameters from Windows?

The Qualcomm ISP driver on Windows uses highly complex, encrypted, or binary-compiled tuning blobs (often embedded in .sys files or proprietary .bin formats). Decrypting these to finding a simple “3x3 Color Matrix” is a massive reverse engineering project (months of work).

The Shortcut: The “DNG” Extraction Method Instead of hacking the driver files, you can force the Windows driver to tell you its tuning secrets by capturing a Raw image.

  1. Boot into Windows.
  2. Find a “Pro” Camera App: You need a camera application that supports capturing in RAW or DNG format. (The default Windows Camera app usually doesn’t do this for webcams, but third-party tools like ProShot or open-source tools like OBS with specific plugins might allow raw stream dumping).
    • Alternative: If you can’t capture DNG, capture a high-quality Lossless PNG of a color target (even a colorful cereal box) under good lighting.
  3. Analyze the Metadata: If you manage to get a DNG, the Windows driver will have stamped the file with the ColorMatrix2 and AnalogBalance tags. These are the exact tuning values Qualcomm uses.
  4. Extract with ExifTool: Run this command on your captured image:
    Bash

exiftool -ColorMatrix2 -ForwardMatrix1 -AnalogBalance -AsShotNeutral your_image.dng

    • The Result: You will get a series of numbers (e.g., 1.45 -0.3 0.0 ... ). These can be directly transposed into your libcamera JSON tuning file, giving you “Windows-like” color accuracy instantly.

Wi-Fi

No problems on my Slim 7x with 5G. I did make a few config changes but they might not even be necessary

Wi-Fi Notes

sudo iw reg get
/etc/modprobe.d/wireless.conf
options cfg80211 ieee80211_regdom=GB

download https://git.codelinaro.org/clo/ath-firmware/ath12k-firmware/-/tree/main?ref_type=heads as zip
wget https://github.com/qca/qca-swiss-army-knife/raw/master/tools/scripts/ath12k/ath12k-fw-repo
move script into firmware folder
chmod 755 ath12k-fw-repo
sudo ./ath12k-fw-repo --install /lib/firmware

Sound

I watch Netflix every day, works great. I always have the volume set to around 15%. It would only be dangerous if you accidently went to 100% which I never do. Se my post 11 days ago for how to activate sound.

1 Like

As for sound. Even in windows, the sound volume is about 10 of 100 on Asus Vivobook S15, so, if the sound patch marked as dangerous because of sound volume, then, I think this is not the case.

Hi, Thanks will try that color tuning. I think I have to increase BLC. Right now image looks sharp.

So how did you manage to get the Netflix to work? I managed to get prime, spotify, other drm apps to work but netflix doesn’t work.

I’m using This

Netflix instructions for X Elite (and other ARM64) laptops

1. Install Brave browser
sudo apt install curl
sudo curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
sudo curl -fsSLo /etc/apt/sources.list.d/brave-browser-release.sources https://brave-browser-apt-release.s3.brave.com/brave-browser.sources
sudo apt update
sudo apt install brave-browser
2. Install Widevine
git clone https://github.com/AsahiLinux/widevine-installer.git
cd widevine-installer
sudo bash widevine-installer
sudo ln -s /usr/lib64/chromium-browser/WidevineCdm /opt/brave.com/brave/WidevineCdm
  1. Open Brave and toggle Widevine on in brave://settings/extensions
  2. Install the User Agent Switcher extension (the one authored by Google Inc.)
  3. Add new custom agent Mozilla/5.0 (X11; CrOS aarch64 15329.44.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36
  4. Set this agent as a permanent spoof for netflix.com
  5. If you have an OLED display force color profile P3 in brave://flags
  6. Enjoy!
1 Like

Hi,

I have a MS Surface Pro 11, and have since removed ubuntu from my Virtualbox VM, but if there is now an active measure to work on the Audio/Video issues, I would happily contribute to the fix. That said, I have just looked at the script (stubble gitHub link), but unsure where or even how I should run this, in order to provide my system information, should it be run in powershell?

Thanks for any assistance, regards.

Unfortunately the questing-desktop-arm64+x1e-20260119.iso would hang after the “Try or install Ubuntu” TUI on my Asus Vivobook S 15 X1P42100. Which is a bit sad at this stage of the game.

I hacked the iso as described in

and it would at least boot into the “Install Ubuntu” GUI but during installation it would continually fail after the timezone was specified with “FAIL: curtin command in-target” - not at all clear what that means, I couldn’t get any sense out of the other install logs or journal.

Updates:

Wifi: It was a firmware issue. I was on old 09th September firmware and the latest was released on 18th september.

Camera:
I have successfully root-caused the camera initialization failure (“Connection timed out”) on the Lenovo Yoga Slim 7x.

Summary:
The issue is a hardware brownout caused by passive discharge on the camera regulator rails. The Linux kernel currently lacks support for “Active Discharge” on this specific PMIC (PM8550) via the qcom-rpmh-regulator driver. As a result, the voltage rail takes ~2.3 seconds to drain, preventing the sensor from resetting correctly during rapid power cycling.

The Fix:
I have documented the full root cause analysis, voltage measurements, and a working kernel patch (Workaround) on Launchpad.
Link to findings: Here

While I have a stable workaround using regulator delays, the proper fix is to enable the hardware’s “Active Discharge” / Pull-Down mode. This requires sending specific RPMh resource commands to the PM8550 PMIC.

If anyone has experience with:

  1. Qualcomm PM8550 / PMK8550 register maps (specifically for LDO/ARC resources).
  2. The specific RPMh command IDs for enabling “Pull Down” on Snapdragon X Elite (X1E80100).
  3. Porting regulator logic from Android/Vendor kernels to Mainline qcom-rpmh.

And facing the same issue on your devices and are willing to help,

Please reach out on the Launchpad thread / matrix. I am looking to implement this properly to remove unnecessary delays.

4 Likes

@saikiran0202

some good news for MIPI cameras lacking hardware ISP (such as X Elite laptops. SoftISP will now be GPU-accelerated which should improve image quality. Also neural network auto white balance (only for raspberry pi camera so far).

https://lists.libcamera.org/pipermail/libcamera-devel/2026-January/057034.html

2 Likes

Yes great news indeed, Colors are fixed now. No need for any other userspace tuning.
[Lenovo Yoga Slim 7x]

does suspend to ram work on Asus Vivobook S15? there was no confirmation on this thread [0] but i just wanted to double check if more recent kernel made more progress

[0] https://bugs.launchpad.net/ubuntu-concept/+bug/2084674

Playing “Portal2” from Steam as of this morning on a Lenovo Yoga Slim7x - running very smooth :slight_smile:

4 Likes

Hi,

New to this topic, I have a Dell latitude 7455 laptop with SnapDragon Elite X socket.

On Ubuntu 25.10 with kernel 6.17.0-12, some components are not working as expected:

  • No battery usage and percentage information
  • Internal webcam is not working
  • my USB-C dock works fine for keyboard/mouse, but I cannot use my external display connected on it

Are there additional drivers that I can install in order to mitigate this situation?
Do you need additional information?

First install

ubuntu-x1e-settings

Then run

qcom-extract-firmware

After that you might fix some problems in your list.

But one problem won’t be fixed 100% - Camera.

There are two remaining problems

  1. Camera
  2. Internal audio

Also HDMI not working. But USB-C display works well, quite well.

Thanks @psarapkin for your answers!

I’ve successfully installed the packages:

  • ubuntu-x1e-settings
  • qcom-firmware-extract (little typo in package name :wink: )

It didn’t solve the problems (battery / USB-C)

I’ve created 2 support tickets on the DELL community support site for:

  • BIOS update binaries (v2.12.0)
  • Dell Command | Configure (must be compatible with Ubuntu LTS, at last! But I can only find Windows binaries)

I’ve tried to install:

  • qcom linux kernels, but they are not supported for my hardware.
  • Latest generic kernels like 6.18.7, but my laptop failed to boot

Hmm, that’s a pity :frowning: .

Probably my advice doesn’t work with dell.

On my Asus Vivobook S15 works fine.

By the way, is anyone planning to by some new snapdragon X2 device?

What do you plan to buy?