Ubuntu Concept ♥️ Snapdragon X Elite

Reboots with 7.x

Is anyone else seeing this? I have been running the 6.19.x-jg for a while with almost 0 reboots. If I switch to 7.x, I get multiple reboots per day, especially (but not only) when the machine is idle.

T14s, 64GB but operating with 32GB.

Nopes. Same machine. No reboot problem with 7.0.0-14.14. Though I had some general troubles with earlier 7-kernels (don’t recall which specific one).

EDIT: I repent. Just had a reboot. In power saving mode.

Yes, had two reboots today on T14s while running in “power saver” mode and on battery. So far, doesn’t seem to happen in regular performance mode.

Still WIP, but the actual topology / ucm config / kernel patches are good enough to play with it. Tested on the T14s and on ThinkBook 16, working well. VT refresh (switch to other terminal / back to gnome) updates the sound controls into a working state from GUI.

1 Like

EDIT
I think I have invalid tcblaunch.exe. Can someoneshare it with me? thanks :slight_smile:

EDIT2
turns out that tcblaunch.exe was fine, but my compiled version of slbounce and sltest were the root cause. sltest gives me the green bar now.

Origin
Hi, I’m trying to set el2 boot for my t14s 32gb (non oled).

slbounce looks like it loads fine and gets me to the grub entry, in grub I select

#!/bin/sh
menuentry ‘Ubuntu T14s EL2 via slbounce normal args’ {
    recordfail
    load_video
    set gfxpayload=$linux_gfx_mode
    insmod gzio
    insmod part_gpt
    insmod ext2
    search --no-floppy --fs-uuid --set=root 21f58603-6fbb-416d-8894-3197325dbcd5
    linux /vmlinuz-7.0.0-32-qcom-x1e root=/dev/mapper/ubuntu--vg-ubuntu--lv ro \
      clk_ignore_unused pd_ignore_unused cma=128M efi=noruntime quiet splash console=tty0 \
      snd_soc_x1e80100.i_accept_the_danger=True apparmor=0
    
    initrd /initrd.img-7.0.0-32-qcom-x1e
    devicetree /dtb_el2
}

but then it restarts. Can someone share a working grub entry for el2? thanks

Are you getting the internal microphone to work? I have a Lenovo Ideapad slim 5x, and I’ve managed to get the internal speakers to work but not the microphone. I’ve been following your write-up.

Try adding stubble.dtb_override=false to kernel parameters so your tree will load.

1 Like

Can I update current ubuntu to newer version via do-release-upgrade, or shall I install 26.04 from scratch?

I’m running this ubuntu version on an Dell XPS 13 9345 and do-release-upgradeworked without any issues.

EDIT
I built Jglathe kernel, and I booted to the system with kvm enabled. This answers me that either dtb or qcom kernel from ppa does not work right now with slbounce loading method.

ORIGIN
t14s (32gb no oled) el2: does anyone run kvm on kernel from ppa?
Linux t14s 7.0.0-32-qcom-x1e #32-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 21 00:33:58 UTC 2026 aarch64 GNU/Linux

I tried various grub entry configs but same result.
What I have noticed is when I compiled slbounce without SLBOUNCE_ALWAYS_SWITCH=1 it always boots to EL1 no matter which dtb (
x1e78100-lenovo-thinkpad-t14s.dtb or x1e78100-lenovo-thinkpad-t14s-el2.dtb).

(sltest gives me green bar)

When I compiled it with flag turned on, it hangs during boot and restarts (and from my understanding indicates that either kernel or dtb is incorrect).

my config:
/etc/grub.d/40_custom

#!/bin/sh
exec tail -n +3 $0

