You are not logged in.
Pages: 1
Hi
I've spent more than 24 hours trying to get my internal microphone to work but without success. Sound works just fine, same with bluetooth mic.
Tried a bunch of things like https://wiki.archlinux.org/title/PulseA … Microphone
also playing with a combination of different module params for snd_hda_intel :
options snd_intel_dspcfg dsp_driver=1
options snd-hda-intel power_save=1
options snd_hda_intel index=2 dmic_detect=1 enable=1
options snd_hda_intel index=2,1,0 id=NVidia,Generic,Main power_save=0 model=generic
As a last resort I tried installing ubuntu on a different partition to showcase microphone functionality but had the same results... My fear is that my sound card is not yet properly supported (got sof-firmware, alsa-firmware, alsa-ucm-conf )
my full alsa-info
http://alsa-project.org/db/?f=1d9190acd … b49c5e3aeb
Any help is welcome !
Last edited by blanksam (2023-03-27 23:11:14)
Offline
If this actually needs a dmic then you will disable it with that kind of configuration. Remove that entire file(s) and repost the output of of alsa-info.sh when you are on a sof-firmware based setup.
Generally HP laptops are notorious for a broken verb table, hope for a BIOS/UEFI update or you might be SoL
Last edited by V1del (2023-03-27 23:22:41)
Offline
Removed all the files as indicated and tried to get sof loaded as it wasn't before but that doesn't work (doesn't appear in dmesg at least):
first got the latest version of sof and installed as per https://github.com/thesofproject/sof-bin
then
blacklist snd_hda_intel
blacklist snd_soc_skl
got the corresponding output
http://alsa-project.org/db/?f=d40426800 … 71e02a78d7
I had no soundcard detected at that point si I removed the blacklist
http://alsa-project.org/db/?f=74a55a60d … 8fad7763b0
What am I missing/doing wrong ?
Last edited by blanksam (2023-03-28 00:52:54)
Offline
You could've just installed the sof-firmware package. But having that and needing sof-firmware and setting up options snd_intel_dspcfg dsp_driver=1 will logically conflict and bypass sof. And in the "corresponding" output you still had
snd-hda-intel dmic_detect=0,snd_intel_dspcfg.dsp_driver=1
on the kernel parameters. Make sure those aren't set.
If that is still the output (even after making sure there's no trace of dmic_detect=0 nor snd_intel_dpscfg anywhere - they will expectedly disable mic support if you have HW that actually needs them to be set) then it doesn't need sof, but still just marking it as generic reads weird. FWIW you do have a mic but
arecord -Dhw:2,0 test.wav
doesn't work I assume?
Last edited by V1del (2023-03-28 07:57:31)
Offline
The output is still the same..
http://alsa-project.org/db/?f=0ab4f6d1c … 2b32484175
arecord -Dhw:2,0 test.wav
does indeed not work ( aplay does not read any sound)
Offline
You should see a sof card... You are likely still exporting those values somewhere. What do you get from
cat /proc/cmdline
pacman -Qkk sof-firmware
grep -ER 'snd|sof' /{etc,usr/lib}/modprobe.d
sudo dmesg
You should see something like (from a random google result) http://alsa-project.org/db/?f=23ceaa41c … b4266eca0f note that it doesn't use snd_hda_intel anymore for the internal card but a sof variant.
Last edited by V1del (2023-03-28 10:08:53)
Offline
I get the following :
$cat /proc/cmdline
BOOT_IMAGE=/boot/vmlinuz-linux root=UUID=3b8e529a-07c3-42f8-b4d9-17937631e608 rw loglevel=3 quiet splash nowatchdog ibt=off nvidia-drm.modeset=1 nvidia.NVreg_RegistryDwords=EnableBrightnessControl=1
$pacman -Qkk sof-firmware
error: package 'sof-firmware' was not found
$grep -ER 'snd|sof' /{etc,usr/lib}/modprobe.d
/usr/lib/modprobe.d/systemd.conf:# systemd is free software; you can redistribute it and/or modify it
$sudo dmesg | grep -E 'sof|snd'
[ 0.047819] software IO TLB: area num 16.
[ 0.387767] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.387770] software IO TLB: mapped [mem 0x00000000a58b4000-0x00000000a98b4000] (64MB)
[ 0.560865] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
[ 0.560873] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[ 3.742093] snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
[ 3.742135] snd_pci_acp6x 0000:06:00.5: enabling device (0000 -> 0002)
[ 3.742431] snd_hda_intel 0000:01:00.1: Disabling MSI
[ 3.742444] snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
[ 3.743265] snd_hda_intel 0000:06:00.1: enabling device (0000 -> 0002)
[ 3.743334] snd_hda_intel 0000:06:00.1: Handle vga_switcheroo audio client
[ 3.743568] snd_hda_intel 0000:06:00.6: enabling device (0000 -> 0002)
[ 3.777530] snd_hda_codec_realtek hdaudioC2D0: autoconfig for ALC245: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[ 3.777536] snd_hda_codec_realtek hdaudioC2D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 3.777538] snd_hda_codec_realtek hdaudioC2D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[ 3.777540] snd_hda_codec_realtek hdaudioC2D0: mono: mono_out=0x0
[ 3.777542] snd_hda_codec_realtek hdaudioC2D0: inputs:
[ 3.777543] snd_hda_codec_realtek hdaudioC2D0: Mic=0x19
[ 5.300086] snd_hda_intel 0000:06:00.1: bound 0000:06:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
Last edited by blanksam (2023-03-28 10:13:19)
Offline
Decided to not give up and tried to test if microphone works on other distributions; first tried manjaro and... the mic works !!!!
Manjaro alsa-infos:
http://alsa-project.org/db/?f=7566370c7 … f475e5d5f5
Arch alsa-info:
http://alsa-project.org/db/?f=2dc3934d7 … 1e5a46ba2f
Gonna check where the differences lies and retry on Arch.
Last edited by blanksam (2023-03-28 23:49:39)
Offline
One obvious difference that the Manjaro kernel is on LTS and the Arch kernel on stable, try linux-lts
Another thing but then arecord should have worked at least is pipewire-{pulse} instead of pulseaudio.
Last edited by V1del (2023-03-29 00:03:35)
Offline
Switching overt to linux-lts and using pipewire didn't work either but I noticed something suspicious from diff checking :
Arch:
!!Soundcards recognised by ALSA
!!-----------------------------
0 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfc080000 irq 45
1 [Generic ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfc6c8000 irq 81
2 [Generic_1 ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfc6c0000 irq 82
Manjaro:
!!Soundcards recognised by ALSA
!!-----------------------------
0 [NVidia ]: HDA-Intel - HDA NVidia
HDA NVidia at 0xfc080000 irq 51
1 [Generic ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfc6c8000 irq 79
2 [Generic_1 ]: HDA-Intel - HD-Audio Generic
HD-Audio Generic at 0xfc6c0000 irq 80
And :
Manjaro :
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic_1 [HD-Audio Generic], device 0: ALC245 Analog [ALC245 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
Arch :
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: NVidia [HDA NVidia], device 9: HDMI 3 [HDMI 3]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: Generic [HD-Audio Generic], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: Generic_1 [HD-Audio Generic], device 0: ALC245 Analog [ALC245 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
irqs and subdevice for card2
Dunno if that means anything ?
Last edited by blanksam (2023-03-29 01:42:31)
Offline
It doesn't, you are only looking at the playback not the recording devices and subdevice 0/1 simply means that the device associated with that subdevice is currently actively in use i.e. you are currently playing back/listening to something. And the irq's are likely to change from boot to boot.
You are likely mssing something more obvious, can you compare alsamixer mixer states between the two? Can you post
amixer -c2
sudo fuser -v /dev/snd/*
pactl list cards
pactl list sources
pactl list source-outputs
during a recording attempt, possibly from both?
Offline
Just a side note: The dmic of my laptop with ryzen 5600U is detected if
snd_rn_pci_acp3x.dmic_acpi_check=1
is added to the kernel command line.
Last edited by marvinia (2023-03-31 09:18:33)
Offline
I also have an Omen 16 (with a Ryzen 7 6800H as the CPU), and the built in microphone isn't working on it either. I don't see sof being used anywhere despite having sof-firmware installed and not having messed with audio specific configuration files at all (I never needed audio input until now, audio output to my earphones works fine out of the box and the microphone included with my earphones also show up).
Output of alsa-info: http://alsa-project.org/db/?f=565e1cb8b … 9d642a2bbc
Output of "cat /proc/cmdline", "pacman -Qkk sof-firmware", "grep -ER 'snd|sof' /{etc,usr/lib}/modprobe.d" and dmesg:
➜ ~ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-linux root=UUID=45332132-d240-4440-851c-901e8fcc0881 rw loglevel=3 amd_pstate=passive zswap.enabled=0 nowatchdog pci=noaer
➜ ~ pacman -Qkk sof-firmware
sof-firmware: 350 total files, 0 altered files
➜ ~ grep -ER 'snd|sof' /{etc,usr/lib}/modprobe.d
/usr/lib/modprobe.d/systemd.conf:# systemd is free software; you can redistribute it and/or modify it
➜ ~ sudo dmesg | grep -E 'sof|snd'
[ 0.029504] software IO TLB: area num 16.
[ 0.350647] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[ 0.350650] software IO TLB: mapped [mem 0x00000000a5cc4000-0x00000000a9cc4000] (64MB)
[ 0.558210] integrity: Loaded X.509 cert 'Microsoft Windows Production PCA 2011: a92902398e16c49778cd90f99e4f9ae17c55af53'
[ 0.558221] integrity: Loaded X.509 cert 'Microsoft Corporation UEFI CA 2011: 13adbf4309bd82709c8cd54f316ed522988a1bd4'
[ 8.760220] snd_pci_acp6x 0000:08:00.5: enabling device (0000 -> 0002)
[ 8.764121] snd_hda_intel 0000:03:00.1: enabling device (0000 -> 0002)
[ 8.764224] snd_hda_intel 0000:03:00.1: Handle vga_switcheroo audio client
[ 8.764226] snd_hda_intel 0000:03:00.1: Force to non-snoop mode
[ 8.764451] snd_hda_intel 0000:08:00.1: enabling device (0000 -> 0002)
[ 8.764485] snd_hda_intel 0000:08:00.1: Handle vga_switcheroo audio client
[ 8.764575] snd_hda_intel 0000:08:00.6: enabling device (0000 -> 0002)
[ 8.773836] snd_hda_intel 0000:08:00.1: bound 0000:08:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 8.774795] snd_hda_intel 0000:03:00.1: bound 0000:03:00.0 (ops amdgpu_dm_audio_component_bind_ops [amdgpu])
[ 8.794801] snd_hda_codec_realtek hdaudioC2D0: autoconfig for ALC245: line_outs=1 (0x17/0x0/0x0/0x0/0x0) type:speaker
[ 8.794806] snd_hda_codec_realtek hdaudioC2D0: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0)
[ 8.794808] snd_hda_codec_realtek hdaudioC2D0: hp_outs=1 (0x21/0x0/0x0/0x0/0x0)
[ 8.794810] snd_hda_codec_realtek hdaudioC2D0: mono: mono_out=0x0
[ 8.794811] snd_hda_codec_realtek hdaudioC2D0: inputs:
[ 8.794812] snd_hda_codec_realtek hdaudioC2D0: Mic=0x19
"arecord -Dhw:2,0 test.wav" fails with "Sample format non available", adding one of the formats it says are available (S16_LE and S32_LE) then fails with "Channels count non available".
Blacklisting snd_hda_intel causes the speakers to disappear too, and adding "snd_rn_pci_acp3x.dmic_acpi_check=1" to the kernel command line doesn't fix the problem.
Offline
It turns out that to get the microphone to work I had to add a quirk entry to the acp6x kernel driver by applying a patch like this one: https://lore.kernel.org/all/20230227234 … gmail.com/ with the board name adjusted with what I got from alsa-info ("8A42" instead of "8A43" in my case).
Offline
Pages: 1