Soundcard issues

Installed Garuda Linux yesterday (first distro I am trying out). Everything is going well except that I don't have any sound from the inbuilt laptop speakers or the Headphones (when they are plugged in). I assume it is an issue with the OS not recognising my sound card. Tried fixing it by downloading and playing around with pavucontrol and alsamixer but to no avail. Again, I am quite new at this so there is a very big chance I have overlooked something.

inxi -Fxxxza:

System:
  Kernel: 5.10.10-115-tkg-bmq x86_64 bits: 64 compiler: gcc v: 10.2.1 
  parameters: intel_pstate=passive BOOT_IMAGE=/@/boot/vmlinuz-linux-tkg-bmq 
  root=UUID=fd8abf78-cacd-4600-90b7-de07cc9eba76 rw [email protected] quiet splash 
  rd.udev.log_priority=3 vt.global_cursor_default=0 
  systemd.unified_cgroup_hierarchy=1 loglevel=3 
  Desktop: KDE Plasma 5 tk: Qt 5.15.2 info: latte-dock wm: kwin_x11 dm: SDDM 
  Distro: Garuda Linux 
Machine:
  Type: Laptop System: HP product: HP Pavilion Gaming Laptop 15-cx0xxx 
  v: Type1ProductConfigId serial: <filter> Chassis: type: 10 serial: <filter> 
  Mobo: HP model: 8478 v: 70.30 serial: <filter> UEFI: Insyde v: F.04 
  date: 03/31/2018 
Battery:
  ID-1: BAT1 charge: 58.2 Wh condition: 59.8/70.1 Wh (85%) volts: 17.2/15.4 
  model: Hewlett-Packard PABAS0241231 type: Li-ion serial: <filter> status: Unknown 
  Device-1: hidpp_battery_0 model: Logitech G305 Lightspeed Wireless Gaming Mouse 
  serial: <filter> charge: 100% (should be ignored) rechargeable: yes 
  status: Discharging 
CPU:
  Info: 6-Core model: Intel Core i7-8750H bits: 64 type: MT MCP arch: Kaby Lake 
  note: check family: 6 model-id: 9E (158) stepping: A (10) microcode: DE 
  L2 cache: 9 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 52858 
  Speed: 3837 MHz min/max: 800/4100 MHz Core speeds (MHz): 1: 3837 2: 3987 3: 3874 
  4: 3909 5: 3945 6: 3963 7: 3749 8: 3811 9: 3910 10: 3002 11: 3948 12: 3757 
  Vulnerabilities: Type: itlb_multihit status: KVM: VMX disabled 
  Type: l1tf 
  mitigation: PTE Inversion; VMX: conditional cache flushes, SMT vulnerable 
  Type: mds mitigation: Clear CPU buffers; SMT vulnerable 
  Type: meltdown mitigation: PTI 
  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: Full generic retpoline, IBPB: conditional, IBRS_FW, 
  STIBP: conditional, RSB filling 
  Type: srbds mitigation: Microcode 
  Type: tsx_async_abort status: Not affected 
Graphics:
  Device-1: Intel UHD Graphics 630 vendor: Hewlett-Packard driver: i915 v: kernel 
  bus ID: 00:02.0 chip ID: 8086:3e9b 
  Device-2: NVIDIA GP106M [GeForce GTX 1060 Mobile] vendor: Hewlett-Packard 
  driver: nvidia v: 460.27.04 alternate: nouveau,nvidia_drm bus ID: 01:00.0 
  chip ID: 10de:1c20 
  Device-3: Cheng Uei Precision Industry (Foxlink) HP Wide Vision HD Integrated Webcam type: USB driver: uvcvideo bus ID: 1-5:3 chip ID: 05c8:03bc 
  Display: x11 server: X.org 1.20.10 compositor: kwin_x11 driver: 
  loaded: modesetting,nvidia alternate: fbdev,intel,nouveau,nv,vesa 
  Message: No advanced graphics data found on this system. 
Audio:
  Device-1: Intel Cannon Lake PCH cAVS vendor: Hewlett-Packard driver: sof-audio-pci 
  alternate: snd_hda_intel,snd_soc_skl,snd_sof_pci bus ID: 00:1f.3 chip ID: 8086:a348 
  Sound Server: ALSA v: k5.10.10-115-tkg-bmq 