menuentry 'Ubuntu 7.0.0-32-qcom-x1e T14s [EL2 with 6.19-jg DTB]' {
    recordfail
    load_video
    set gfxpayload=$linux_gfx_mode

    insmod gzio
    insmod part_gpt
    insmod ext2

    search --no-floppy --fs-uuid --set=root 21f58603-6fbb-416d-8894-3197325dbcd5

    linux /vmlinuz-7.0.0-32-qcom-x1e \
        root=/dev/mapper/ubuntu--vg-ubuntu--lv ro \
        clk_ignore_unused pd_ignore_unused cma=128M efi=noruntime \
        quiet splash console=tty0 \
        snd_soc_x1e80100.i_accept_the_danger=True apparmor=0 \
        stubble.dtb_override=false id_aa64mmfr0.ecv=1

    initrd /initrd.img-7.0.0-32-qcom-x1e

    devicetree /dtbs/7.0.0-32-qcom-x1e/qcom/x1e78100-lenovo-thinkpad-t14s-el2.dtb
}
NAME                        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
nvme0n1                     259:0    0 953.9G  0 disk
├─nvme0n1p1                 259:1    0     1G  0 part  /boot/efi
├─nvme0n1p2                 259:2    0     2G  0 part  /boot
└─nvme0n1p3                 259:3    0 950.8G  0 part
  └─dm_crypt-0              252:0    0 950.8G  0 crypt
    └─ubuntu--vg-ubuntu--lv 252:1    0 950.8G  0 lvm   /

I’ll compile glathe’s kernel and see if same happens over there.

1 Like

The solution for a safe volume limit on X Elite laptops seems to be set the power amplifier to a value of 6 which equals 0 dB amplification. I wrote a script to change that on the Slim 7x.

Also, after some careful work using Room Eq Wizard and Carla I updated my attempt to map Dolby’s factory speaker tuning for the Slim 7x to Pipewire. I think it sounds good! You can check it out here:

Should be very easy to adapt this for any X Elite laptop that has been Dolby tuned.

Next step would be for someone to work out how to tap into Qualcomm’s V/I Sense speaker data (currently I believe it goes straight to the DSP blob) for Asahi Linux style smart amplification.

2 Likes

I just had a reboot and I have the feeling that these are more often with the newly installed system.
The system was nearly idle at the point in time and the logs show nothing of interest - only there is a gap in timestamps of about 80 seconds between reset and next boot:

andi@omnibook:~/temp$ journalctl -S 2026-05-03 | grep -e '07:25:.*' -o -e '07:26:3.*'
07:25:18 omnibook systemd[1]: Starting systemd-tmpfiles-clean.service - Cleanup of Temporary Directories...
07:25:18 omnibook systemd[1]: systemd-tmpfiles-clean.service: Deactivated successfully.
07:25:18 omnibook systemd[1]: Finished systemd-tmpfiles-clean.service - Cleanup of Temporary Directories.
07:26:37 omnibook kernel: rtc-pm8xxx c42d000.spmi:pmic@0:rtc@6100: registered as rtc0
07:26:37 omnibook kernel: rtc-pm8xxx c42d000.spmi:pmic@0:rtc@6100: setting system clock to 2026-05-03T05:26:37 UTC (1777785997)
07:26:37 omnibook kernel: qcom-pcie 1c08000.pci: supply vdda not found, using dummy regulator
07:26:37 omnibook kernel: qcom-pcie 1c08000.pci: supply vddpe-3v3 not found, using dummy regulator
07:26:37 omnibook kernel: qcom-pcie 1c08000.pci: host bridge /soc@0/pci@1c08000 ranges:
07:26:37 omnibook kernel: qcom-pcie 1c08000.pci:       IO 0x007c200000..0x007c2fffff -> 0x0000000000
07:26:37 omnibook kernel: qcom-pcie 1c08000.pci:      MEM 0x007c300000..0x007dffffff -> 0x007c300000

infos:

andi@omnibook:~/temp$ uname -a
Linux omnibook 7.0.0-14-generic #14-Ubuntu SMP PREEMPT_DYNAMIC Mon Apr 13 10:52:31 UTC 2026 aarch64 GNU/Linux
andi@omnibook:~/temp$ cat /proc/device-tree/model 
HP Omnibook X 14-fe0andi@omnibook:~/temp$ 

