Ubuntu 24.10 Concept ♥️ Snapdragon X Elite

I’ve also read these, I’m afraid we need to wait. Way beyond my skill level. Re 4k@120: with 4 lane dp altmode now possible. I have seen reports from the Yoga Slim 7X crowd that they have this.

Just to add to the topic of external displays:
ASUS Vivobook S15 S5507QAD with x1e78100, since last week running on 6.15.0-jg-5
I use two external screens on daily basis for about two months now, both 2560x1440@60Hz
One on usb-c dock with DisplayPort, second is on usb-c to HDMI adapter.
Works OK.

To fix the sound on your Thinkpad T14s Snapdragon X Elite, you can follow these steps, keeping in mind that enabling sound is currently experimental

OS: Ubuntu 24.10, 6.14.0-35-qcom-x1e #35-Ubuntu SMP PREEMPT_DYNAMIC Wed May 7 15:45:22 UTC 2025

Extract Firmware: Ensure you have extracted the necessary firmware files from your Windows installation using the qcom-firmware-extract tool. If you overwrote Windows, you may need to reinstall it to extract the firmware, or look for OEM-provided downloads if available for your specific model.
These files are typically placed in /lib/firmware/qcom/x1e80100/LENOVO/21N1/. As of February 7, 2025, T14s firmware is committed to linux-firmware upstream, so qcom-firmware-extract might no longer be strictly necessary for these files on T14s.

# Update ALSA UCM Configuration
# Clone the alsa-ucm-conf repository and copy the ucm and ucm2 directories to /usr/share/alsa/:
  sudo apt install git
  git clone https://github.com/joske/alsa-ucm-conf
  sudo cp -R -f alsa-ucm-conf/ucm /usr/share/alsa/
  sudo cp -R -f alsa-ucm-conf/ucm2 /usr/share/alsa/

# Download ALSA Topology Firmware:
# Copy all files from the /pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/x1e80100/LENOVO/21N1 directory into /lib/firmware/qcom/x1e80100/LENOVO/21N1
  cd /lib/firmware/qcom/x1e80100/LENOVO/21N1
  export LENOVO_21N1_URL=https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/qcom/x1e80100/LENOVO/21N1
  sudo wget "$LENOVO_21N1_URL/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin"
  sudo wget "$LENOVO_21N1_URL/adsp_dtbs.elf"
  sudo wget "$LENOVO_21N1_URL/cdsp_dtbs.elf"
  sudo wget "$LENOVO_21N1_URL/qcadsp8380.mbn"
  sudo wget "$LENOVO_21N1_URL/qccdsp8380.mbn"
  sudo wget "$LENOVO_21N1_URL/qcdxkmsuc8380.mbn"
  sudo wget "$LENOVO_21N1_URL/qcvss8380.mbn"

# Create a symlink for the topology file if it's expected in a different location (e.g., /lib/firmware/qcom/x1e80100/):
  sudo ln -s /lib/firmware/qcom/x1e80100/LENOVO/21N1/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin /lib/firmware/qcom/x1e80100/X1E80100-LENOVO-Thinkpad-T14s-tplg.bin

# Load the Sound Module:
  sudo rmmod snd_soc_x1e80100
  sudo modprobe snd_soc_x1e80100 i_accept_the_danger=True

# Add snd_soc_x1e80100.i_accept_the_danger=True to your kernel command line in /etc/default/grub.
  vi /etc/default/grub
  GRUB_CMDLINE_LINUX_DEFAULT="quiet splash snd_soc_x1e80100.i_accept_the_danger"
  sudo update-grub

The sound quality leaves much to be desired. If you insert wired headphones into the audio jack, you can hear noise all the time.

Also I found the following error in dmesg output:

[ 2807.754987] input: X1E80100-LENOVO-Thinkpad-T14s Headset Jack as /devices/platform/sound/sound/card0/input10
[ 2916.944784] wcd938x_codec audio-codec: Impedance detect ramp error, c1=3, x1=0x0

In addition to sound problems, the system periodically crashes and shows a black screen with intramfs

Also I see that the battery indicator is broken
Screenshot From 2025-06-09 14-08-54

maybe related to the following:

[    2.371817] qcom_battmgr.pmic_glink_power_supply pmic_glink.power-supply.0: unknown notification: 0x83
[    4.350295] synth uevent: /devices/platform/pmic-glink/pmic_glink.power-supply.0/power_supply/qcom-battmgr-ac: failed to send uevent
[    4.350305] power_supply qcom-battmgr-ac: uevent: failed to send synthetic uevent: -11
[    4.350375] synth uevent: /devices/platform/pmic-glink/pmic_glink.power-supply.0/power_supply/qcom-battmgr-bat: failed to send uevent
[    4.350377] power_supply qcom-battmgr-bat: uevent: failed to send synthetic uevent: -11
[    4.350419] synth uevent: /devices/platform/pmic-glink/pmic_glink.power-supply.0/power_supply/qcom-battmgr-usb: failed to send uevent
[    4.350421] power_supply qcom-battmgr-usb: uevent: failed to send synthetic uevent: -11
[    4.350457] synth uevent: /devices/platform/pmic-glink/pmic_glink.power-supply.0/power_supply/qcom-battmgr-wls: failed to send uevent

