With a bit more vibing touchscreen & on-screen keyboard are working.
Ollama → glm5.2:cloud → hermes
Surface Pro 11 (Snapdragon X Elite) — Touchscreen Fix on Linux
Hardware: Microsoft Surface Pro 11 (OLED), Qualcomm Snapdragon X Elite (X1E80100)
Kernel: 7.2-rc5-jg-0sp11v3-qcom-x1e (custom kernel from jglathe’s linux_ms_dev_kit repo)
Touchscreen: Microsoft Surface G6 Touch (MSHW0485), connected via SPI (not I2C/HID)
The touchscreen was completely dead — no input events, no device in
/proc/bus/input/devices. The root cause was a chain of failures:
The Qualcomm GENI SPI controller (at address a88000.spi) failed to
initialize with the error:
geni_spi a88000.spi: Invalid proto 9
The GENI Serial Engine wasn’t configured for SPI mode. The touchscreen
is connected via SPI (Qualcomm GENI QUP), not I2C or HID like most
touchscreens.
Because the SPI bus never came up, the touchscreen device was never
registered, so the mshw0485_touch driver had nothing to bind to.
This also caused a cascade of deferred probe failures — interconnect,
clock controller, and power domain all reported:
WHAT WAS ALREADY IN PLACE (from the custom kernel)
The custom kernel already shipped with:
A patched spi_geni_qcom driver with a module parameter:
sp11_windows_se_init
This tells the GENI SPI driver to use a captured Windows cold-init
sequence to properly configure the Serial Engine for QSPI mode.
An out-of-tree mshw0485_touch driver (Microsoft Surface G6 MSHW0485
touchscreen, from the SP11 reverse-engineering project).
The gpi DMA module (GPI DMA descriptor mode for SPI transfers).
The QUP firmware at /lib/firmware/qcom/x1e80100/qupv3fw.elf.zst
But none of it worked without the module parameter being set.
This enables the captured Windows SP11 QSPI cold SE initialization
sequence. Without it, the GENI SE reports “Invalid proto 9” and the
SPI bus never works. With it, the driver accepts protocol 9 as QSPI
and applies the exact Windows cold-init sequence.
Created /etc/modules-load.d/sp11-touch.conf:
mshw0485_touch
spi_geni_qcom
Ensures both modules load at boot (the touchscreen driver doesn’t
auto-load without the SPI bus being up first).
Rebuilt the initramfs:
sudo update-initramfs -u
So the module parameter is picked up early during boot.
The touchscreen now appears as an input device with multitouch support
(ABS events, PROP=2 continuous). It is registered as /dev/input/event1
with mouse0 handler.
The custom kernel and touchscreen driver come from jglathe’s
linux_ms_dev_kit project and the SP11 reverse-engineering project.
The key insight is that the GENI SPI controller needs the Windows
cold-init sequence to work on the Surface Pro 11 — the stock Qualcomm
driver doesn’t know how to configure the SE for this device’s QSPI
setup.
I’m sorta useless re cdsp. Only reading it in the forums, not trying anything with it. Others put a lot of energy into it, IMO it is another level of inaccessible vs. adsp.
wich kernel tho right now works most with the ASUS Vivobook S15 on the X1P42100. is there a link to one where atleast the internal display and build in audio works?
My kernels since 7.1.3 do. You can use the new and improved extended Resolute ISO from August 4 if you want to do a complete install. In the KERNEL_PKG partition there is 7.1.5-jg-0 for install. There’s also a Wiki for these images (and the repo contains the source trees, too). It needs some update on the newest findings, I hope I will get them out soon. I don’t have the Vivobooks, but Installed a few times on other targets:
Ideapad 5 2in1: works well
Ideapad Slim5x OLED: works well
Thinkpad T14s 64GB OLED: works well
Snapdragon Dev Kit X1E001DE: nightmare-ish. But installing via a working laptop on the target SSD works well, again.
Overall the installer has evolved quite a bit, too. Nice job.
hi there,
thank you for all of your working on the enablement to get ubuntu running on the snapdragon based socs.
could some kind soul tell me what the current status is for the following model?
Acer Aspire 14 AI A14-11M
i’m blind so may find it trick to test anything,
thank you for the hard work that again has been done in this space.
here’s a bug that someone reported re this model.
Hello, I have a Lenovo Ideapad Slim 3x-15q8x10-WCN7850 laptop. I installed your ISO, but it only boots by editing the GRUB directory and changing the path to /boot/arquivo.dtb. So far so good, but the problem is that many things are missing, such as sound, Wi-Fi, touchpad, and the Fn key; they don’t work. I even installed the latest kernel from your Google Drive. Do you have any idea what the problem might be?
Interestingly I was having screen problems (image corruption artifacts and half screens after resume from suspend) before but after installing the update they are all resolved.
Hello, @glathe I have been trying to get my ASUS S15 working correctly since 25.04, upgraded to 26.04. Just clean installed the above extended resolute iso from Aug 4. This has worked but the kernel went backward from (7.0.32.32 qcomx1e) to 7.0.29. I have tried updating kernel several times now, but upon startup faced with a black screen and have to revert. I must be missing something but I cant update to your fixes (well documented) for this ASUS S15 Qcomx1e. Please help. Thanks Noel
I don’t expect any improvements in Ubuntu 26.04 LTS, beside the kernel. However, with Ubuntu 26.04.02 you will get the new kernel from Ubuntu 26.10
For me, as someone who wants to use it productively and without any hobby repos I will try again with Ubuntu 28.04. Sadly I have to use Windows until now.
Hi @renanmontano, that’s sort of a multi-dimensional issue I’m afraid. There is a wiki for the post-install stuff, I need to update with latest findings (like, the importance and handling of flash-kernel). Anyway, it should point the way on the whys.
Now to the specifics of your Slim3x model. Model number would help. Starts wit 83, mine is 83N30004GE There are a few different, it being WCN7850 may sound like its more like mine. Touchpad is EC-controlled and gated onto a shared interrupt with the keyboard, which is a nightmare on Linux. There are variants that work well with a virtual gpio mux, and some (like mine) that don’t. I have built a special polling-capable i2c-hid driver that makes it useable, but that’s not in my tree, even. The real solution will be to build an EC driver to get the touchpad/keyboard sharing under control. Hasn’t happened yet.
What is available:
dtb from @asteroid which has everything enabled (LCD backlight, sound, ath11k Wifi)
virtual mux driver to share the kb/touchpad
my dtb which has only keyboard enabled, no sound, no LCD backlight, but ath12k WiFi
and the polling driver variant to enable kb and touchpad.
I need to do continue work on this, the slim5x sort of interrupted.
Nome do dispositivo: RENAN-LAPTOP
Número do produto: 83TW0000BO
Número de série: PE0FBYKB
Versão do bios: RVCN23T1WW
Processador: Snapdragon(R) X - X126100 - Qualcomm(R) Oryon™ CPU
Armazenamento: 368.3 GB
Ram instalada: 16 GB (15.6 GB utilizável)
Id do dispositivo: *****
Id do produto: *****
mine is this. If you need me to extract something from my model, I can help with that.
Nice. 83TW should be well supported, but is… WCN6855 (ath11k) where you need some additional board file.
The model is the same as another user has, he has it activated quite far. I forwarded this chat and asked if he could help, lets see.
Hi, just wanted to check if there’s been any progress on the display brightness control for the Dell Latitude 7455/5455. Is there anything I can do to help?