USB-C Screen not working

This problem has become much better with recent releases, I usually only need 1-3 tries when booting up. But since I currently have a situation again where > 10 tries could not bring back the the screen, and the error seems different from back in the day, here’s the dmesg:

[17634.377386] Hardware name: LENOVO 21N2S0NJ00/21N2S0NJ00, BIOS N42ET88W (2.18 ) 02/24/2025
[17634.377390] pstate: 614000c5 (nZCv daIF +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
[17634.377398] pc : clk_branch_toggle+0x194/0x1d0
[17634.377409] lr : clk_branch_toggle+0x194/0x1d0
[17634.377419] sp : ffff800083f7bb80
[17634.377423] x29: ffff800083f7bb90 x28: 0000000000000000 x27: 0000000000000000
[17634.377436] x26: 0000000000000000 x25: ffff0008117ff2e0 x24: 0000000000000001
[17634.377446] x23: 0000000000000000 x22: ffffa35c7aac4468 x21: 0000000000000001
[17634.377456] x20: ffffa35c04794768 x19: 0000000000000000 x18: 0000000000000000
[17634.377466] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000
[17634.377476] x14: 0000000000000000 x13: 6f27207461206b63 x12: 7574732073757461
[17634.377487] x11: 0000000000000000 x10: 0000000000000000 x9 : ffffa35c79e6d648
[17634.377497] x8 : 0000000000000000 x7 : 0000000000000000 x6 : 0000000000000000
[17634.377506] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
[17634.377516] x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
[17634.377526] Call trace:
[17634.377530]  clk_branch_toggle+0x194/0x1d0 (P)
[17634.377544]  clk_branch2_enable+0x24/0x48
[17634.377555]  clk_core_enable+0x98/0x258
[17634.377565]  clk_enable+0x34/0x88
[17634.377573]  clk_bulk_enable+0x3c/0xd8
[17634.377583]  msm_dp_ctrl_link_clk_enable+0xcc/0x2e8 [msm]
[17634.377738]  msm_dp_ctrl_enable_mainlink_clocks+0x9c/0x118 [msm]
[17634.377827]  msm_dp_ctrl_on_link+0xc0/0x3f8 [msm]
[17634.377905]  msm_dp_display_process_hpd_high+0x15c/0x250 [msm]
[17634.377983]  msm_dp_hpd_plug_handle.isra.0+0xb0/0x230 [msm]
[17634.378060]  hpd_event_thread+0x2d8/0x4a0 [msm]
[17634.378136]  kthread+0x10c/0x128
[17634.378146]  ret_from_fork+0x10/0x20
[17634.378155] ---[ end trace 0000000000000000 ]---
[17634.378186] Failed to enable clk 'ctrl_link': -16
[17634.378196] [drm:msm_dp_ctrl_enable_mainlink_clocks [msm]] *ERROR* Unable to start link clocks. ret=-16
[17634.378290] [drm:msm_dp_display_process_hpd_high [msm]] *ERROR* failed to complete DP link training

Maybe that will help track this down further.

Yes, I especially had the reboots when the system was idle. I also don’t remember seeing anything special in the logs. I have reverted to 6.19 for now.

Is it just by chance or is there a pattern that shortly before the system resets, systemd performs some background task (here at 18:40:05):

May 05 18:40:05 omnibook systemd[1]: Starting sysstat-collect.service - system activity accounting tool...
May 05 18:40:05 omnibook systemd[1]: sysstat-collect.service: Deactivated successfully.
May 05 18:40:05 omnibook systemd[1]: Finished sysstat-collect.service - system activity accounting tool.
-- Boot 54a298d9c88f47468ba15230b32941b7 --
May 05 18:43:00 omnibook kernel: rtc-pm8xxx c42d000.spmi:pmic@0:rtc@6100: registered as rtc0
May 05 18:43:00 omnibook kernel: rtc-pm8xxx c42d000.spmi:pmic@0:rtc@6100: setting system clock to 2026-05-05T16:43:00 UTC (1777999380)
May 05 18:43:00 omnibook kernel: qcom-pcie 1bf8000.pci: iATU: unroll T, 8 ob, 8 ib, align 4K, limit 1024G
May 05 18:43:00 omnibook kernel: qcom-pcie 1c08000.pci: supply vdda not found, using dummy regulator
May 05 18:43:00 omnibook kernel: qcom-pcie 1c08000.pci: supply vddpe-3v3 not found, using dummy regulator
May 05 18:43:00 omnibook kernel: qcom-pcie 1c08000.pci: host bridge /soc@0/pci@1c08000 ranges:
May 05 18:43:00 omnibook kernel: qcom-pcie 1c08000.pci:       IO 0x007c200000..0x007c2fffff -> 0x0000000000
May 05 18:43:00 omnibook kernel: qcom-pcie 1c08000.pci:      MEM 0x007c300000..0x007dffffff -> 0x007c300000
May 05 18:43:00 omnibook kernel: xhci-hcd xhci-hcd.2.auto: xHCI Host Controller

slim 7x speaker and microphone started working after upgrade to 26.04 :slight_smile:

I think pipewire upgrade did it? still on 7.0.0-32-qcom-x1e not sure when it would be viable to go back to stock kernel (if ever)

2 Likes

should definitely consider setting "/usr/share/alsa/ucm2/codecs/wsa884x/four-speakers/SpeakerSeq.conf" "PA Volume' 12" to "PA Volume' 6" for all 4 speakers. this sets the smart amplifier to 0 dB for a safer upper volume limit.

also I have a nice script to install Dolby’s speaker tuning on Linux I posted 6 posts up ^ . interested in feedback on if it sounds good.

Gave Dolby setup a shot on my Slim 7x (7.0.0-32-qcom-x1e), unfortunately not much luck. Can’t say it wasn’t user error..

ALSA UCM from GitHub seemingly broke audio. The wsa_macro DSP driver loaded with a warning and pipewire crash looped, failing to start. Stock alsa-ucm-conf package works fine. Clearing ALSA state (rm /var/lib/alsa/asound.state) didn’t help.

Kernel errors with that UCM:

wsa_macro 6aa0000.codec: using zero-initialized flat cache, this may cause unexpected behavior
snd-x1e80100 sound: ASoC: Parent card not yet available, widget card binding deferred
snd_soc_x1e80100: unknown parameter 'i_accept_the_danger' ignored

Pipewire crash loop:

spa.filter-graph: can't load plugin type 'lv2': No such file or directory
pw.conf: could not load mandatory module "libpipewire-module-filter-chain": No such file or directory
default: failed to create context: No such file or directory

With stock UCM, audio works but the Dolby pipewire config still fails.. same LV2 error above. The libpipewire-module-filter-chain module can’t load even with libpipewire-0.3-modules, lsp-plugins, calf-plugins, and bankstown-lv2 all installed.

The slim7x-audio-patch.sh PA Volume tuning seems to work though!!

1 Like

yes, i think UCM git is no longer required, and maybe not the i-accept-the-danger flag either.

your problem is a basic lv2 plugin problem, and not specific to my pipewire .conf

could be this

someone else solved it by pulling libspa-filter-graph-plugin-lv2.so from pipewire-module-filter-chain-lv2-1.6.2-1.fc44.aarch64.rpm.

on the Dolby side, I found an even better way to convert their Slim 7x speaker correction curves to impulse reponses using rePhase (https://rephase.org/) so will update my github soon. You could actually run a very minimal pipewire .conf using just the impulse responses, but you would still need limiters which are LV2 plugins.

I have a Lenovo Ideapad slim 5x, so it isn’t the same as your laptop, but have you been able to get the internal microphone to work? I have internal speakers working, but no internal microphone. I have successfully used the asla github download from Jens Glathe for the speakers, but I haven’t got the mic to work. My kernel is 7.0.0-32-qcom-x1e and Ubuntu 26.04.