Internal Mic stopped working

Hello Spacemans :space_invader:

I just moved from vanilla Arch since it was a bit too messy to setup a Razer Blade 15 Advanced Model (Early 2020) so I went ahead and tried a couple of distros but so far EnveavourOS really beats them all.

I went ahead and setup the i3 version with lightdm and optimus-manger to switch between cards and I installed the sof-firmware as it was suggested on the wiki, I setup pulseaudio and pavucontrol and everything was just working fine…until a week ago

As I boot my laptop and hop on a conference call on Skype I realize that my internal microphone is no longer active. I been trying to fix it for more than a week and looked everywhere but no luck

**pacmd list-sinks**

2 sink(s) available.
index: 0
name: <alsa_output.pci-0000_00_1f.3.analog-stereo>
driver: <module-alsa-card.c>
flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
state: SUSPENDED
suspend cause: IDLE
priority: 9039
volume: front-left: 26596 / 41% / -23,50 dB, front-right: 26596 / 41% / -23,50 dB
balance 0,00
base volume: 65536 / 100% / 0,00 dB
volume steps: 65537
muted: no
current latency: 0,00 ms
max request: 0 KiB
max rewind: 0 KiB
monitor source: 0
sample spec: s16le 2ch 44100Hz
channel map: front-left,front-right
Stereo
used by: 0
linked by: 0
configured latency: 0,00 ms; range is 0,50 … 2000,00 ms
card: 1 <alsa_card.pci-0000_00_1f.3>
module: 7
properties:
alsa.resolution_bits = “16”
device.api = “alsa”
device.class = “sound”
alsa.class = “generic”
alsa.subclass = “generic-mix”
alsa.name = “ALC298 Analog”
alsa.id = “ALC298 Analog”
alsa.subdevice = “0”
alsa.subdevice_name = “subdevice #0”
alsa.device = “0”
alsa.card = “0”
alsa.card_name = “HDA Intel PCH”
alsa.long_card_name = “HDA Intel PCH at 0x6044118000 irq 185”
alsa.driver_name = “snd_hda_intel”
device.bus_path = “pci-0000:00:1f.3”
sysfs.path = “/devices/pci0000:00/0000:00:1f.3/sound/card0”
device.bus = “pci”
device.vendor.id = “8086”
device.vendor.name = “Intel Corporation”
device.product.id = “06c8”
device.product.name = “Comet Lake PCH cAVS”
device.form_factor = “internal”
device.string = “front:0”
device.buffering.buffer_size = “352800”
device.buffering.fragment_size = “176400”
device.access_mode = “mmap+timer”
device.profile.name = “analog-stereo”
device.profile.description = “Analog Stereo”
device.description = “Built-in Audio Analog Stereo”
module-udev-detect.discovered = “1”
device.icon_name = “audio-card-pci”
ports:
analog-output-speaker: Speakers (priority 10000, latency offset 0 usec, available: unknown)
properties:
device.icon_name = “audio-speakers”
analog-output-headphones: Headphones (priority 9900, latency offset 0 usec, available: no)
properties:
device.icon_name = “audio-headphones”
active port:

  • index: 4
    name: <alsa_output.pci-0000_01_00.1.hdmi-stereo>
    driver: <module-alsa-card.c>
    flags: HARDWARE DECIBEL_VOLUME LATENCY DYNAMIC_LATENCY
    state: SUSPENDED
    suspend cause: IDLE
    priority: 9030
    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: 0,00 ms
    max request: 0 KiB
    max rewind: 0 KiB
    monitor source: 5
    sample spec: s16le 2ch 44100Hz
    channel map: front-left,front-right
    Stereo
    used by: 0
    linked by: 0
    configured latency: 0,00 ms; range is 0,50 … 1999,82 ms
    card: 0 <alsa_card.pci-0000_01_00.1>
    module: 6
    properties:
    alsa.resolution_bits = “16”
    device.api = “alsa”
    device.class = “sound”
    alsa.class = “generic”
    alsa.subclass = “generic-mix”
    alsa.name = “HDMI 0”
    alsa.id = “HDMI 0”
    alsa.subdevice = “0”
    alsa.subdevice_name = “subdevice #0”
    alsa.device = “3”
    alsa.card = “1”
    alsa.card_name = “HDA NVidia”
    alsa.long_card_name = “HDA NVidia at 0xa4080000 irq 17”
    alsa.driver_name = “snd_hda_intel”
    device.bus_path = “pci-0000:01:00.1”
    sysfs.path = “/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1”
    device.bus = “pci”
    device.vendor.id = “10de”
    device.vendor.name = “NVIDIA Corporation”
    device.product.id = “10f8”
    device.product.name = “TU104 HD Audio Controller”
    device.string = “hdmi:1”
    device.buffering.buffer_size = “352768”
    device.buffering.fragment_size = “176384”
    device.access_mode = “mmap+timer”
    device.profile.name = “hdmi-stereo”
    device.profile.description = “Digital Stereo (HDMI)”
    device.description = “TU104 HD Audio Controller Digital Stereo (HDMI)”
    module-udev-detect.discovered = “1”
    device.icon_name = “audio-card-pci”
    ports:
    hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: yes)
    properties:
    device.icon_name = “video-display”
    device.product.name = "SAMSUNG
    "
    active port:
