Ubuntu Concept ♥️ Snapdragon X Elite

[Microsoft Surface Pro 11 — X1E80100 OLED]

I have now promoted this from an isolated test build into a standard Surface Pro 11 v2 kernel package set:

The kernel packages use the distinct 7.1.3-jg-1sp11v2 ABI so they can remain installed alongside the original 7.1.3-jg-1 kernel as a rollback option. The v2 audio release retains the same AudioReach topology binary as v1, but updates the UCM configuration for the Surface Pro 11’s single WSA macro, two-channel microphone capture, and 0 dB decoder gain.

One correction regarding the previous screenshot: the Monitor of … entries are not broken or placeholder microphones. They are normal PipeWire monitor sources, created automatically for each speaker sink so applications can record system playback. They can be hidden in pavucontrol by changing Show: All Input Devices to Hardware Input Devices, so I am leaving the underlying monitor sources in place.

1 Like

thank you!! that was exactly the issue

1 Like

I have extended the asus-zenbook-a14-ec kernel module for the ASUS Vivobook S 15 X1E-78-100 here: https://github.com/Sombre-Osmoze/asus-zenbook-a14-ec. This brings fan support (including sleep) by the i2c_asus_ec module, and Fn keys (brightness / mic mute) / keyboard backlight control by the hid_asus_ec module.

2 Likes

Hi @glathe I just checked out the interesting changes in your 7.1.3-jg-2-nostubble kernel and its reference to https://lore.kernel.org/all/20260718-ps883x-disable-usb4-v1-0-cec86d0b909e@oldschoolsolutions.biz/

Can you kindly clarify your shorthand for the USB terminology in the latter? You mention

This forces the Type-C stack to fall back to USB3 + DP Alt Mode

My limited understanding is that Type-C is the physical connector and USB-3 operates on it and the classic Type-A connectors. So is your “Type-C” shorthand for USB-4 (which operates only on Type-C connectors)? Or am I missing the plot here (USB has become the most non-standard standard since RS-232C).

1 Like

The type-c connectors, when there’s a retimer like the ps8830 behind it, are USB4 capable, and usually the firmware of the laptop, too. The driver is generally prepared for USB4 operation. If you happen to plug in a USB4 device (or Thunderbolt 4, like the Lenovo 40B0 Dock) you will find out that almost nothing works, except for power delivery and USB2. This is due to the yet incomplete USB4/Thunderbolt 4 support. Exchange the Thundebolt host cable with a normal full-featured Type-C cable, and you suddenly get USB3 functionality (PD, USB3 data, and if cold-plugged, DP Altmode via HDMI for example). The patch series ensures that you can downgrade the type-c connectors via DT setting to USB3 operation only. And does some tweaks to better support the old 40B0 dock. And to fix the hotplug issue reliably, add a small delay (20ms) after setting the config registers of the retimer.

So, overall it was an experiment to make the 40B0 dock “work” as in “useful”. With positive side effects on the redriver logic for complex docks in general.

1 Like

Hi guys, I wanna ask one question, may be it is offtopic. I just glanced on some source files, and saw some hardcoded names of functions for laptop models, for example - is_vivobook_s15

The question is, is it a good practice to hardcode names of devices . What we gonna do when the next version of laptop releases? Will we write new branch of code for _s16 version?

I just ask, just interesting)

In a nutshell: no, Linux has a better API to match devices/models (e.g. using proper device ids https://github.com/torvalds/linux/blob/b95f03f04d475aa6719d15a636ddf32222d55657/drivers/platform/x86/asus-laptop.c#L1945C23-L1945C38), but it was quicker here to adapt using hardcoded values. As the driver was already at the “Proof-of-concept” stage, I expect either:

  • someone more knowledgeable than me to do a proper generic version, where more changes may be needed somewhere else in the driver.
  • only ASUS Zenbook 14 / Vivobook S 16 users to compile/use it, and thus no need to clean up the code.

@glathe

Testing report from Slim 7x. Webcam not working on any of the latest kernels from your google drive (it did work on the latest X1e PPA kernel - 7.0 i guess). Also the very latest one doesn’t boot - 7.1.3-jg-2

btw. I am installing only image/modules/headers/qcom-x1e-headers .deb files.

1 Like

Will all fixes for camera and audio be available via “apt-get update && apt-get upgrade” in any, maybe, near future? Or are these fixes available only for custom kernels?

Hi what is needed to get display brightness control for my dell latitude 5455? I’m currently relying on alpha dimming workaround but this isn’t great for battery life.

1 Like

Hi, I wanted to ask if there are any updates regarding the audio on the Vivobook S15 X1P-42-100 models, since everything except the audio seems to work, and also if there is a way to control the RGB lighting on the keyboard.

and bluetooth earbuds have also been working for a long time.

Would also like a fix for the keyboard lighting but according to a long useless conversation I had with Microsoft Copilot AI, it is something to do with an EC(?) update that isn’t downloadable.

Hi, I’m not sure whether this is the correct place to share this, but I’ve developed a way to get the keyboard backlight working under Linux on the Snapdragon-based HP EliteBook Ultra G1q.

It currently supports:

  • Off, low, and high brightness levels

  • F5 keyboard-backlight cycling

  • Automatic loading at boot

  • DKMS rebuilding after kernel updates

  • A complete uninstall script

It has only been tested on my HP EliteBook Ultra G1q, so it should be considered experimental and model-specific. Anyone with the same laptop who would like to test it can find the source code and installation instructions here:

https://github.com/matthew123111/hp-g1q-kbd-backlight

I have made a simpler script here for backlight control on my S15 (X1E-78-100 version), it may work on yours: vivobook-s15-kb-rgb-control/keyboard-rgb at main · NicolasDerumigny/vivobook-s15-kb-rgb-control · GitHub.

However, I had no luck with audio as well…

1 Like

Oh nice, that could help on other devices, too. I’ve seen i2c @28 on many devices. Thanks for posting this.

Hmm audio should “just work” as in you should have the topology file in linux-firmware. If not, its buildable from audioreach-topology. Standard alsa-ucm-conf should do.

Display brightness is one of the worse offenders re pain/effort to make it work. You’re using the 7455 dts iirc, right? I’ll take a look into the dtsdt.dsl if its available.

1 Like

yep that’s right but I’m open to using a custom 5455 dts if needed. Thanks

1 Like

I have tried that too; no luck, still “bus conflicts” between the two speakers and cracks on boot, but not playback. I can reproduce the cracks each time I switch "Configuration” in GNOME’s sound menu. Sometimes one speaker outputs the sound test right after the change, then nothing (and playback won’t even register my clicks on the speaker).

can confirm the script works on the x1p-42-100 version too

3 Likes