Score:2

How do i add firmware to get es8336 audio to work?

ke flag

I am still without audio even after upgrading to Kernel 6 which supposedlly fixed this issue with the es8336 intel built-in hd audio card. I've done thorough work trying to fix this under the previous kernel.

I have one of those generic Chinese-made laptops that for some reason NO linux distro seems to support (regarding audio). Mine is an ALLDOCUBE i1405S using the Jasper Lake chipset. Of course, everything else works great including audio via HDMI, a USB audio interface (Behringer UCA202), or via a bluetooth headset.

The audio is handled by an Everest codec, the infamous es8336.

I use pipewire now, as it replaced the pulseaudio stuff in the last few Ubuntu updates.

Today I thought I would try something different. I did a simple dmesg to look at the errors that pop up at boot. Here is the relevant section of dmesg:

[    6.507569] sof-essx8336 sof-essx8336: quirk mask 0x21
[    6.507577] sof-essx8336 sof-essx8336: quirk SSP1
[    6.507578] sof-essx8336 sof-essx8336: quirk DMIC enabled
[    6.509764] sof-audio-pci-intel-icl 0000:00:1f.3: Direct firmware load for intel/sof-tplg/sof-jsl-es8336-dmic2ch-ssp1.tplg failed with error -2
[    6.509770] sof-audio-pci-intel-icl 0000:00:1f.3: error: tplg request firmware intel/sof-tplg/sof-jsl-es8336-dmic2ch-ssp1.tplg failed err: -2
[    6.509774] sof-audio-pci-intel-icl 0000:00:1f.3: you may need to download the firmware from https://github.com/thesofproject/sof-bin/
[    6.509777] sof-audio-pci-intel-icl 0000:00:1f.3: error: failed to load DSP topology -2
[    6.509779] sof-audio-pci-intel-icl 0000:00:1f.3: ASoC: error at snd_soc_component_probe on 0000:00:1f.3: -2
[    6.509791] sof-essx8336 sof-essx8336: ASoC: failed to instantiate card -2
[    6.509855] sof-essx8336 sof-essx8336: snd_soc_register_card failed: -2
[    6.509858] sof-essx8336: probe of sof-essx8336 failed with error -2}

Of course, here is my system info:

 inxi -Fx

Output:

 System:
   Host: myusername Kernel: 6.0.0-060000-generic x86_64 bits: 64
     compiler: N/A Desktop: KDE Plasma 5.24.7
     Distro: Ubuntu 22.04.1 LTS (Jammy Jellyfish)
 Machine:
   Type: Laptop System: ALLDOCUBE product: i1405S v: N/A
     serial: <superuser required>
   Mobo: ALLDOCUBE model: ALLDOCUBE serial: <superuser required>
     UEFI: American Megatrends LLC. v: Z362D.2112031.003.2133 date: 12/30/2021
 Battery:
   ID-1: BAT0 charge: 37.2 Wh (97.9%) condition: 38.0/38.0 Wh (100.0%)
     volts: 7.6 min: N/A model: Intel SR 1 SR Real Battery status: Discharging
 CPU:
   Info: quad core model: Intel Celeron N5100 bits: 64 type: MCP arch: Tremont
     rev: 0 cache: L1: 256 KiB L2: 1.5 MiB L3: 4 MiB
   Speed (MHz): avg: 2078 high: 2800 min/max: 800/2800 cores: 1: 1421
     2: 2800 3: 2741 4: 1353 bogomips: 8908
   Flags: ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
 Graphics:
   Device-1: Intel JasperLake [UHD Graphics] driver: i915 v: kernel
     bus-ID: 00:02.0
   Device-2: Realtek USB Camera type: USB driver: uvcvideo bus-ID: 1-5:2
   Display: x11 server: X.Org v: 1.21.1.3 driver: X: loaded: modesetting
     unloaded: fbdev,vesa gpu: i915 resolution: 1920x1080~60Hz
   OpenGL: renderer: Mesa Intel UHD Graphics (JSL) v: 4.6 Mesa 22.0.5
     direct render: Yes
 Audio:
   Device-1: Intel vendor: Realtek driver: sof-audio-pci-intel-icl
     bus-ID: 00:1f.3
   Sound Server-1: ALSA v: k6.0.0-060000-generic running: yes
   Sound Server-2: PulseAudio v: 15.99.1 running: no
   Sound Server-3: PipeWire v: 0.3.60 running: yes
 Network:
   Device-1: Intel Wi-Fi 6 AX201 160MHz driver: iwlwifi v: kernel
     bus-ID: 00:14.3
   IF: wlo1 state: up mac: 38:87:d5:e4:53:e0
 Bluetooth:
   Device-1: Intel AX201 Bluetooth type: USB driver: btusb v: 0.8
     bus-ID: 1-8:4
   Report: hciconfig ID: hci0 rfk-id: 0 state: up address: 38:87:D5:E4:53:E4
     bt-v: 3.0 lmp-v: 5.2
 Drives:
   Local Storage: total: 644.89 GiB used: 250.52 GiB (38.8%)
   ID-1: /dev/sda vendor: Western Digital
     model: WD Blue SA510 M.2 2280 500GB size: 465.76 GiB
   ID-2: /dev/sdb type: USB model: Multiple Card Reader size: 119.38 GiB
   ID-3: /dev/sdc type: USB vendor: Samsung model: Flash Drive
     size: 59.75 GiB
 Partition:
   ID-1: / size: 320.36 GiB used: 97.52 GiB (30.4%) fs: ext4 dev: /dev/sda5
   ID-2: /boot/efi size: 96 MiB used: 34 MiB (35.4%) fs: vfat dev: /dev/sda1
 Swap:
   ID-1: swap-1 type: file size: 2 GiB used: 0 KiB (0.0%) file: /swapfile
 Sensors:
   System Temperatures: cpu: 57.0 C mobo: N/A
   Fan Speeds (RPM): N/A
 Info:
   Processes: 287 Uptime: 1h 51m Memory: 11.51 GiB used: 4.71 GiB (40.9%)
   Init: systemd runlevel: 5 Compilers: gcc: 11.3.0 Packages: 2878 Shell: Bash
   v: 5.1.16 inxi: 3.3.13

