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?