You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[FEATURE] Support for ES8336 on Intel Comet Lake #3248
Is your feature request related to a problem? Please describe.
Huawei laptops ship with an Everest ES8336 sound card that is not supported by sofproject. Describe the solution you'd like
Adding support for it would be really awesome Describe alternatives you've considered
I already tried this repo which seems to contain a kernel built with support for it but the audio clearly does not work: https://github.com/himozzza/essx8336 Additional context
Booting Linux and trying lsmod or dmsg shows only one valid HDMI sound output on the laptop and nothing more. Here's what I get from Device Manager on Windows:
Also tried the same kernel as @playXE linked https://github.com/himozzza/essx8336. After booting with it It displayed "Intel Corporation Comet Lake PCH-LP cAVS" as Output device and it correctly prompted me to select between "Headset" and "Headphones" when I plugged in headpone jack, but there was no sound neither on builtin speaker or headpones.
I could not hear any sound with speaker-test utility.
changed the title [-][FEATURE] Support for ES8336 on Huawei Matebook D14-15-16 with i5-10210u[/-][+][FEATURE] Support for ES8336 on Intel Comet Lake[/+]on Oct 31, 2021
You should boot the DSP and reach the point where a topology file is missing.
You will have to try each of the files in this zip cml.tar.gz
Please try with sof-cml-es8336-0.tplg copied as /lib/firmware/intel/sof-tplg/sof-cml-es8336.tplg, then 1 and 2. We need this trial-and-error method to figure out where the codec is attached to (I2S/SSP interface 0 1 or 2).
atm I am running Windows on my laptop, is there any way to load this kernel with USB drive? Maybe compile kernel on WSL and then move it to bootable USB?
atm I am running Windows on my laptop, is there any way to load this kernel with USB drive? Maybe compile kernel on WSL and then move it to bootable USB?
I don't have a Windows device so can't help with WSL.
It's possible to take an existing USB drive with e.g. Ubuntu and add a different kernel. I did it a couple of years ago with the help of @linuxium, see https://github.com/plbossart/UbuntuLiveUSB. No idea if this still works or not. You might have more luck with Cubic.
Still doesn't work both speakers and headphones on Teclast F5.
Seems hardware detected correctly but it still does not work as expected.
When I try to playback something (using audacious or chromium) it cannot start. Looks like synchronization does not work at all.
Seems digital microphone works just after boot (a level indicator shows some activity then I talk) but stop working after try to playback sound.
kernel: 6.8.4
dmesg:
[ 5.436535] snd_hda_intel 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 6.802611] snd_soc_skl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 6.864934] snd_soc_avs 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 7.475064] sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if info 0x040100
[ 7.475453] sof-audio-pci-intel-apl 0000:00:0e.0: DSP detected with PCI class/subclass/prog-if 0x040100
[ 7.475616] sof-audio-pci-intel-apl 0000:00:0e.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[ 7.516249] sof-audio-pci-intel-apl 0000:00:0e.0: use msi interrupt mode
[ 7.637675] sof-audio-pci-intel-apl 0000:00:0e.0: NHLT_DEVICE_I2S detected, ssp_mask 0x5
[ 7.637690] sof-audio-pci-intel-apl 0000:00:0e.0: Overriding topology with MCLK mask 0x2 from NHLT
[ 7.637695] sof-audio-pci-intel-apl 0000:00:0e.0: hda codecs found, mask 4
[ 7.690666] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware paths/files for ipc type 0:
[ 7.690680] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware file: intel/sof/sof-glk.ri
[ 7.690684] sof-audio-pci-intel-apl 0000:00:0e.0: Topology file: intel/sof-tplg/sof-glk-es8336-ssp2.tplg
[ 7.721379] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 2:2:0-57864
[ 7.721391] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 7.721411] sof-audio-pci-intel-apl 0000:00:0e.0: unknown sof_ext_man header type 3 size 0x30
[ 7.772716] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware info: version 2:2:0-57864
[ 7.772729] sof-audio-pci-intel-apl 0000:00:0e.0: Firmware: ABI 3:22:1 Kernel ABI 3:23:0
[ 7.957263] sof-essx8336 sof-essx8336: quirk mask 0x2
[ 7.957276] sof-essx8336 sof-essx8336: quirk SSP2
[ 7.958342] sof-audio-pci-intel-apl 0000:00:0e.0: Topology: ABI 3:22:1 Kernel ABI 3:23:0
[ 7.958667] sof-essx8336 sof-essx8336: ASoC: Parent card not yet available, widget card binding deferred
[ 8.166233] input: sof-essx8336 Headset as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input12
[ 8.166362] input: sof-essx8336 HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input13
[ 8.166509] input: sof-essx8336 HDMI/DP,pcm=6 as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input14
[ 8.166677] input: sof-essx8336 HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:0e.0/sof-essx8336/sound/card0/input15
Everything works fine out of the box on huawei d14 (HUAWEI NBD-WXX9-PCB-B4) & latest kernel & latest alsa-ucm-conf
But I had to add this script at system startup:
#!/nix/store/r9h133c9m8f6jnlsqzwf89zg9w0w78s8-bash-5.2-p15/bin/bashset -e
#!/usr/bin/env sh# For "Pro Audio" profile# amixer cset name='Headphone Switch' on# amixer cset name='Speaker Switch' on# amixer cset name='Headphone Playback Volume' 10,10# amixer cset name='Right Headphone Mixer Right DAC Switch' on# amixer cset name='Left Headphone Mixer Left DAC Switch' on# amixer cset name='DAC Playback Volume' 999,999# amixer cset name='Headphone Mixer Volume' 999,999## amixer sset "Dmic0" 70# amixer sset "Dmic1 2nd" 70# For "Play and record HiFI quality Music" profile# Enables Right and Left speakers
amixer cset name='Right Headphone Mixer Right DAC Switch' on
amixer cset name='Left Headphone Mixer Left DAC Switch' on
Activity
simas-b commentedon Oct 29, 2021
I just bought Huawei Matebook d15 i3-10110U and can confirm the sound does not work (Dummy output shown as Output device).
OS: Ubuntu 22.04 (development branch)
Kernel 5.15.0-051500rc7-generic
Also tried the same kernel as @playXE linked https://github.com/himozzza/essx8336. After booting with it It displayed "Intel Corporation Comet Lake PCH-LP cAVS" as Output device and it correctly prompted me to select between "Headset" and "Headphones" when I plugged in headpone jack, but there was no sound neither on builtin speaker or headpones.
I could not hear any sound with
speaker-testutility.This is my alsa-info: http://alsa-project.org/db/?f=95f73cdf9497ae38f36b4e12646d74826fbecdba
Bluetooth audio works great.
Thank you
[-][FEATURE] Support for ES8336 on Huawei Matebook D14-15-16 with i5-10210u[/-][+][FEATURE] Support for ES8336 on Intel Comet Lake[/+]ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
plbossart commentedon Nov 3, 2021
Thanks for reporting this @Simonboot and @playXE . We are indeed missing quirks for this CML device.
Can you retry with the branch https://github.com/plbossart/sound/tree/fix/es8336-codec
You should boot the DSP and reach the point where a topology file is missing.
You will have to try each of the files in this zip
cml.tar.gz
Please try with sof-cml-es8336-0.tplg copied as /lib/firmware/intel/sof-tplg/sof-cml-es8336.tplg, then 1 and 2. We need this trial-and-error method to figure out where the codec is attached to (I2S/SSP interface 0 1 or 2).
plbossart commentedon Nov 4, 2021
forgot to add @hli25 on this one, not sure if you can help with the SSP connection - which SSP should be used on CML-based devices?
playXE commentedon Nov 5, 2021
atm I am running Windows on my laptop, is there any way to load this kernel with USB drive? Maybe compile kernel on WSL and then move it to bootable USB?
playXE commentedon Nov 5, 2021
@plbossart I am trying to build kernel in WSL and it fails:
Looks like the problem is a slightly newer version of GLibc?
plbossart commentedon Nov 5, 2021
I don't have a Windows device so can't help with WSL.
It's possible to take an existing USB drive with e.g. Ubuntu and add a different kernel. I did it a couple of years ago with the help of @linuxium, see https://github.com/plbossart/UbuntuLiveUSB. No idea if this still works or not. You might have more luck with Cubic.
playXE commentedon Nov 6, 2021
I'll probably buy a larger SSD and will install Linux near Windows because it seems to be quite hard to build linux kernel in WSL...
ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
308 remaining items
merura commentedon Feb 6, 2023
@dattiluca try to run these commands. Maybe your speaker is turned off. Consider testing with alsa, not pipewire
Mornongsmokie commentedon Dec 12, 2023
On kernel 6.5.0 headphones work, but speakers not.
ochi12 commentedon Apr 9, 2024
Microphone not Working on Huawei D15 2020
katyo commentedon Apr 9, 2024
Still doesn't work both speakers and headphones on Teclast F5.
Seems hardware detected correctly but it still does not work as expected.
When I try to playback something (using audacious or chromium) it cannot start. Looks like synchronization does not work at all.
Seems digital microphone works just after boot (a level indicator shows some activity then I talk) but stop working after try to playback sound.
kernel: 6.8.4
dmesg:
merura commentedon Apr 9, 2024
Everything works fine out of the box on huawei d14 (HUAWEI NBD-WXX9-PCB-B4) & latest kernel & latest alsa-ucm-conf
But I had to add this script at system startup:
You can change your sound profile in pavucontrol
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec
UPSTREAM: ASoC: Intel: soc-acpi: add entry for ESSX8336 on CML
ALSA: intel-dsp-config: add quirk for CML devices based on ES8336 codec