No sound whatsoever after trying to fix crappy sound

I run an unpdated Manjaro I3 Linux from an USB card (can’t install on hard drive due to it being a business laptop, but I can boot from USB and it’s not a live distribution: it’s a complete installation). This Linux version has been installed specifically on the machine I use, so driver-wise we should be fine, but alsa had all sorts of bizarre behaviors. Sometimes the sound just wouldn’t work, other times it would work but have a very grainy quality, it was horrible. So I followed a few guides online, suggesting to install pulse, uninstall alsa, no wait, install alsa, but add this kernel parameter on boot, never mind that, remove the parameter, reinstall alsa. And voila’, within 5 minutes, the sound just stopped working. All I can understand is that now alsa thinks that my sound card is not compatible and the list of sinks available is EMPTY.

I think I have undone every single step - beginning of course with removing the extra kernel parameter - but the audio now just does not work. I spent hours on this and I am at the end of my wits. I hate how stupidly convoluted the sound system is on Linux, alsa and pulseaudio and all of that crap. I have used Linux for over 20 years and the audio system is still a black box to me. Please help.

Context:

[niki@usbdisk-i3 ~]$ sudo dmesg | grep -C1 -E 'ALSA|HDA|HDMI|snd[_-]|sound|hda.codec|hda.intel'


[    0.195026] ACPI: Added _OSI(Linux-Dell-Video)
[    0.195026] ACPI: Added _OSI(Linux-Lenovo-NV-HDMI-Audio)
[    0.195026] ACPI: Added _OSI(Linux-HPI-Hybrid-Graphics)
--
[    8.318587] hidraw: raw HID events driver (C) Jiri Kosina
[    8.452400] snd_hda_intel 0000:00:1f.3: enabling device (0000 -> 0002)
[    8.452717] i2c_hid i2c-ELAN9008:00: i2c-ELAN9008:00 supply vdd not found, using dummy regulator
--
[    8.649742] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input6
[    8.649881] snd_hda_intel 0000:00:1f.3: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
[    8.657500] RAPL PMU: API unit is 2^-32 Joules, 5 fixed counters, 655360 ms ovfl timer
--
[    8.764760] AES CTR mode by8 optimization enabled
[    8.827356] snd_hda_codec_realtek hdaudioC0D0: autoconfig for ALC294: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[    8.827361] snd_hda_codec_realtek hdaudioC0D0:    speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[    8.827363] snd_hda_codec_realtek hdaudioC0D0:    hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[    8.827365] snd_hda_codec_realtek hdaudioC0D0:    mono: mono_out=0x0
[    8.827367] snd_hda_codec_realtek hdaudioC0D0:    inputs:
[    8.827369] snd_hda_codec_realtek hdaudioC0D0:      Headset Mic=0x19
[    8.827371] snd_hda_codec_realtek hdaudioC0D0:      Internal Mic=0x12
[    8.830081] asus_wmi: ASUS WMI generic driver loaded
--
[    9.181762] mousedev: PS/2 mouse device common for all mice
[    9.321844] input: HDA Intel PCH Headset Mic as /devices/pci0000:00/0000:00:1f.3/sound/card0/input22
[    9.321887] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1f.3/sound/card0/input23
[    9.321922] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input24
[    9.321961] input: HDA Intel PCH HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input25
[    9.321995] input: HDA Intel PCH HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input26
[    9.322028] input: HDA Intel PCH HDMI/DP,pcm=9 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input27
[    9.322064] input: HDA Intel PCH HDMI/DP,pcm=10 as /devices/pci0000:00/0000:00:1f.3/sound/card0/input28
[   11.941960] mc: Linux media interface: v0.10

Hey @darioshanghai :wink:

At least you could start with some value information:

sudo inxi -Fazy

Please… use markdown for formatting the code like this:

~~~
code
~~~

I get eye cancer from this above. :slight_smile:

Many apologies for your eyes, didn’t understand the editor. Fixed, hopefully. Here is the command you asked:

[niki@usbdisk-i3 ~]$ sudo inxi -Fazy
[sudo] password for niki: 
System:
  Kernel: 5.4.85-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.0 
  parameters: BOOT_IMAGE=/boot/vmlinuz-5.4-x86_64 
  root=UUID=a72c70ad-5aa2-4549-9d8d-303d1fa3ff38 rw quiet apparmor=1 
  security=apparmor udev.log_priority=3 
  Desktop: i3 4.19 info: i3bar dm: LightDM 1.30.0 Distro: Manjaro Linux 
