Ubuntu Concept ♥️ Snapdragon X Elite

For someone who doesn’t know, what’s the difference regarding DP altmode lanes compared to 6.15.0-rc6-jg-4?

The current limit was 2 lanes, making it barely possible to run 4k@60 if the display supports HBR3 rates (810MHz pixel clock). With 4 lanes available it doesn’t need to go this high and can do higher refresh rates, too.
folks on #aarch64-laptops reported 4k@120 :slight_smile: On more than one display simultaneously.

1 Like

@glathe Does your ISO cover on the Asus Vivobook S15 model for Snapdragon X Plus (X1P-42-100) chip model? From reading on it, it seems it is not yet covered by qualcomm drivers. I don’t know where to check the update on that when qualcomm eventually decides to release. Where do you check that information?

Hi, welcome to this forum. Yes, it was one of the first supported. But it is not an install ISO, its a dedicated boot image with preinstalled desktop - like on the RPi from where it is derived.
The support for the Purwa SoC (x1p-42-100, x1-26-100) is not yet in the mainstream kernel, but its improving. Newer Concept X1E ISOs should contain a kernel that has them. The dtbs required (although a few exist) are mostly not even on the kernel mailing list. I’m currently upstreaming the ThinkBook 16 dtb, and its… an experience. Will do the others. It is not my day job, though.

3 Likes

Thanks for the reply as well as the link to the ISO, I have been tracking progress through your account here and also on github. I am aware BTW that it isn’t your day job, its more like a hobby on the side. So basically I have to check the kernel tracker to see when it gets pushed in the kernel. I thought there was some qualcomm page to see the tracking update for the progress. Well thanks for putting me in the right direction. Side question, how do you do this all by yourself, what’s the pathway to find dtbs and testing and forming your own ISOs, is there any documentation you follow? I would like to help too but I have no idea where to even start.

1 Like

Hi @xistance, I don’t know what to recommend. I’m not a librarian myself, and more of a documentation-hater than most. So despite the best intentions it’s still all bits and pieces everywhere. My IMG’s are sort of hand-crafted, I have a debootstrap_setup which I peruse to remember the sequencing. Never intended to make more than one :clown_face: I actually did modify the pop-os ISO builder to create an image for my X13s and learned a lot, but never pulled through for the Ubuntu ISO builder (yet).
I read (and sometimes write) on #aarch64-laptops on irc/Element, one of the most useful signals to watch changes / developments. I usually have Element open. Also reading on lkml/lore. There is a qcom-next tree, but I have used it rarely.
I am quite happy that Ubuntu-Concept X1E exists and has taken on the issue of making Linux actually installable on these types of devices. Now if providing a new dtb / kernel would be even easier, that would be great <insert Lumbergh meme here>.

2 Likes

Thanks for the links and pointers glathe - I have been meaning to (try to) build my own ubuntu image for Surface Pro X for a long time - I think most of the necessary files are available at Surface Pro X Github, but its only for Arch Linux.
I have started to build Arch from there a couple of times but I got frustrated and gave up everytime :smile:

1 Like

I got a little ahead of myself and tried the proposed update “dracut 107-1ubuntu1” before release and can verify that it works.

For the first time I actually got the ubuntu-splash window for the encrypted password at boot on my Lenovo Yoga slim 7x :smiley:

I dont recommend others to try just yet since it broke some other things for me - but im glad to see that a fix is coming :slight_smile:

1 Like

The Ubuntu_Desktop_24.10_ThinkBook16_6.15rc.img file booted successfully on the Ideapad 5, but the installer crashed. (see picture)


The touchpad and the external mouse do not work. The touch screen does not work either. (I navigated through the installer using the keyboard.)

1 Like

Nice, congratulations! You used the same USB stick multiple times for your tries I assume. Please burn the image fresh with the necessary modifications, could be that it would get further. Did you try external keyboard?