Another strange log entry in dmesg:

[    2.301483] msm_dpu ae01000.display-controller: Direct firmware load for qcom/gen70500_sqe.fw failed with error -2
[    2.301490] msm_dpu ae01000.display-controller: [drm:adreno_request_fw [msm]] *ERROR* failed to load gen70500_sqe.fw

I also ordered a second T14s Gen6 Snapdragon X Elite so I will be feeling 2x the pain, stay tuned. I am willing to help in any way I can if needed.

1 Like

Instability under load

I increasingly have jobs that run longer, e.g. 5min. The laptop randomly resets during such loads (no bluescreen, just reboot). Utilising more cores definitely increases the likelihood, but it happens even when just maxing out a single core. I keep track of the temperature sensor, and that does not seem to be the problem (assuming that it shows the correct temperature).

It seems more likely that these jobs trigger RAM issues, tbh. But I already have mem=31G in my grub.cfg and htop correctly shows only 29.1GB…

Anyone else experiencing this with the T14s 64GB model? Or could stress-test it?

edit: I am on 25.04 with 6.14.0-35-qcom-x1e. I don’t remember having any these issues on 24.10, but I rarely maxed out a core for more than a minute before.

What temperature do you read?

I’ve configured mine to not use more than 4 cores, which keeps it a bit above 80 when loaded.

Yesterday I succesfully build a kernel using 8 cores. It was steady above 90, hitting 96 now and then. The T14s was on a stand though, so it could ventilate/radiate.

edit: I tried to find the highest amount of memory possible, and am now running with mem=32256M

1 Like

Is there someone who has a problem with unexpected wakes from sleep? The system goes to sleep, I close the lid and sometimes after few minutes it can wake itself. I see it because the power LED is not blinking, but lit still.
I have Lenovo Yoga Slim 7x.

As a workaround I could make a script that checks the lid state and go sleep again if the lid is closed, but I couldn’t find a way to check the state.

Sometimes I see a blue screen of death for a few seconds, after which the system reboots and a black screen with initramfs appears.
Screenshot of kernel panic after exiting from initramfs:

The longest time I managed to keep the laptop running was 1.5 days.

I have temperatures below 90° all the time. If I use 6 cores, it stays in the 70°s, but I also have it on a stand that is completely open under the fan area.

I have done some more testing on this, and I am fairly certain it’s not the CPUs. If I quit all apps and reduce RAM usage, then kick off something that puts full load on even 9 CPUs (but does not use crazy amounts of RAM), the system keeps going for half an hour+.

So there is RAM instability, even with mem=31G which is less than 32256M :thinking:

1 Like

Is there any news about Surface Pro 11 with X1P?

Thank you for your excellent work on this!

I have a brand new t14s. Of course, I blew away the stock Windows install. Am I reading correctly that the firmware from Windows is not needed for the t14s? Mostly working beautifully but I cannot control the brightness.


# lshw -C video
  *-graphics                
       product: msmdrmfb
       physical id: 8
       logical name: /dev/fb0
       capabilities: fb
       configuration: depth=32 resolution=1920,1200

Do I need to recover Windows and the firmware for the brightness control to work?

1 Like

Brightness control doesn’t work on my T14s either and I did extract firmware from Windows. I have the same output as you from

So I guess we just have to wait for updates or fix it ourselves (which I don’t have the skills for).

I was under the impression that brightness controls work if you’re using the right dtb for the panel you have. I certainly know that dtb that was shipped with 6.14.0-35-qcom-x1e works for me. dtbs that came with @glathe 's kernels do not have working brightness (2880x1800 OLED display).

On that note, I’m currently running 6.15.0-jg-5-qcom-x1e kernel. I tried the 6.16-rc kernels but both had issues - one is that ghostty is super slow (I think on rc1 and rc2), while on rc2 the whole system is sluggish, there is keyboard drop-outs and character stuck repeating until you press another (I think that might be the same issue) etc. Not good.

I also have random lockups happening… i’d say daily, sometimes more often, sometimes less. No usage pattern that I noticed, a lot of free RAM and the CPU is not running at full tilt (well, sometimes :).

In summary, I’m using this machine as a daily driver but it is a little bit of a pain. I’m really hoping for better kernel support in the next few versions because. It does suffer from some slow performance on some web pages, which is quite unacceptable from a machine in this price range, but that is probably also a Linux driver issue. I won’t subject myself to daily usage of Windows to find out if it’s better there or is this a real hw performance issue. I’d say it’s not.