Machine:
  Type: Convertible System: ASUSTeK product: ZenBook UX362FA_UX362FA v: 1.0 
  serial: <filter> 
  Mobo: ASUSTeK model: UX362FA v: 1.0 serial: <filter> 
  UEFI: American Megatrends v: UX362FA.304 date: 07/04/2019 
Battery:
  ID-1: BAT0 charge: 44.3 Wh condition: 44.3/50.0 Wh (89%) volts: 11.9/11.9 
  model: ASUSTeK ASUS Battery type: Li-ion serial: N/A status: Not charging 
  cycles: 259 
  Device-1: hid-0018:04F3:284E.0004-battery model: ELAN9008:00 04F3:284E 
  serial: N/A charge: N/A status: N/A 
  Device-2: hid-34:88:5d:c6:a5:66-battery model: Keyboard K380 serial: N/A 
  charge: N/A status: Discharging 
CPU:
  Info: Dual Core model: Intel Core i3-8145U socket: BGA1528 (U3E1) 
  note: check bits: 64 type: MT MCP arch: Kaby Lake note: check family: 6 
  model-id: 8E (142) stepping: C (12) microcode: DE L1 cache: 128 KiB 
  L2 cache: 4 MiB L3 cache: 3.9 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx 
  bogomips: 18406 
  Speed: 1800 MHz min/max: 400/3900 MHz base/boost: 2574/8300 volts: 0.8 V 
  ext-clock: 100 MHz Core speeds (MHz): 1: 1800 2: 1800 3: 1806 4: 1802 
  Vulnerabilities: Type: itlb_multihit status: KVM: Split huge pages 
  Type: l1tf status: Not affected 
  Type: mds status: Not affected 
  Type: meltdown status: Not affected 
  Type: spec_store_bypass 
  mitigation: Speculative Store Bypass disabled via prctl and seccomp 
  Type: spectre_v1 
  mitigation: usercopy/swapgs barriers and __user pointer sanitization 
  Type: spectre_v2 mitigation: Enhanced IBRS, IBPB: conditional, RSB filling 
  Type: srbds mitigation: TSX disabled 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel UHD Graphics 620 vendor: ASUSTeK driver: i915 v: kernel 
  bus ID: 00:02.0 chip ID: 8086:3ea0 
  Device-2: IMC Networks USB2.0 HD IR UVC WebCam type: USB driver: uvcvideo 
  bus ID: 1-5:3 chip ID: 13d3:56cb serial: <filter> 
  Display: server: X.Org 1.20.10 driver: intel unloaded: modesetting 
  alternate: fbdev,vesa display ID: :0 screens: 1 
  Screen-1: 0 s-res: 1920x1080 s-dpi: 96 s-size: 508x285mm (20.0x11.2") 
  s-diag: 582mm (22.9") 
  Monitor-1: eDP1 res: 1920x1080 hz: 60 dpi: 168 size: 290x170mm (11.4x6.7") 
  diag: 336mm (13.2") 
  OpenGL: renderer: Mesa Intel UHD Graphics 620 (WHL GT2) v: 4.6 Mesa 20.3.1 
  direct render: Yes 
Audio:
  Device-1: Intel Cannon Point-LP High Definition Audio vendor: ASUSTeK 
  driver: snd_hda_intel v: kernel alternate: snd_soc_skl,snd_sof_pci 
  bus ID: 00:1f.3 chip ID: 8086:9dc8 
  Sound Server: ALSA v: k5.4.85-1-MANJARO 
Network:
  Device-1: Intel Cannon Point-LP CNVi [Wireless-AC] driver: iwlwifi v: kernel 
  port: 3000 bus ID: 00:14.3 chip ID: 8086:9df0 
  IF: wlo1 state: up mac: <filter> 
  Device-2: Realtek RTL8153 Gigabit Ethernet Adapter type: USB driver: r8152 
  bus ID: 2-1.3:4 chip ID: 0bda:8153 serial: <filter> 
  IF: enp0s20f0u1u3 state: down mac: <filter> 
Drives:
  Local Storage: total: 548.54 GiB used: 20.2 GiB (3.7%) 
  SMART Message: Required tool smartctl not installed. Check --recommends 
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital 
  model: PC SN520 SDAPNUW-512G-1002 size: 476.94 GiB block size: 
  physical: 512 B logical: 512 B speed: 15.8 Gb/s lanes: 2 serial: <filter> 
  rev: 20110000 
  ID-2: /dev/sda maj-min: 8:0 type: USB vendor: SanDisk model: Ultra Fit 
  size: 57.28 GiB block size: physical: 512 B logical: 512 B serial: <filter> 
  rev: 1.00 
  ID-3: /dev/sdb maj-min: 8:16 type: USB vendor: SanDisk model: Ultra Fit 
  size: 14.32 GiB block size: physical: 512 B logical: 512 B serial: <filter> 
  rev: 1.00 
Partition:
  ID-1: / raw size: 56.98 GiB size: 55.84 GiB (97.99%) used: 20.2 GiB (36.2%) 
  fs: ext4 block size: 4096 B dev: /dev/sda2 maj-min: 8:2 
  ID-2: /boot/efi raw size: 300 MiB size: 299.4 MiB (99.80%) 
  used: 280 KiB (0.1%) fs: vfat block size: 512 B dev: /dev/sda1 maj-min: 8:1 
Swap:
  Alert: No Swap data was found. 
Sensors:
  System Temperatures: cpu: 50.0 C mobo: N/A 
  Fan Speeds (RPM): cpu: 3500 
Info:
  Processes: 190 Uptime: 12m wakeups: 11 Memory: 7.57 GiB 
  used: 1.97 GiB (26.0%) Init: systemd v: 247 Compilers: gcc: 10.2.0 Packages: 
  pacman: 1190 lib: 374 Shell: Bash (sudo) v: 5.1.0 running in: urxvtd 
  inxi: 3.2.01 
1 Like

@darioshanghai

I guess you are one of the lucky ones who are able to use the sof-firmware: Platforms — SOF Project 0.1 documentation

  1. Install sof-firmware
  2. blacklist snd_hda_intel and snd_soc_skl if needed
  3. Make snd_sof_pci load first.

The reason for not loading snd_sof_pci is maybe because of the kernels decision to load snd_hda_intel first, because it has wider support than sof. On newer Kernels than 5.4 it should use sof first.

Here for example on kernel 5.10 it loads snd_sof_pci first:

But well, the sof-firmware was not installed and sound did not work because of this.

1 Like

Well, we have progress! I could blacklist those modules, and it loaded sof-audio instead. Unfortunately we’re still silent, and we still seem to have no audio sinks.

Should I try and update my Kernel? I am happy with the Stable version, this is the only issue I have. Or else, what?

kernel v5.4 does not support this type of digital array microphone and sof-firmware

Device-1: Intel Cannon Point-LP High Definition Audio vendor: ASUSTeK 
  driver: snd_hda_intel v: kernel alternate: snd_soc_skl,snd_sof_pci 

kernel support for sof-firmware was only added about 12 months ago with kernel v5.7 and later

so you should go Manjaro Settings Manager

manjaro-settings-manager -m msm_kernel

and install kernel 5.10.4-2

and also remove any blacklist options that may have been added before

When you boot system with new kernel, it should load snd_soc_skl instead of snd_hda_intel driver and internal microphone should work

1 Like

Simply blacklisting didn’t work. Had to update the kernel as suggested, and then the blacklisting became unnecessary. Sadly, the quality of the sound is still far from ideal.

Thank you folks!

Two things that may help improve audio quality

1 - PulseAudio only runs at CD quality (16bits @44100Hz) by default, for backwards compatibility to old hardware.
But modern hardware can support DVD quality audio (24bits @48000Hz)

to reconfigure PulseAudio for DVD quality, copy this whole code block to terminal

cat <<EOT > ~/.config/pulse/daemon.conf
resample-method = speex-float-3
default-sample-format = s24le
default-sample-rate = 48000
EOT

then restart PulseAudio

systemctl --user restart pulseaudio

to check if the new configuration is in use and settings have been applied

pulseaudio --dump-conf

2 - You may want to Install pulseaudio-equalizer-ladspa to add some boost bass for audio to laptop speakers

1 Like