For better support it would be required to derive the i2c bus and addresses from the DSDT. I saw that the Ideapad 5 is actually on aarch64-laptops/build. Keyboard and touchpad are on i2c7 (on the TB16 they are on i2c2).

I don’t know that much about it, can you make an image for the Ideapad 5?

I have the 5x variant with I assume the same processor: Snapdragon X Plus - X1P42100?
I noticed today that support for the Plus processor is in 6.16 kernal.
I cant afford to be without my laptop to try installing - however happy to provide info from W11 if required, and someone can point me around.

2 Likes

After couple of unsuccessful attempts, I finally have Ubuntu installed with dual boot working on Windows on Lenovo Yoga Slim 7x. Windows install is decrypted, while Ubuntu is encrypted ext4 on LUKS. I tried ZFS w/ LUKS but that did not work. 25.04 non-concept image install did not work for me.(Error posted here: FAQ: Ubuntu 25.04 on Snapdragon X Elite - #9 by varunpriolkar)

However I had a major issue with qcom-firmware-extract failing to find the Windows install to install the firmware.

varun@varun-yoga:~$ sudo qcom-firmware-extract
error: Failed to find windows partition

This is what my disk setup looks like:

nvme0n1                     259:0    0 953.9G  0 disk  
├─nvme0n1p1                 259:1    0   260M  0 part  /boot/efi
├─nvme0n1p2                 259:2    0   128M  0 part  
├─nvme0n1p3                 259:3    0 206.5G  0 part              <--------Windows partition
├─nvme0n1p4                 259:4    0     2G  0 part  
├─nvme0n1p5                 259:5    0     2G  0 part  /boot
└─nvme0n1p6                 259:6    0 743.1G  0 part  
  └─dm_crypt-0              252:0    0   743G  0 crypt 
    └─ubuntu--vg-ubuntu--lv 252:1    0   743G  0 lvm   /

Fix:

Download the script from: https://git.launchpad.net/~ubuntu-concept/ubuntu/+source/qcom-firmware-extract/plain/qcom-firmware-extract?h=main

Set the part and nobitlocker variable correctly and run the script. That managed to get the firmware files for me.

varun@varun-yoga:~$ sudo bash qcom2 
Mounting Windows partition nvme0n1p3...
Extracting firmware
	adsp_dtbs.elf
	adspr.jsn
	adsps.jsn
	adspua.jsn
	battmgr.jsn
	cdsp_dtbs.elf
	cdspr.jsn
	qcadsp8380.mbn
	qccdsp8380.mbn
	qcdxkmsuc8380.mbn
Building package qcom-x1e-firmware-extracted_20250601_arm64...
Installing qcom-x1e-firmware-extracted_20250601_arm64...
update-initramfs: Generating /boot/initrd.img-6.14.0-35-qcom-x1e
find: ‘/lib/firmware/updates/qcom/x1e80100’: No such file or directory
find: ‘/lib/firmware/qcom/x1p42100’: No such file or directory
find: ‘/lib/firmware/updates/qcom/x1p42100’: No such file or directory
Using DTB: qcom/x1e80100-lenovo-yoga-slim7x.dtb
Installing /lib/firmware/6.14.0-35-qcom-x1e/device-tree/qcom/x1e80100-lenovo-yoga-slim7x.dtb into /boot/dtbs/6.14.0-35-qcom-x1e/qcom/x1e80100-lenovo-yoga-slim7x.dtb
Taking backup of x1e80100-lenovo-yoga-slim7x.dtb.
Installing new x1e80100-lenovo-yoga-slim7x.dtb.
System running in EFI mode, skipping.
Done! Reboot to load the added firmware files. 
umount: /tmp/fwfetch.fvus4vH7/dislocker: not mounted

Yes, this is the same processor.
Lenovo IdeaPad 5 2-in-1
14", Snapdragon X Plus X1P-42-100, 16 GB, 1000 GB

1 Like

I tried linux-image-6.15.0-jg-4-qcom-x1e but wifi was very unstable for me. Frequent disconnects and lots of packet loss. Seems much more stable on linux-image-6.14.0-35-qcom-x1e but have bit more packet loss than I’d like. Wifi connection to router is strong and have no problems on Windows or other devices.

Device: Lenovo Yoga Slim 7x
Dmesg output during disconnection with linux-image-6.15.0-jg-4-qcom-x1e:

[ 1334.713319] wlP4p1s0: deauthenticating from c6:50:9c:de:27:e2 by local choice (Reason: 3=DEAUTH_LEAVING)
[ 1335.002784] wlP4p1s0: authenticate with c6:50:9c:de:27:e2 (local address=c8:a3:e8:c7:xx:xx)
[ 1335.002805] wlP4p1s0: send auth to c6:50:9c:de:27:e2 (try 1/3)
[ 1335.027463] wlP4p1s0: authenticate with c6:50:9c:de:27:e2 (local address=c8:a3:e8:c7:xx:xx)
[ 1335.027475] wlP4p1s0: send auth to c6:50:9c:de:27:e2 (try 1/3)
[ 1337.035920] wlP4p1s0: send auth to c6:50:9c:de:27:e2 (try 2/3)
[ 1337.039792] wlP4p1s0: send auth to c6:50:9c:de:27:e2 (try 3/3)
[ 1339.068105] wlP4p1s0: authentication with c6:50:9c:de:27:e2 timed out
[ 1339.078501] ath12k_pci 0004:01:00.0: failed to send HAL_REO_CMD_FLUSH_CACHE, tid 13 (-105)
[ 1339.394220] wlP4p1s0: authenticate with c4:50:9c:e5:27:e3 (local address=c8:a3:e8:c7:xx:xx)
[ 1339.394242] wlP4p1s0: send auth to c4:50:9c:e5:27:e3 (try 1/3)
[ 1339.407676] wlP4p1s0: authenticate with c4:50:9c:e5:27:e3 (local address=c8:a3:e8:c7:xx:xx)
[ 1339.407697] wlP4p1s0: send auth to c4:50:9c:e5:27:e3 (try 1/3)
[ 1339.411710] wlP4p1s0: authenticated
[ 1339.412087] wlP4p1s0: associate with c4:50:9c:e5:27:e3 (try 1/3)
[ 1339.421857] wlP4p1s0: RX AssocResp from c4:50:9c:e5:27:e3 (capab=0x1011 status=0 aid=15)
[ 1339.436478] wlP4p1s0: associated

I had hoped this might fix/reduce the problems with my external monitor, but as with the 6.15-rc-*, it still stays black.

Will have to stay with 6.14 for now…

Well I need to ask. What external display, what adapter (or is it type-c direct cable)? There are boxes where it works nicely in every orientation on all ports, sometimes only one orientation, sometimes not all ports. 6.15.0-jg-4 has good debug code and has proven pretty stable here. I got my HP X14 dtb fixed so that it supports now dp Altmode on 4 lanes in all orientations on both type-c connectors, with PS8830 retimer (40Gbps) and without (10Gbps). I have some adapters here which don’t support 4 lanes (and don’t support HPR3, 810MHz clock), those seem to be problematic. Maximum is 2k@75 with these.

Thanks! I describe the problems in more details here:

Laptop is T14s 64GB non-oled

Philips Consumer Electronics Company PHL 279P1 UK82111000137
(27" 4k)

Direct USB-C cable.

There are no difference between both USB-C ports for me. It did work okay-ish with early 6.14 kernels, after that it got worse, and now it doesn’t work at all anymore (see post above for details).

I can provide debug information if you tell which one might be helpful and where to post it to!

1 Like

Maybe you could try plug/unplug on both ports, both orientations, and send me the dmesg when you booted the 6.15.0-jg-4 kernel. You could open an issue on my repo.

1 Like