Network:
  Device-1: Realtek RTL8822BE 802.11a/b/g/n/ac WiFi adapter vendor: Hewlett-Packard 
  driver: rtw_8822be v: N/A modules: rtw88_8822be port: 4000 bus ID: 02:00.0 
  chip ID: 10ec:b822 
  IF: wlo1 state: up mac: <filter> 
  Device-2: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: Hewlett-Packard driver: r8169 v: kernel port: 3000 bus ID: 05:00.0 
  chip ID: 10ec:8168 
  IF: eno1 state: down mac: <filter> 
Drives:
  Local Storage: total: 1.03 TiB used: 18.46 GiB (1.8%) 
  SMART Message: Unable to run smartctl. Root privileges required. 
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: LITE-ON model: CA1-8D128-HP 
  size: 119.24 GiB block size: physical: 512 B logical: 512 B speed: 31.6 Gb/s 
  lanes: 4 serial: <filter> rev: A182 temp: 50.9 C 
  ID-2: /dev/sda maj-min: 8:0 vendor: Seagate model: ST1000LM049-2GH172 
  size: 931.51 GiB block size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s 
  serial: <filter> rev: RPM2 
Partition:
  ID-1: / raw size: 118.95 GiB size: 118.95 GiB (100.00%) used: 18.46 GiB (15.5%) 
  fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2 
  ID-2: /boot/efi raw size: 300 MiB size: 299.4 MiB (99.80%) used: 560 KiB (0.2%) 
  fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 
  ID-3: /home raw size: 118.95 GiB size: 118.95 GiB (100.00%) used: 18.46 GiB (15.5%) 
  fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2 
  ID-4: /var/log raw size: 118.95 GiB size: 118.95 GiB (100.00%) 
  used: 18.46 GiB (15.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2 
  ID-5: /var/tmp raw size: 118.95 GiB size: 118.95 GiB (100.00%) 
  used: 18.46 GiB (15.5%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2 
Swap:
  Kernel: swappiness: 10 (default 60) cache pressure: 75 (default 100) 
  ID-1: swap-1 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram0 
  ID-2: swap-2 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram1 
  ID-3: swap-3 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram2 
  ID-4: swap-4 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram3 
  ID-5: swap-5 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram4 
  ID-6: swap-6 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram5 
  ID-7: swap-7 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram6 
  ID-8: swap-8 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram7 
  ID-9: swap-9 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram8 
  ID-10: swap-10 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram9 
  ID-11: swap-11 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram10 
  ID-12: swap-12 type: zram size: 1.29 GiB used: 0 KiB (0.0%) priority: 32767 
  dev: /dev/zram11 
Sensors:
  System Temperatures: cpu: 68.0 C mobo: 29.8 C 
  Fan Speeds (RPM): N/A 
Info:
  Processes: 366 Uptime: 53m wakeups: 3 Memory: 15.52 GiB used: 4.57 GiB (29.4%) 
  Init: systemd v: 247 Compilers: gcc: 10.2.0 Packages: pacman: 1586 lib: 488 
  Shell: fish v: 3.1.2 running in: konsole inxi: 3.2.02 

aplay -lL:

null
    Discard all samples (playback) or generate zero samples (capture)
samplerate
    Rate Converter Plugin Using Samplerate Library
speexrate
    Rate Converter Plugin Using Speex Resampler
jack
    JACK Audio Connection Kit
oss
    Open Sound System
pipewire
    PipeWire Sound Server
pulse
    PulseAudio Sound Server
speex
    Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)
upmix
    Plugin for channel upmix (4,6,8)
vdownmix
    Plugin for channel downmix (stereo) with a simple spacialization
default
    Default ALSA Output (currently PulseAudio Sound Server)
aplay: device_list:274: no soundcards found...

pacmd list-cards:

0 card(s) available.

pacmd list-sinks:

1 sink(s) available.
  * index: 0
        name: <auto_null>
        driver: <module-null-sink.c>
        flags: DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
        state: IDLE
        suspend cause: (none)
        priority: 1000
        volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
                balance 0.00
        base volume: 65536 / 100% / 0.00 dB
        volume steps: 65537
        muted: no
        current latency: 2.02 ms
        max request: 6 KiB
        max rewind: 6 KiB
        monitor source: 0
        sample spec: s16le 2ch 44100Hz
        channel map: front-left,front-right
                     Stereo
        used by: 0
        linked by: 1
        configured latency: 40.00 ms; range is 0.50 .. 2000.00 ms
        module: 15
        properties:
                device.description = "Dummy Output"
                device.class = "abstract"
                device.icon_name = "audio-card"

Appreciate any help. Will try to provide any further information required to fix this issue.

2 Likes

Arch wiki page: HP Pavilion 15-cx0xxx - ArchWiki

Do you have sof-firmware installed? If not, install it, reboot, see if it helps.

Welcome to the Garuda community.

I must say, for a newcomer to Linux you seem to have picked up on the way things work to file a help request on the forum very effectively. Nicely done, it's refreshing to see someone so new to Linux put in the effort to do some research before opening their first help request.

Good luck resolving your issue.

3 Likes

Thanks for the quick reply. I tried installing sof-firmware by following the steps in the following link:

https://www.alsa-project.org/main/index.php/Firmware

Everything goes smoothly until I get to the "./configure --prefix=pwd" command in the second step:


When I run it I get the following output:

checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking whether sed understands -r -i -e... yes
checking whether ln -s works... yes
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking how to run the C preprocessor... gcc -E
checking for ranlib... ranlib
checking for gobjcopy... no
checking for objcopy... objcopy
checking for absolute path to objcopy... /usr/bin/objcopy
checking for gobjdump... no
checking for objdump... objdump
checking for absolute path to objdump... /usr/bin/objdump
checking for greadelf... no
checking for readelf... readelf
checking for absolute path to readelf... /usr/bin/readelf
checking for gperf... gperf
checking for absolute path to gperf... /usr/bin/gperf
checking for bison... bison
checking for flex... flex
checking for makeinfo... makeinfo
checking for cut... cut
checking for stat... stat
checking for readlink... readlink
checking for wget... wget
checking for tar... tar
checking for gzip... gzip
checking for bzip2... bzip2
checking for help2man... help2man
checking for gpatch... no
checking for patch... patch
checking for absolute path to patch... /usr/bin/patch
checking for bash >= 3.1... no
configure: error: could not find bash >= 3.1

with the error you see on the last line about the bash version.

bash --version gives the following output:

GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

I've tried running the command when in bash (because i used fish for at first) and still no luck.
The following "make" and "make install" commands just return the following:

make:

make: *** No targets specified and no makefile found.  Stop.

make install:

make: *** No rule to make target 'install'.  Stop.

I'm not sure if I can continue the installation process even with having these issues so I've gotten kind of stuck.

1 Like

That was not what was meant. This firmware is included in Arch repos (and you may probably have it installed)

Check

pacman -Qs Sound Firmware
pacman -Qi sof-firmware
ls -1 /usr/lib/firmware/intel | grep sof

If not installed, do install sof-firmware.
If installed, as it seems a similar driver is used and the Wiki article on your model reports Audio working with

(Audio Yes) snd_hda_intel

maybe unload relevant module and try using intel driver.
Maybe @tbg can help better on that.

1 Like

Sorry I'm not sure exactly which aspect you're referring to. To be perfectly honest I've never had enough problems with audio issues to consider myself a good troubleshooter in that area.

You're correct, it seems like sof-firmware is already installed.

pacman -Qs Sound Firmware:

local/sof-firmware 1.6.1-1
    Sound Open Firmware

pacman -Qi sof-firmware:

Name            : sof-firmware
Version         : 1.6.1-1
Description     : Sound Open Firmware
Architecture    : any
URL             : https://www.sofproject.org/
Licenses        : custom:BSD  custom:ISC
Groups          : None
Provides        : None
Depends On      : None
Optional Deps   : None
Required By     : pulseaudio-support
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 7.59 MiB
Packager        : Jan Alexander Steffens (heftig) <[email protected]>
Build Date      : Sun 27 Dec 2020 12:03:44 EET
Install Date    : Thu 07 Jan 2021 10:05:31 EET
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : Signature

ls -1 /usr/lib/firmware/intel | grep sof:

drwxr-xr-x    - root  7 Jan 10:05 sof
drwxr-xr-x    - root  7 Jan 10:05 sof-tplg-v1.6.1
lrwxrwxrwx   15 root 27 Dec  2020 sof-tplg -> sof-tplg-v1.6.1

In my attempt to understand what you meant by "maybe unload relevant module and try using intel driver" I read some info from this page Kernel module - ArchWiki and also did what the arch page on my laptop module mentioned:


which started the first module in the code fragment below after a reboot:

snd_hda_intel          57344  0
snd_intel_dspcfg       24576  4 snd_hda_intel,snd_sof_pci,snd_sof_intel_hda_common,snd_soc_skl
snd_hda_codec         167936  5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek,snd_soc_hdac_hda
snd_hda_core          106496  10 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_soc_skl,snd_sof_intel_hda
snd_pcm               147456  11 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_soc_skl,snd_hda_core,snd_pcm_dmaengine
snd                   114688  10 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_compress,snd_soc_core,snd_pcm

Could you please offer a bit more direction on the topic?

Thought the following output might help:

lsmod | grep sof
snd_sof_pci            24576  0
snd_sof_intel_byt      20480  1 snd_sof_pci
snd_sof_intel_ipc      20480  1 snd_sof_intel_byt
snd_sof_intel_hda_common    98304  1 snd_sof_pci
snd_soc_hdac_hda       24576  1 snd_sof_intel_hda_common
snd_sof_xtensa_dsp     16384  2 snd_sof_intel_hda_common,snd_sof_intel_byt
snd_sof_intel_hda      20480  1 snd_sof_intel_hda_common
snd_sof               139264  4 snd_sof_pci,snd_sof_intel_hda_common,snd_sof_intel_byt,snd_sof_intel_ipc
ledtrig_audio          16384  2 snd_hda_codec_generic,snd_sof
snd_hda_ext_core       36864  4 snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_soc_skl,snd_sof_intel_hda
snd_soc_acpi_intel_match    45056  3 snd_sof_pci,snd_sof_intel_hda_common,snd_soc_skl
snd_soc_acpi           16384  4 snd_soc_acpi_intel_match,snd_sof_intel_hda_common,snd_sof_intel_byt,snd_soc_skl
snd_intel_dspcfg       24576  4 snd_hda_intel,snd_sof_pci,snd_sof_intel_hda_common,snd_soc_skl
soundwire_intel        45056  2 snd_sof_intel_hda_common,snd_intel_dspcfg
snd_hda_core          106496  10 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_ext_core,snd_hda_codec,snd_hda_codec_realtek,snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_soc_skl,snd_sof_intel_hda
snd_soc_core          323584  6 soundwire_intel,snd_sof,snd_sof_intel_hda_common,snd_soc_hdac_hda,snd_soc_skl,snd_soc_dmic
snd_pcm               147456  11 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_soc_skl,snd_hda_core,snd_pcm_dmaengine
1 Like

After some more digging I actually found a solution to my issue in an askubuntu forum answer. The issue as was pointed out by @petsam, was that the incorrect audio driver was loaded.

The way to solve it for me was to perform the following:

sudo nvim /etc/default/grub

Change

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash ..."

to

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash snd_hda_intel.dmic_detect=0 ..."

and then update grub with:

sudo grub-mkconfig -o /boot/grub/grub.cfg

and reboot.

As I understand it, the stock sof-audio-pci still don't have any driver support and thus pulseaudio was not detecting my soundcard. By performing the commands above, you redict grub to use the snd_hda_intel drivers that work find as indicated in HP Pavilion 15-cx0xxx - ArchWiki.

Thanks everyone for the help.

5 Likes

Interestingly, setting the option forces the kernel to load the legacy snd_hda_intel driver...

https://bugzilla.kernel.org/show_bug.cgi?id=205959

According to

https://bugzilla.redhat.com/show_bug.cgi?id=1772498

you might also need alsa-firmware installed for the newer SOF driver (though I'd be surprised if that wasn't installed by default).

It might also be worth updating the Arch wiki page with this information so others can find it in the future.

2 Likes