cancel
Showing results for 
Search instead for 
Did you mean: 

Linux support on Zenbook S13 OLED (UM5302TA)

dedaniahenil
Star I
System: Zenbook S13 OLED
Battery or AC: N/A
Model: UM5302TA
Frequency of occurrence: Always
Reset OS: N/A
Screenshot or video: N/A
========================
Detailed description:
There has been previous discussion about this in zentalk(dot)asus(dot)com/en/discussion/63549/linux-on-zenbook-s-13-oled . Many of the things like keyboard, bluetooth are already working on the recent versions of linux kernel.

But there are still things like sound from speaker not working and External microphone not getting detected (i.e. headphone plugged in via jack), though internal microphone works.

Related to speaker sound, from: bugzilla(dot)kernel(dot)org/show_bug.cgi?id=216194 it looks like this need the firmware to be updated from Asus side to get it working.

Related to external microphone from: asus-linux(dot)org/blog/sound-2021-01-11/ there are ways to fix this but the process is extremely hard to follow. Maybe Asus engineer can figure out the issue from the blog and create a easy fix for it?

If this 2 things can be fixed by Asus team it would be very useful for anyone using linux.
10 REPLIES 10

mkenny
Star I
There is a patch available for the speakers that wasn't accepted into the kernel but it isn't too difficult to do. I do wish Asus would look into it but I have no hopes there. Using this laptop as my daily driver and everything works as it should except the finger print reader and the fact that the sound with the patch is very low.

dedaniahenil
Star I
mkenny

There is a patch available for the speakers that wasn't accepted into the kernel but it isn't too difficult to do. I do wish Asus would look into it but I have no hopes there. Using this laptop as my daily driver and everything works as it should except the finger print reader and the fact that the sound with the patch is very low.


View post
I am also having issue with getting external microphone (i.e. microphone of earphone plugged in via jack) to get detected and work. Is that working for you?

There is a patch available for the speakers that wasn't accepted into the kernel but it isn't too difficult to do.
Yeah this (github (dot) com/latin-1/um5302ta/blob/main/patches/kernel/cs35l42-hda-no-acpi-dsd-csc3551.patch) is what I am using for now, but there must be a good reason why the patch was rejected and i fear it will break soon if its not fixed by Asus.

Blueskull
Star III
That DSDT patch does not work perfectly either. The Cirrus chips each has an internal boost converter, which converts its input voltage to a higher value to drive the speaker louder. The laptop's speaker, cavity and driver chips are both designed for higher wattage of sound, but the driver voltage limits the maximum volume you can get from it. Thus, a boost converter which as the name suggests, boosts the voltage up, helps making it louder.

To boost the voltage, you need a component called an inductor (one of the many ways, the most common way), which temporarily stores electrical energy magnetically, then suddenly releases the energy, jacking up the voltage. This component is large and expensive, so it is better to size it according to your needs. If you drive an inductor with too high current, it will go into a state called saturation, then things can go very badly. For this reason, the Cirrus chips allow you to set current limit. Also, due to the dynamic nature of audio, the inductor's current must be feedforward controlled (predicted) rather than relying only on feedback control, thus the inductance value is also needed by the firmware.

Normally, the inductance and current limit values can be found in a configuration table from BIOS, called DSDT, for the driver to read and configure the Cirrus chips with. On this particular laptop, the BIOS is missing this data, thus a DSDT patch is needed. However, without support from Asus, we do not know the values mentioned above, so a convenient way to circumvent this is to bypass the boost converter and run the chips at a lower voltage. This is both what the driver patch and DSDT patch do. However, you loose volume by doing this, that's why the patches were rejected as they are not proper fixes.

Another way to do this is to teardown a unit, desolder the inductor, and measure its inductance (easy) and saturation current (hard), but this is invasive, and nobody is willing to do so on their own laptops. Even if someone does, if the measurement ends up being wrong, the wrong values can kill the amp chips rather quickly, rendering the laptop defective. The best way is to have Asus telling us the values, so we can write a proper DSDT patch or driver patch, or someone reverse engineer this value from the Windows driver.

dedaniahenil
Star I
Blueskull

That DSDT patch does not work perfectly either. The Cirrus chips each has an internal boost converter, which converts its input voltage to a higher value to drive the speaker louder. The laptop's speaker, cavity and driver chips are both designed for higher wattage of sound, but the driver voltage limits the maximum volume you can get from it. Thus, a boost converter which as the name suggests, boosts the voltage up, helps making it louder.

To boost the voltage, you need a component called an inductor (one of the many ways, the most common way), which temporarily stores electrical energy magnetically, then suddenly releases the energy, jacking up the voltage. This component is large and expensive, so it is better to size it according to your needs. If you drive an inductor with too high current, it will go into a state called saturation, then things can go very badly. For this reason, the Cirrus chips allow you to set current limit. Also, due to the dynamic nature of audio, the inductor's current must be feedforward controlled (predicted) rather than relying only on feedback control, thus the inductance value is also needed by the firmware.

Normally, the inductance and current limit values can be found in a configuration table from BIOS, called DSDT, for the driver to read and configure the Cirrus chips with. On this particular laptop, the BIOS is missing this data, thus a DSDT patch is needed. However, without support from Asus, we do not know the values mentioned above, so a convenient way to circumvent this is to bypass the boost converter and run the chips at a lower voltage. This is both what the driver patch and DSDT patch do. However, you loose volume by doing this, that's why the patches were rejected as they are not proper fixes.

Another way to do this is to teardown a unit, desolder the inductor, and measure its inductance (easy) and saturation current (hard), but this is invasive, and nobody is willing to do so on their own laptops. Even if someone does, if the measurement ends up being wrong, the wrong values can kill the amp chips rather quickly, rendering the laptop defective. The best way is to have Asus telling us the values, so we can write a proper DSDT patch or driver patch, or someone reverse engineer this value from the Windows driver.


View post
Wow thanks for the detailed explaination! From your explaination it only looks like patch is related to speakers voltage. Do you know of any way to get external microphone (microphone of earphone or headphone plugged in via jack) working?