Man, I love that inxi script.

More info:

 hwinfo --short

Output:

 cpu:                                                            
                   Intel(R) Celeron(R) N5100 @ 1.10GHz, 2800 MHz
                   Intel(R) Celeron(R) N5100 @ 1.10GHz, 2780 MHz
                   Intel(R) Celeron(R) N5100 @ 1.10GHz, 2800 MHz
                   Intel(R) Celeron(R) N5100 @ 1.10GHz, 2800 MHz
 keyboard:
   /dev/input/event4    AT Translated Set 2 keyboard
 mouse:
   /dev/input/mice      SYNA3602:00 093A:1336 Mouse
   /dev/input/mice      SYNA3602:00 093A:1336 Touchpad
 monitor:
                        BOE CQ LCD Monitor
 graphics card:
                        Intel VGA compatible controller
 sound:
                        Intel Audio device
 storage:
                        Intel SATA controller
 network:
   wlo1                 Intel WLAN controller
 network interface:
   wlo1                 Ethernet network interface
   lo                   Loopback network interface
 disk:
   /dev/sdb             Multiple Card  Reader
   /dev/sdc             Samsung Flash Drive
   /dev/sda             WD Blue SA510 M.
 partition:
   /dev/sdb1            Partition
   /dev/sdc1            Partition
   /dev/sda1            Partition
   /dev/sda2            Partition
   /dev/sda3            Partition
   /dev/sda4            Partition
   /dev/sda5            Partition
 usb controller:
                        Intel USB Controller
 bios:
                        BIOS
 bridge:
                        Intel ISA bridge
                        Intel Host bridge
 hub:
                        Linux Foundation 2.0 root hub
                        Linux Foundation 3.0 root hub
 memory:
                        Main Memory
 bluetooth:
                        Intel Bluetooth Device
 unknown:
                        FPU
                        DMA controller
                        PIC
                        Keyboard controller
                        Intel Serial bus controller
                        Intel SD Host controller
                        Intel Signal processing controller
                        Intel Communication controller
                        Intel Serial bus controller
                        Intel Serial bus controller
                        Intel Communication controller
                        Intel Serial bus controller
                        Intel Serial bus controller
                        Intel SD Host controller
                        Intel Serial bus controller
                        Intel RAM memory
                        Intel SMBus
                        Intel Serial bus controller
                        Realtek USB Camera}

Nothing too weird, right? Funny how RAM memory is listed under "unknown" though.

 aplay -l

