You are not logged in.
The microphone on my laptop shows up as a 4 channel input. The problem is that applications try use the mic as a generic 4 input channel microphone, even though I think the channels serve different purposes. By recording some audio and listening to the channels individually I've observed the following
Channel 1 — Sits left of the webcam, sounds clear and good to me
Channel 2 — Sits to the right of the webcam, sounds *extremely* noisy, this is a problem when I use the mic as is
Channel 3 — Is positioned on the front edge of the laptop, in the center just below the trackpad, sounds good to me but picks up a lot of keyboard/trackpad noise
Channel 4 — Is positioned inside the left speaker grill, sounds not great either, picks up a lot of sound from the speakers
As a workaround, I've created a pipewire config for my user, that creates a loopback source that only captures the first channel from the mic array, that at least removes the extremely noisy mic channels and works okay-ish.
I think, however, I may be missing a driver, or perhaps something has been misconfigured.
Logs
$ cat /sys/class/sound/hwC0D0/chip_name
ALC287$ pactl list sources
Source #65
State: SUSPENDED
Name: alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source
Description: Lunar Lake-M HD Audio Controller Digital Microphone
Driver: PipeWire
Sample Specification: s32le 4ch 48000Hz
Channel Map: front-left,front-right,rear-left,rear-right
Owner Module: 4294967295
Mute: no
Volume: front-left: 65536 / 100% / 0.00 dB, front-right: 65536 / 100% / 0.00 dB, rear-left: 65536 / 100% / 0.00 dB, rear-right: 65536 / 100% / 0.00 dB
balance 0.00
Base Volume: 65536 / 100% / 0.00 dB
Monitor of Sink: n/a
Latency: 0 usec, configured 0 usec
Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY
Properties:
alsa.card = "0"
alsa.card_name = "sof-hda-dsp"
alsa.class = "generic"
alsa.components = "HDA:80862820,80860101,00100000 HDA:10ec0287,17aa3916,00100002 cfg-dmics:4 iec61937-pcm:5,4,3"
alsa.device = "6"
alsa.driver_name = "snd_soc_skl_hda_dsp"
alsa.id = "DMIC Raw (*)"
alsa.long_card_name = "LENOVO-83JQ-Yoga72_in_114ILL10-LNVNB161216"
alsa.mixer_device = "_ucm0001.hw:sofhdadsp"
alsa.mixer_name = "Realtek ALC287"
alsa.name = ""
alsa.resolution_bits = "32"
alsa.subclass = "generic-mix"
alsa.subdevice = "0"
alsa.subdevice_name = "subdevice #0"
alsa.sync.id = "00000000:00000000:00000000:00000000"
api.alsa.card.longname = "LENOVO-83JQ-Yoga72_in_114ILL10-LNVNB161216"
api.alsa.card.name = "sof-hda-dsp"
api.alsa.open.ucm = "true"
api.alsa.path = "hw:sofhdadsp,6"
api.alsa.pcm.card = "0"
api.alsa.pcm.stream = "capture"
audio.channels = "4"
audio.position = "FL,FR,RL,RR"
card.profile.device = "5"
device.api = "alsa"
device.bus = "pci"
device.class = "sound"
device.icon_name = "audio-input-microphone"
device.id = "47"
device.profile.description = "Digital Microphone"
device.profile.name = "HiFi: Mic1: source"
device.routes = "1"
factory.name = "api.alsa.pcm.source"
media.class = "Audio/Source"
device.description = "Lunar Lake-M HD Audio Controller"
node.name = "alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source"
node.nick = "Digital Microphone"
node.pause-on-idle = "false"
object.path = "alsa:acp:sofhdadsp:5:capture"
port.group = "capture"
priority.driver = "1648"
priority.session = "1648"
factory.id = "19"
clock.quantum-limit = "8192"
client.id = "45"
node.driver = "true"
node.loop.name = "data-loop.0"
library.name = "audioconvert/libspa-audioconvert"
object.id = "65"
object.serial = "65"
api.acp.auto-port = "false"
api.acp.auto-profile = "false"
api.alsa.card = "0"
api.alsa.split-enable = "true"
api.alsa.use-acp = "true"
api.dbus.ReserveDevice1 = "Audio0"
api.dbus.ReserveDevice1.Priority = "-20"
device.bus_path = "pci-0000:00:1f.3-platform-skl_hda_dsp_generic"
device.enum.api = "udev"
device.name = "alsa_card.pci-0000_00_1f.3-platform-skl_hda_dsp_generic"
device.nick = "sof-hda-dsp"
device.plugged.usec = "3525711"
device.product.id = "0xa828"
device.product.name = "Lunar Lake-M HD Audio Controller"
device.subsystem = "sound"
sysfs.path = "/devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0"
device.vendor.id = "0x8086"
device.vendor.name = "Intel Corporation"
spa.object.id = "2"
device.string = "0"
Ports:
[In] Mic1: Digital Microphone (type: Mic, priority: 100, availability unknown)
Active Port: [In] Mic1
Formats:
pcmAnd dmesg output:
$ sudo dmesg | grep -i sof-
[ 3.120868] sof-audio-pci-intel-lnl 0000:00:1f.3: Digital mics found on Skylake+ platform, using SOF driver
[ 3.120885] sof-audio-pci-intel-lnl 0000:00:1f.3: enabling device (0000 -> 0002)
[ 3.120983] sof-audio-pci-intel-lnl 0000:00:1f.3: DSP detected with PCI class/subclass/prog-if 0x040100
[ 3.121044] sof-audio-pci-intel-lnl 0000:00:1f.3: bound 0000:00:02.0 (ops intel_audio_component_bind_ops [xe])
[ 3.127781] sof-audio-pci-intel-lnl 0000:00:1f.3: use msi interrupt mode
[ 3.165984] sof-audio-pci-intel-lnl 0000:00:1f.3: hda codecs found, mask 5
[ 3.165988] sof-audio-pci-intel-lnl 0000:00:1f.3: using HDA machine driver skl_hda_dsp_generic now
[ 3.165989] sof-audio-pci-intel-lnl 0000:00:1f.3: NHLT device BT(0) detected, ssp_mask 0x4
[ 3.165990] sof-audio-pci-intel-lnl 0000:00:1f.3: BT link detected in NHLT tables: 0x4
[ 3.165992] sof-audio-pci-intel-lnl 0000:00:1f.3: DMICs detected in NHLT tables: 4
[ 3.168780] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware paths/files for ipc type 1:
[ 3.168782] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware file: intel/sof-ipc4/lnl/sof-lnl.ri
[ 3.168782] sof-audio-pci-intel-lnl 0000:00:1f.3: Firmware lib path: intel/sof-ipc4-lib/lnl
[ 3.168783] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology file: intel/sof-ipc4-tplg/sof-hda-generic-4ch.tplg
[ 3.169096] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
[ 3.432810] sof-audio-pci-intel-lnl 0000:00:1f.3: Booted firmware version: 2.13.0.1
[ 3.451285] sof-audio-pci-intel-lnl 0000:00:1f.3: Topology: ABI 3:29:1 Kernel ABI 3:23:1
[ 3.451704] sof-audio-pci-intel-lnl 0000:00:1f.3: Loaded firmware library: ADSPFW, version: 2.13.0.1
[ 3.538140] input: sof-hda-dsp Mic as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input21
[ 3.538256] input: sof-hda-dsp Headphone as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input22
[ 3.538363] input: sof-hda-dsp HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input23
[ 3.538425] input: sof-hda-dsp HDMI/DP,pcm=4 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input24
[ 3.538502] input: sof-hda-dsp HDMI/DP,pcm=5 as /devices/pci0000:00/0000:00:1f.3/skl_hda_dsp_generic/sound/card0/input25and lspci output
# lspci -vvv
...
00:1f.3 Multimedia audio controller: Intel Corporation Lunar Lake-M HD Audio Controller (rev 10)
Subsystem: Lenovo Device 383a
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 32, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 191
Region 0: Memory at 3013200000 (64-bit, non-prefetchable) [size=512K]
Region 4: Memory at 3013000000 (64-bit, non-prefetchable) [size=2M]
Capabilities: [50] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
Capabilities: [c0] Vendor Specific Information: Intel <unknown>
Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+
Address: 00000000fee10000 Data: 0025
Kernel driver in use: sof-audio-pci-intel-lnl
Kernel modules: snd_sof_pci_intel_lnl, snd_hda_intel
...and finally
# nhlt-dmic-info
{
"mics-data-version":1,
"mics-data-source":"acpi-nhlt",
"mics":[
{
"channel":0,
"type":"vendor",
"location":"laptop-front-panel",
"horizontal-offset":-25,
"freq-low-band":100,
"freq-high-band":20000,
"vertical-angle-begin":-60,
"vertical-angle-end":60,
"horizontal-angle-begin":-50,
"horizontal-angle-end":50
},
{
"channel":1,
"type":"vendor",
"location":"laptop-front-panel",
"horizontal-offset":25,
"freq-low-band":100,
"freq-high-band":20000,
"vertical-angle-begin":-60,
"vertical-angle-end":60,
"horizontal-angle-begin":-50,
"horizontal-angle-end":50
},
{
"channel":2,
"type":"vendor",
"location":"laptop-front-panel",
"speaker-distance":225,
"vertical-offset":-222,
"freq-low-band":100,
"freq-high-band":20000,
"vertical-angle-begin":-60,
"vertical-angle-end":60,
"horizontal-angle-begin":-50,
"horizontal-angle-end":50
},
{
"channel":3,
"type":"vendor",
"location":"laptop-front-panel",
"speaker-distance":70,
"horizontal-offset":-151,
"vertical-offset":-222,
"freq-low-band":100,
"freq-high-band":20000,
"elevation-angle":90,
"vertical-angle-begin":-60,
"vertical-angle-end":60,
"horizontal-angle-begin":-50,
"horizontal-angle-end":50
}
]
}Offline