2

On thing in advance: I tried looking for any questions about the same problem.
Of course there are plenty about sound problems in Ubuntu, but they are

My situation seems to be special, almost a bit spooky I'd say...

The Problem

The very short version: I am unable to get a signal from the internal microphone of my laptop. A headset plugged into the headphone/mic combo jack works fine. The internal microphone technically works, though - see the observations below. Please read to what's going on in pavucontrol, because things get rather weird there and I think it's the best clue I have...

My System

  • Device: Lenovo ThinkPadd T495 (specs), Ryzen 7 Pro 3700U, running current firmware
  • OS: Pop!_OS 20.04 LTS (based on Ubuntu)
  • Audio-related hardware: HD Audio, Realtek ALC3287 codec (stereo speakers, internal stereo microphone & combo audio jack for headset)

arecord -l says:

**** List of CAPTURE Hardware Devices ****
card 1: Generic_1 [HD-Audio Generic], device 0: ALC257 Analog [ALC257 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 2: acp [acp], device 0: DMIC capture dmic-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

Observations

When did it break?

It all worked beautifully a few weeks ago, now it doesn't. I tried running a fresh live system of my OS (same version) from a thumb drive to see whether it's just a matter of a broken config, but it had the same issues. So I think the problem came with an OS update (I guess the audio stuff isn't changed by Pop!_OS, that's why I am asking this as Ubuntu user).

OS sound settings

enter image description here
Without headphones plugged in. There's no signal from the internal microphone, which i suppose should be the default sound input in this situation and is meant by Digital Microphone, right?

enter image description here
With headphones plugged in. Now there's a device Headphones Stereo Microphone I get a signal from (the headset mic).

alsamixer

This is the Realtek audio device selected in alsamixer:
enter image description here
Please note how Mic Boost and Internal Mic are not set to silence.

A very interesting observation is that Mic Mute (which seems to control the LED in the mic mute media key on my keyboard) is set to Follow M (M for mute), but when I toggle that key (without headphones plugged in), the LED stays off. The OS overlay tells me it muted Digital Microphone. If I plug in the headset and press the mic mute key, the LED works! It seems like my system is only caring about the headphone mic, whether it's plugged in or not!

Now if this isn't weird already, see what comes next...

pavucontrol

This is what the "Input Devices" tab of pavucontrol shows me when the headphones are plugged in:
enter image description here
There's no signal from "Digital Microphone" (only option), but there is a signal from "Headphones Stereo Microphone (plugged in)" (only option). This makes sense, as a plugged in headphone's mic should be higher priority than the internal mic. The recorded signal really is coming from the headphone mic, I tested it. But this is where it gets silly...

This is what it shows me with unplugged headphones (!):
enter image description here
Okay now see this: Still no signal from "Digital Microphone" (only option), but there is a signal from "Headphones Stereo Microphone (unplugged)" (only option)!

What?! I get a signal from an unplugged mic? Of course not. Turns out this actually is the signal of my internal mic! So it is working but my system somehow... I don't know... routes it to the headphones device? What is happening here?

Of course I cannot select the "unplugged headset microphone" as an audio source in any application! So my internal microphone is useless at the moment :(

What I need

If it isn't obvious enough: I want the internal mic to work when the headphones are unplugged, just like it's supposed to be. And the "mute mic" key on my keyboard with it's LED should control the currently active microphone. Currently it only seems to know the headset mic.

I tried a lot here but I am unable to figure this one out. Does anyone have an Idea what could be the reason for this strange behavior? Is there anything else I could try? Thank you in advance!

2 Answers 2

2

I have similar (same?) problem on Lenovo E14 Gen2 Ryzen laptop.

My conclusion so far is that the laptop doesn't actually have a DMIC, and the internal mic(s) are connected to the audio codec, as shown by your experiments.

I'm going to raise this issue on the alsa-dev mailing list and see if the experts can shed any light on the situation.

Possibly relevant info: https://www.mail-archive.com/touch-packages@lists.launchpad.net/msg312427.html

EDIT: Following up on the conclusion that the DMIC is spurious in this case, I disabled it by blacklisting the relevant kernel module(s).

Create new file /etc/modprobe.d/blacklist-local.conf Add

blacklist snd-soc-dmic
blacklist snd-acp3x-rn
blacklist snd-acp3x-pdm-dma

and reboot.
Now the DMIC is gone. pulseaudio reports 2 ports under Input Devices via pavucontrol

  • Internal Microphone + Microphone (unplugged) OR
  • Internal Microphone (unplugged) + Microphone (plugged in)

It doesn't matter which port I select, I still see audio from the mic on the level meter.

1
  • Thank you for this - it somewhat improved my situation: Now a can use my internal microphone again (yay!), but as my system now only knows either my headset (when plugged in or my internal mic + speakers (when headset unplugged), I can't use my headset as an output and my internal mic as an input at the same time. But I guess this luxury from now on...
    – bkis
    Oct 15, 2020 at 14:55
1

On my laptop there is a fix that works 100% (meaning I can use both my headphones and internal mic).

The solution was just:

blacklist snd-soc-dmic

(without the other 2)

In addition to that, at that time I also had:

blacklist snd_pci_acp3x

Since my ubuntu was outputting a boot-up warning of "Invalid ACP mode: 1". I'm gonna remove it from the blacklist though since it seems that wasn't the culprit but instead soc-dmic was the real troublemaker.

Edit: Seems that my assumption was correct. Ater un-blacklisting snd_pci_acp3x I once again get the "Invalid ACP mode ..." errors, but the microphone and headphones seem to be working IIRC

1
  • This appeared to be the answer on a Lenovo Ideapad 3 15ARE05 running Ubuntu 20.10. I just blocked snd-soc-dmic and everything got detected correctly. Jan 25, 2021 at 23:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.