arecord -l

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC298 Analog [ALC298 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

My thoughts through my journey in fixing the mic:

  • I don’t think is the kernel modules since I never added them and it worked just fine before
  • I added the specific hardware device in the default.pa in /etc/pulse but that just changed the pavucontrol interface by showing me the devices I plugged in
  • Having a hybrid setup might raise a problem in terms of device being active based on the card running (I am not sure if NVIDIA also includes a microphone channel
  • I checked alsamixer to make sure that it wasn’t muted but it’s a bit confusing so maybe the problem has to do with the setup of alsa itself

Firstly, don’t change any configuration if it worked before. If you didn’t change anything then it’s not due to something you’ve configured.

Initial things to try:

  1. Verifying device configuration in pavucontrol is set to Duplex and microphone isn’t muted
  2. Updating
  3. Trying a different kernel (e.g. linux-lts, linux-lqx).
  4. Picking the newest kernel out of testing (if it’s different to the one you’re running when you read this)
2 Likes

Thank you kindly for the help. I just installed the newest lts-kernel since I am expecting to be a bit more stable but unfortunately that and updating ( pacman -Syyu didn’t solve the problem…

As far as I understand pulseaudio and pavucontrol are just interfaces for alsamixer but at the end of the the day is alsa thta talks to the components correct ?

If you want to check alsamixer then you’re looking for the Capture view for your soundcard:

image

I’d also recommend you look again at pavucontrol - if arecord -l can see the microphone then Pulseaudio should be able to see it too.

1 Like

image imagepavu

yep in fact pavucontrol recognizes only the microphone and not the internal one

Mine lets me select the microphone port:

image

If you have an external microphone plugged in then it’s unlikely the internal mic will work at the same time?

No other microphones connected… I only see Internal Microphone (unplugged) but it’s a laptop

Might be worth checking the Arch wiki for a similar model to see if there are any “quirks” (module options) needed for the audio chipset…

yep I been reading that but wasn’t able to find a solution I discovered this tool which is part of alsa-tools and is called hdajackretask. I guess it helps with loading modules in the kernel

solution

SOLUTION : I installed linux-lts kernel, (it may work on other kernels as well I went with LTS cause is the most stable ) opened hdajackretask, select the Realtek codec, override “Black Mic, Right Side” (the non-internal mic) and set it to “Not connected”. (this apparently forces the internal microphone to work)

Thanks for not giving up Jonathon

1 Like

Without knowing what laptop you have I can only guess, but this looks related:

https://bbs.archlinux.org/viewtopic.php?id=252295&p=2

It says a quirk was backported to 5.4.46 (i.e. linux-lts) so if this stopped working it’s possibly a regression (so try 5.10, i.e. linux) or you broke something in the past week (e.g. it was just Skype that didn’t work and you messed up the configuration while trying to fix something that wasn’t broken).

Also worth checking the snd_hda_intel module options, e.g.:

If the person I’m helping is clearly doing research and trying things out it makes helping a whole heck of a lot nicer. So thank you. :wink:

2 Likes