Ubuntu Concept ♥️ Snapdragon X Elite

im on 7.1.3-jg-0-qcom-x1e now and audio isn’t working from the laptop speakers, do you maybe have a link to the kernel where the laptop speakers work?

Nevermind, from a clean install with 7.1.4-jg-0 the speakers are working. Will try to pinpoint the difference; I have a dual boot with another distro. Thanks a lot!

2 Likes

Subject: HWID matching failure / no DT blob on ASUS Zenbook A14 (Snapdragon X2 Elite) — new unsupported device

Hi everyone,

Reporting a new unsupported device for the X-series enablement effort: ASUS Zenbook A14, Snapdragon X2 Elite. This is not on the currently supported device list (X1 Elite/X1 Plus laptops), and it appears to hit a hard HWID/DT mismatch at boot.

Hardware:

  • Model: ASUS Zenbook A14

  • SoC: Snapdragon X2 Elite (Oryon cores, Adreno X2-85 GPU)

  • Model: UX3407NA

What I tried:

  1. Official Ubuntu 25.10 arm64 ISO (DD mode via Rufus) — booted to installer, but internal keyboard/trackpad non-functional. No USB hub available to test whether host controller detection itself was the issue vs. HID-specific.

  2. Ubuntu Concept questing-desktop-arm64+x1e — initial attempt failed at shim with bad shim lock signature / you need to load the kernel first (Secure Boot rejection — expected for unsigned Concept image). After disabling Secure Boot in UEFI, subsequent attempts still failed to load past “Booting a command list,” auto-falling back to Windows. Re-flashed in DD mode (confirmed correct mode, ruled out ISO-mode partition corruption) with same result.

  3. Ubuntu Concept plucky-desktop-arm64+x1e (DD mode) — this one got further. Boot log shows:

   Booting a command list
   pe.c:3720@pe_locate_sections: HWID matching failed, no DT blob will be selected: Not found
   EFI stub: Decompressing Linux Kernel...
   EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
   EFI stub: Measured initrd data into PCR 9
   EFI stub: Generating empty DTB
   EFI stub: Exiting boot services...

Then the screen goes blank and the system automatically falls back to booting Windows — no crash dump or further console output visible. This looks consistent with firmware boot-resiliency/watchdog kicking in after a timeout with no display output, rather than the OS actually finishing a boot attempt.

Ask:
Is anyone else working with an X2 Elite Zenbook A14, or is this the first report for this exact board? Happy to test patches, pull dmesg/serial output if someone can point me to how to capture it given input devices aren’t working pre-firmware-extraction, or provide any other diagnostics needed to help get a DT blob added for this HWID.

Thanks for all the work on this — happy to be a test case for this specific board if useful.

I think that it’s to early to speak about X2 series of SoCs on Linux.

X1 is still has some issues with audio and camera.

1 Like

I think I found (part of) the issue. I use a LUKS encrypted drive, unencrypted /boot, and it looks like some drivers (qcom_q6v5_pas and wsa884x-codec at least) are very unhappy about it. Double initialisation?

[ASUS Vivobook S15 X1P42100 - 7.1.3-jg-0-nostubble - EL1 - Ubuntu 26.04 with LUKS-LVM]

Sound is working OK for me on this config both via laptop speakers and over HDMI to monitor’s 3.5mm audio jack. I’m using the dtb extracted from the linux-modules*.deb package using script in my 4 July post above..

Doesn’t yet work on EL2.

I’d like to know the answer to this as well.

Anyone?

FWIW: Noticed @glathe updated kernel builds in gdrive, tested the 7.2-rc5-jg-0-qcom-x1e
so far is stable with camera, audio, pre-4k USB-C + DP-alt dock, and suspend works abit more reliable with wireless and dock connected.. no random PD wakeups triggering a loop that triggers the PMIC watchdog to trip the machine and reboot :slightly_smiling_face:

18:43:45 systemd[1]: Starting systemd-suspend.service - System Suspend...
    18:43:45 systemd-sleep: Performing sleep operation 'suspend'...
    18:43:45 kernel: PM: suspend entry (deep)
    ... (Laptop slept cleanly for nearly 2 minutes) ...
    18:45:28 kernel: PM: suspend exit
    18:45:29 systemd-sleep: System returned from sleep operation 'suspend'.
    18:45:29 systemd[1]: Finished systemd-suspend.service - System Suspend.