Output: aplay: device_list:274: no soundcards found... Yeah. No surprises there.

 lspci -v | grep -A7 -i "audio"

Output:

 00:1f.3 Audio device: Intel Corporation Device 4dc8 (rev 01) (prog-if 80)
    DeviceName: Onboard - Sound
    Subsystem: Realtek Semiconductor Co., Ltd. Device 1242
    Flags: bus master, fast devsel, latency 32, IRQ 135
    Memory at 6001120000 (64-bit, non-prefetchable) [size=16K]
    Memory at 6001000000 (64-bit, non-prefetchable) [size=1M]
    Capabilities: <access denied>
    Kernel driver in use: sof-audio-pci-intel-icl
    Kernel modules: snd_hda_intel, snd_sof_pci_intel_icl

 00:1f.4 SMBus: Intel Corporation JaserLake SMBus (rev 01)
    DeviceName: Onboard - Other
    Subsystem: Intel Corporation JaserLake SMBus
    Flags: medium devsel, IRQ 16
    Memory at 600112a000 (64-bit, non-prefetchable) [size=256]

Audio commands:

 /sbin/lsmod | grep snd

Output:

 snd_seq_dummy          16384  0
 snd_hrtimer            16384  1
 snd_soc_sof_es8336     20480  0
 snd_soc_intel_hda_dsp_common    20480  1 
 snd_soc_sof_es8336
 snd_sof_probes         20480  0
 snd_hda_codec_hdmi     81920  0
 snd_soc_dmic           16384  0
 snd_sof_pci_intel_icl    16384  0
 snd_sof_intel_hda_common   143360  1 
 snd_sof_pci_intel_icl
 soundwire_intel        40960  1 
 snd_sof_intel_hda_common
 snd_sof_intel_hda      20480  1 
 snd_sof_intel_hda_common
 snd_sof_pci            24576  2 
 snd_sof_pci_intel_icl,
 snd_sof_intel_hda_common
 snd_sof_xtensa_dsp     16384  1 
 snd_sof_intel_hda_common
 snd_sof               245760  3 
 snd_sof_pci,
 snd_sof_intel_hda_common,
 snd_sof_probes
 snd_sof_utils          20480  1 
 snd_sof
 snd_soc_hdac_hda       24576  1 
 snd_sof_intel_hda_common
 snd_hda_ext_core       36864  3           
 snd_sof_intel_hda_common,      
 snd_soc_hdac_hda,
 snd_sof_intel_hda
 snd_soc_acpi_intel_match    69632  2 
 snd_sof_pci_intel_icl,
 snd_sof_intel_hda_common
 snd_soc_acpi           16384  2 
 snd_soc_acpi_intel_match,
 snd_sof_intel_hda_common
 snd_seq_midi           20480  0
 snd_hda_intel          53248  0
 snd_soc_es8316         49152  0
 snd_seq_midi_event     16384  1 
 snd_seq_midi
 snd_intel_dspcfg       36864  3 
 snd_hda_intel,
 snd_sof,
 snd_sof_intel_hda_common
 snd_intel_sdw_acpi     20480  2 
 snd_sof_intel_hda_common,
 snd_intel_dspcfg
 snd_rawmidi            45056  1 
 snd_seq_midi
 snd_hda_codec         172032  4      
 snd_hda_codec_hdmi,snd_hda_intel,
 snd_soc_intel_hda_dsp_common,
 snd_soc_hdac_hda
 snd_soc_core          368640  8          soundwire_intel,
 snd_sof,
 snd_sof_intel_hda_common,
 snd_soc_hdac_hda,
 snd_soc_sof_es8336,
 snd_sof_probes,
 snd_soc_es8316,
 snd_soc_dmic
 snd_compress           24576  2 
 snd_soc_core,
 snd_sof_probes
 snd_hda_core          118784  8      
 snd_hda_codec_hdmi,
 snd_hda_intel,
 snd_hda_ext_core,
 snd_hda_codec,
 snd_soc_intel_hda_dsp_common,
 snd_sof_intel_hda_common,
 snd_soc_hdac_hda,
 snd_sof_intel_hda
 ac97_bus               16384  1 
 snd_soc_core
 snd_pcm_dmaengine      20480  1 
 snd_soc_core
 snd_seq                77824  9 
 snd_seq_midi,
 snd_seq_midi_event,
 snd_seq_dummy
 snd_hwdep              20480  1 
 snd_hda_codec
 snd_seq_device         16384  3 
 snd_seq,
 snd_seq_midi,
 snd_rawmidi
 snd_pcm               159744  12      
 snd_hda_codec_hdmi,
 snd_hda_intel,
 snd_hda_codec,
 soundwire_intel,
 snd_sof,
 snd_sof_intel_hda_common,
 snd_compress,
 snd_soc_core,
 snd_sof_utils,
 snd_soc_es8316,
 snd_hda_core,
 snd_pcm_dmaengine
 snd_timer              40960  3 
 snd_seq,
 snd_hrtimer,
 snd_pcm
 snd                   114688  15     
 snd_seq,
 snd_seq_device,      
 snd_hda_codec_hdmi,
 snd_hwdep,
 snd_hda_intel,
 snd_hda_codec,
 snd_sof,

 snd_timer,
 snd_compress,
 snd_soc_core,
 snd_soc_sof_es8336,
 snd_pcm,
 snd_rawmidi
 soundcore              16384  1 
 snd