Hi @bepok, I also use the machine as a daily driver. I expected better Linux support faster, Qualcomm and Lenovo do a really bad job here. It helps that ext4 is very robust :).

Brightness control works for me on the t14s oled 2880x1800 with @glathe 's kernel (6.16 rc1 and rc2). However, starting with 6.16, I can also see

“the whole system is sluggish, there is keyboard drop-outs and character stuck repeating until you press another” problem.

Also the mouse pointer is freezing for some seconds before recovering. I can also see, if that is happening, that the NetworkManager and wpa_supplicant are periodically consuming 100% CPU on one core. From my observation while 6.15.x kernels crashed immediately due to the Wi-Fi bug, now 6.16.x shows those symptoms you describe. This bug is triggered if I switch networks or Wi-Fi roams between APs in a Unifi system (moving around in the office).

I still don’t know how to recover from this state without reboot. Restarting NetworkManager did not help. Maybe resetting the Wi-Fi device somehow might help?

That’s interesting… The wi-fi crash for me happened on the concept kernels (6.14.0-35 as mentioned above, from which I’m using the device tree), that’s the reason I started using @glathe kernels, 6.15.0-jg-5 has been reasonably solid for me. Wi-fi definitely works on it without issues. I mean, who knows, maybe the crashes are still wi-fi related, but it freezes hard and there is nothing in the logs to see what is going wrong.

I have no idea how get some proper logs for a bug report, does this machine have a jtag port or something similar that I could solder to get serial output from the board? Just thinking aloud, it might not be as easy because Linux is not the only thing running, the issue might as well be connected to Gunyah.

By bad, you are right. The Wi-Fi crashes happened on the 6.14.x concept kernels. I had frequent crashes on 6.15.x due to issues in the area around external display/usb-c dock and adding/removing power. That was the reason I tried to switch to 6.16.x which seems to work better with stuff connected to usb-c but now with another Wi-Fi issue it seems.

I too was expecting linux support to improve faster on these devices, as I’ve been running linux all kinds of much more obscure arm-devices for over 16 years now. Also the buggy BIOS from Lenovo (and still no fix?) is not quite expected.

My T14s 64GB LCD is still at (latest) 6.14. I could not find any 6.15 to run as reliable as 6.14, and 6.16 is indeed sluggish. All native kernels (on NixOS).

I’v tried ~ubuntu-concept/+git/linux-qcom-x1 - [no description] with ubuntu_defconfig but it fails to find the nvme and keyboard, likely because the initrd is missing modules.

Is it somehow possible to see the difference between Ubuntu kernel source and upstream?

I’m currently using 6.15.0-jg-7 on the Thinkbook 16 with X1-45 GPU acceleration (yay!). It doesn’t seem to have severe ath12k issues or the mentioned sluggishness of the 6.16rc builds. What I see is quite some PCIe AER messages from ath12k:

[18958.268436] pcieport 0004:00:00.0: AER: Correctable error message received from 0004:01:00.0
[18958.268542] ath12k_pci 0004:01:00.0: PCIe Bus Error: severity=Correctable, type=Physical Layer, (Receiver ID)
[18958.268553] ath12k_pci 0004:01:00.0:   device [17cb:1107] error status/mask=00000001/0000e000
[18958.268563] ath12k_pci 0004:01:00.0:    [ 0] RxErr                  (First)
[18958.752600] pcieport 0004:00:00.0: AER: Correctable error message received from 0004:01:00.0
[18958.752657] ath12k_pci 0004:01:00.0: PCIe Bus Error: severity=Correctable, type=Physical Layer, (Receiver ID)
[18958.752668] ath12k_pci 0004:01:00.0:   device [17cb:1107] error status/mask=00000001/0000e000
[18958.752678] ath12k_pci 0004:01:00.0:    [ 0] RxErr                  (First)

Never seen them with software rendering, though, so entering an active GPU into the mix seems to create some friction.
Overall I’m rather happy with that build. Even suspend/resume seems to be in good shape.

1 Like

I experienced same ath12k issues on 6.16. It seems that linux-next current kernel branch (I tested next-20250620) has solved the issue. I have no more hangs when connecting/disconnecting wifi. 100% cpu for network manager is gone. Might be interesting to look into cherry picking that fix somehow for Ubuntu.

1 Like

Thank you for the hint. I took the approach to look for the merge commits from ath and wifi, and added them to 6.16-0-rc2-jg-1. Running it now on the ThinkBook 16 (the sole remaining ath12k device), and looking good so far. There were oddities with active X1-45 GPU, like a flurry of AER messages from ath12k, not seen any now. it’s on Google Drive for testing.

1 Like

Thanks for the build, it looks like cherry-picking the fixes solved the Wi-Fi issue. No crash or strange behavior since about 9h of uptime with 6.16-0-rc2-jg-1 on my t14s. I will see tomorrow in the office how it will hold up with multiple access points.

@glathe Maybe I missed it above, do you push your branches somewhere public?