1 Like

I just installed the 7.2-rc5-jg-0-qcom-x1e and I noticed the screen on my T14s goes Black for a second or two when switching from 95% to 100% screen brightness and back. And the current camera application saves pictures with a pink cast, but the live view looks ok.

Other than that, I didn’t notice any regressions at this point but I will get back once I used the new kernel for a few days.

1 Like

The normal way these things land upstream is upstreaming them. Create patchset for the Linux mailing list, getting it approved, eventually it will show up. Similar with other packages (although may be a shorter way). Quite the experience if you enter that arena. I still have a list of patches for the device trees I already upstreamed, and a few new ones were a lot of work has been done. I can understand everybody who says “no thanks” to that process, but this is how it will end up upstream, and there’s actually no alternative.
I try to sustain a once-a-week cadence for upstream work, but failing. I have a bigger (and a bit controversial) patch set for “not USB4, do what works” on the list atm, and need to do a V2. Still reluctant. Also, the Ideapad 5 package needs to be put out there. And Audioreach / ucm patches for sc8280xp. The camera expedition was to make my tree camera-capable (by not botching it :grin: ), but actually the patches are mostly upstream, nothing new from me on that front.
So, any takers, welcome :slight_smile:

3 Likes

I disabled LUKS, and same issue. Looks like my other distro mess up something post-initramfs, as I have sound in ubuntu with the same kernel and same initramfs. Damn!

[Microsoft Surface Pro 11 — X1E80100 OLED]

Touch working :woman_dancing:t6:

Managed to get the touchscreen working with @glathe ‘s 7.2rckernel and the work done by GitHub - geocausa/SP11X1e-touchscreen: Linux touchscreen driver for the Snapdragon X Elite Microsoft Surface Pro 11 OLED (MSHW0485) · GitHub (stumbled over this message on an issue I was on CPU running hot all the time and battery drains fast. · Issue #28 · dwhinham/linux-surface-pro-11 · GitHub , decided to give it a go)

Multitouch is working: pinch to zoom, etc.

Here’s the built kernel and files for anyone interested Release Surface Pro 11 qcom-x1e 7.2-rc5-jg-0 v3 — Touchscreen + 2.4 MHz DMIC · ooaklee/linux-surface-pro-11-oe · GitHub

I’m afraid this kernel breaks my HMDI output. It displays on the HMDI monitor during pre-login (while asking for LUKS password and during the spinning Munich-Olympics-esque wheel) but after login, no display and no option for HDMI audio output. The Display setting GUI does detect my expternal monitor over HDMI but even after using settings to turn monitor off and on, still no display.

HDMI is working on 7.1.5-jg-0.nostubble EL1 and EL2. apt upgrade run today before test on 7.2-rc5. Also adreno X1-45 GPU driver is loaded OK for 7.2-rc5.

1 Like

In simple English please. Will apt update & upgrade deliver the updates to fix (Qualcomm Surface Pro 11) audio, graphics, touchscreen, USB etc?

Yes. Eventually, like in 2 years. If you want it now, its tracking the hobbyist(? Yes, in my case) repositories and installing from there.

1 Like

A bit of vibing with deepseek and is audio is now working

1 Like

Thanks for the feedback. I noticed some instability on the Slim5x (no FP reader, HDMI hotplug sometimes ends in reboot). So there is something odd-ish going on. On the Slim5x I additionally have the effect of getting hdmi only with cold-plugged cable and active display. Hotplug after boot works there, too. Also sound. But way more stable on 7.1.5. This is the only machine I have here (and works) that has this HDMI quirk. For the others, HDMI works hot-or coldplugged, with sound.

Holy Molly! I have added a bunch of firmwares to the initramfs, deleted /var/lib/alsa/asound.state and ta-daa, sound is working :smiley:!

2 Likes

Asus Vivobook S 15 (S5507) Snapdragon X Elite: CPU governor not available after BIOS update (v.368)

Hi everyone,

I’m running into a power management issue on my Asus Vivobook S 15 (S5507, Snapdragon X Elite) and would appreciate any advice or workarounds.

Recently, I updated the laptop’s BIOS to the latest version (S5507QAD.368). Since then, CPU frequency scaling has completely stopped working. The CPU no longer drops frequencies at idle, resulting in a constant power draw of about ~12W in powertop and increased thermals.

Here is the output of systemctl status cpufrequtils:

* CPUFreq Utilities: Setting schedutil CPUFreq governor...
* disabled, governor not available...

Kernels I have tested so far:

  • 7.0.0-29-generic (Ubuntu HWE)

  • 7.1.4 (Mainline)

  • 7.1.5 (Mainline)

Side note on 7.1.5: It’s great to see that on 7.1.5 the system now boots perfectly without any custom GRUB parameters, and the Adreno GPU is successfully recognized! However, brightness control and CPU frequency scaling are still broken.

It seems the new BIOS update changed something in the ACPI tables or requires an updated Device Tree that the current qcom-cpufreq driver doesn’t understand.

Has anyone else encountered this on Asus devices with the new BIOS? Is there a patched .dtb file in the works, or any specific kernel patches/testing branches I could try to get the CPU governor working again?

Thanks in advance for your hard work on this port!

@glathe I am running your 7.1.3-jg-2-qcom-x1e kernel and it has been fantastic. Stable and most everything I would like is working. I would say it has been the best experience I have had since picking this machine up. So many thanks!

The one problem I am having (which some poking around suggests it perhaps a known issue) is that I cannot get the CDSP working. I am booting a T14s 64GB into EL2 with slbounce and loading the firmware before the ExitBootServices call with qebspil. The firmware appears to load correctly and the /dev/fastrpc-cdsp device is exposed, though any use of it results in a deadlock. The device does not reboot, but entirely deadlocks.

I’ve poked around and it seems getting this to work in EL2 on this device may not be feasible at this time, but figured I would ask. I’ve tried to decipher to state of this issue from IRC logs and other sources, but the whole picture doesn’t seem wholly compiled in one place anywhere I could find. Am willing to play around with patches and rebuilding the kernel if necessary. Any insight you might have would be appreciated.

Thanks! I’ve attached some dmesg output from the boot.

sudo dmesg | grep -iE 'cdsp|fastrpc'
Password:
[    0.000000] OF: reserved mem: 0x000000008b900000..0x000000008d8fffff (32768 KiB) nomap non-reusable cdsp@8b900000
[    0.000000] OF: reserved mem: 0x000000008d900000..0x000000008d97ffff (512 KiB) nomap non-reusable q6-cdsp-dtb@8d900000
[   17.909499] remoteproc remoteproc1: cdsp is available
[   17.909507] remoteproc remoteproc1: attaching to cdsp
[   17.909736] remoteproc remoteproc1: remote processor cdsp is now attached
[   17.956554] qcom,fastrpc 6800000.remoteproc:glink-edge.fastrpcglink-apps-dsp.-1.-1: no reserved DMA memory for FASTRPC
[   17.958639] platform 6800000.remoteproc:glink-edge:fastrpc:compute-cb@3: Adding to iommu group 18
[   17.960549] platform 6800000.remoteproc:glink-edge:fastrpc:compute-cb@4: Adding to iommu group 19
[   17.962691] platform 6800000.remoteproc:glink-edge:fastrpc:compute-cb@5: Adding to iommu group 20
[   17.967681] platform 6800000.remoteproc:glink-edge:fastrpc:compute-cb@6: Adding to iommu group 21
[   17.980618] platform 6800000.remoteproc:glink-edge:fastrpc:compute-cb@7: Adding to iommu group 22
[   17.997426] qcom,fastrpc 32300000.remoteproc:glink-edge.fastrpcglink-apps-dsp.-1.-1: no reserved DMA memory for FASTRPC
[   17.998729] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@1: Adding to iommu group 24
[   18.000989] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@2: Adding to iommu group 25
[   18.002482] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@3: Adding to iommu group 26
[   18.003997] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@4: Adding to iommu group 27
[   18.005401] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@5: Adding to iommu group 28
[   18.006842] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@6: Adding to iommu group 29
[   18.008925] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@7: Adding to iommu group 30
[   18.010632] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@8: Adding to iommu group 31
[   18.012923] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@10: Adding to iommu group 32
[   18.014794] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@11: Adding to iommu group 33
[   18.025943] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@12: Adding to iommu group 34
[   18.027356] platform 32300000.remoteproc:glink-edge:fastrpc:compute-cb@13: Adding to iommu group 35
2 Likes