It is interesting that the es8336 is mentioned in a couple places there. But yet the computer just cannot connect device to the hardware.

I have tried many many distros and none of them work. Windows works with the audio just fine. Fedora, Arch, Debian, any Ubuntu derivative, Tuxedo, Mint, DeepinOS, and others had no luck.

I've attempted MANY procedures in which mods to the alsa-base.conf were recommended but ultimately fruitless. No kernel boot line edits work.

I found another thread wherein the user says they found a temporary workaround by manually copying sof-bin firmware to /lib/firmware/intel/sof-tplg/ folder. See steps below:

 cd ~/Downloads


 wget https://github.com/thesofproject/sof-bin/releases/download/v1.9.3/sof-bin-v1.9.3.tar.gz


 tar xvzf sof-bin-v1.9.3.tar.gz


 sudo mv /lib/firmware/intel/sof* ~/backup/ # save a backup in your home folder


 sudo rsync -a sof-v1.9.3/       /lib/firmware/intel/sof/


 sudo rsync -a sof-tplg-v1.9.3/  /lib/firmware/intel/sof-tplg/

reboot

I guess I am curious if these steps are specific to his device or are the general sof topology changes that need to be changed to make the everest series of intel hda soundcards work. He was working with a max98090 that wasn't producing sound on his laptop. But I don't see that model anywhere in the commands. Are these thereby safe to attempt? I've hosed too many Ubuntu installs by just randomly trying stuff.

The big question is why Linux hasn't updated the kernel correctly to just handle these cheap sound cards from intel. I mean, they said it WOULD be handled quite some time ago and appear to have put the files in the kernel. It seems a matter of poor implementation like the kernel patch skipped a step. Given these cheap sound cards are in TONS of cheap laptops, which are highly popular, why the heck isn't this working yet?

Score:-1
th flag

I just solved my problem in Ubuntu 22.04 by following these steps.

sudo apt-get install --install-recommends linux-oem-22.04a
git clone https://github.com/yangxiaohua2009/custom-kernel
cd custom-kernel/ucm/ucm2_latest
sudo cp ./tplg/* /lib/firmware/intel/sof-tplg/
sudo cp sof-jsl.ri /lib/firmware/intel/sof/
sudo cp -r sof-essx8336 /usr/share/alsa/ucm2

Kernel 5.17 somehow does not correctly load the file, so you may need to rename filename from ‘sof-jsl-es8336-ssp1.tplg’ to ‘sof-jsl-es8336.tplg’.

cd /lib/firmware/intel/sof-tplg
sudo cp sof-jsl-es8336-ssp1.tplg sof-jsl-es8336.tplg

Finally, edit the /etc/modprobe.d/alsa-base.conf config file via this command:

sudo gedit /etc/modprobe.d/alsa-base.conf

Add the line below to the end of the configuration file and save it.

options snd_soc_sof_8336 quirk=0x01

Reboot and then don't forget to set up via terminal alsamixer and press on keyboard F6 to choose sof-essx8336 and calibrate the sound. You can play any music or video and set up alsamixer at the same time.

In my case of setting up alsamixer, I pressed on keyboard m to unmute Left Headphone Mixer Left DAC and Right Headphone Mixer Right DAC, and increased volume of DAC, also Headphone and Headphone Mixer.

I sit in a Tesla and translated this thread with Ai:

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.