External 2-in-1 mic not detected/working while attached external headphones do work, and internal speakers and microphone do work

Hello all,

I recently installed Manjaro on my laptop and have run into an audio problem as described in the title. I’ve attempted to read a number of support articles without much success yet (such as this one: Microphone not taking input)

For starters, my laptop hardware is: Acer Spin SP513-52N

I have a 2-in-1 microphone headset that works on the same laptop in Windows 11 (dual boot) so I know the hardware is fine.

When I run inxi -A I get the following:

  Device-1: Intel Sunrise Point-LP HD Audio driver: snd_hda_intel
  Sound Server-1: ALSA v: k5.15.25-1-MANJARO running: yes
  Sound Server-2: PipeWire v: 0.3.47 running: yes

arecord -l produces the following:

card 0: PCH [HDA Intel PCH], device 0: ALC295 Analog [ALC295 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

aplay -l produces the following:

card 0: PCH [HDA Intel PCH], device 0: ALC295 Analog [ALC295 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 9: HDMI 3 [HDMI 3]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 10: HDMI 4 [HDMI 4]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

I tried entirely removing pulse audio and doing a full install of pipewire per some other support threads. This didn’t negatively affect audio in any way, but did not improve things either.

if I do pactl list sources I get this:

        State: SUSPENDED
        Name: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
        Description: Monitor of Built-in Audio Analog Stereo
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        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
        Monitor of Sink: alsa_output.pci-0000_00_1f.3.analog-stereo
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE DECIBEL_VOLUME LATENCY 
        Properties:
                object.path = "alsa:pcm:0:front:0:playback"
                api.alsa.path = "front:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                device.routes = "2"
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "monitor"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "ALC295 Analog"
                alsa.id = "ALC295 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 0xb1228000 irq 128"
                alsa.driver_name = "snd_hda_intel"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                card.profile.device = "8"
                device.id = "42"
                factory.name = "api.alsa.pcm.sink"
                priority.driver = "1009"
                priority.session = "1009"
                media.class = "Audio/Sink"
                node.nick = "HDA Intel PCH"
                node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo"
                device.description = "Built-in Audio Analog Stereo"
                device.icon_name = "audio-card-analog"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:1f.3"
                device.form_factor = "internal"
                node.pause-on-idle = "false"
                factory.id = "18"
                client.id = "32"
                clock.quantum-limit = "8192"
                node.driver = "true"
                factory.mode = "merge"
                audio.adapt.follower = ""
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "45"
                object.serial = "44"
                node.max-latency = "16384/48000"
        Formats:
                pcm

Source #45
        State: SUSPENDED
        Name: alsa_input.pci-0000_00_1f.3.analog-stereo
        Description: Built-in Audio Analog Stereo
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        Volume: front-left: 48287 /  74% / -7.96 dB,   front-right: 48287 /  74% / -7.96 dB
                balance 0.00
        Base Volume: 6554 /  10% / -60.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:
                object.path = "alsa:pcm:0:front:0:capture"
                api.alsa.path = "front:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "capture"
                audio.channels = "2"
                audio.position = "FL,FR"
                device.routes = "1"
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "ALC295 Analog"
                alsa.id = "ALC295 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 0xb1228000 irq 128"
                alsa.driver_name = "snd_hda_intel"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                card.profile.device = "0"
                device.id = "42"
                factory.name = "api.alsa.pcm.source"
                priority.driver = "2009"
                priority.session = "2009"
                media.class = "Audio/Source"
                node.nick = "HDA Intel PCH"
                node.name = "alsa_input.pci-0000_00_1f.3.analog-stereo"
                device.description = "Built-in Audio Analog Stereo"
                device.icon_name = "audio-input-microphone-analog"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:1f.3"
                device.form_factor = "internal"
                node.pause-on-idle = "false"
                factory.id = "18"
                client.id = "32"
                clock.quantum-limit = "8192"
                node.driver = "true"
                factory.mode = "split"
                audio.adapt.follower = ""
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "46"
                object.serial = "45"
                node.max-latency = "16384/48000"
        Ports:
                analog-input-internal-mic: Internal Microphone (type: Mic, priority: 8900, availability group: Legacy 1, availability unknown)
        Active Port: analog-input-internal-mic
        Formats:
                pcm

if I do pactl list sinks I get:

        State: SUSPENDED
        Name: alsa_output.pci-0000_00_1f.3.analog-stereo
        Description: Built-in Audio Analog Stereo
        Driver: PipeWire
        Sample Specification: s32le 2ch 48000Hz
        Channel Map: front-left,front-right
        Owner Module: 4294967295
        Mute: no
        Volume: front-left: 48287 /  74% / -7.96 dB,   front-right: 48287 /  74% / -7.96 dB
                balance 0.00
        Base Volume: 65536 / 100% / 0.00 dB
        Monitor Source: alsa_output.pci-0000_00_1f.3.analog-stereo.monitor
        Latency: 0 usec, configured 0 usec
        Flags: HARDWARE HW_MUTE_CTRL HW_VOLUME_CTRL DECIBEL_VOLUME LATENCY 
        Properties:
                object.path = "alsa:pcm:0:front:0:playback"
                api.alsa.path = "front:0"
                api.alsa.pcm.card = "0"
                api.alsa.pcm.stream = "playback"
                audio.channels = "2"
                audio.position = "FL,FR"
                device.routes = "2"
                alsa.resolution_bits = "16"
                device.api = "alsa"
                device.class = "sound"
                alsa.class = "generic"
                alsa.subclass = "generic-mix"
                alsa.name = "ALC295 Analog"
                alsa.id = "ALC295 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 0xb1228000 irq 128"
                alsa.driver_name = "snd_hda_intel"
                device.profile.name = "analog-stereo"
                device.profile.description = "Analog Stereo"
                card.profile.device = "8"
                device.id = "42"
                factory.name = "api.alsa.pcm.sink"
                priority.driver = "1009"
                priority.session = "1009"
                media.class = "Audio/Sink"
                node.nick = "HDA Intel PCH"
                node.name = "alsa_output.pci-0000_00_1f.3.analog-stereo"
                device.description = "Built-in Audio Analog Stereo"
                device.icon_name = "audio-card-analog"
                device.bus = "pci"
                device.bus_path = "pci-0000:00:1f.3"
                device.form_factor = "internal"
                node.pause-on-idle = "false"
                factory.id = "18"
                client.id = "32"
                clock.quantum-limit = "8192"
                node.driver = "true"
                factory.mode = "merge"
                audio.adapt.follower = ""
                library.name = "audioconvert/libspa-audioconvert"
                object.id = "45"
                object.serial = "44"
                node.max-latency = "16384/48000"
        Ports:
                analog-output-speaker: Speakers (type: Speaker, priority: 10000, availability group: Legacy 2, not available)
                analog-output-headphones: Headphones (type: Headphones, priority: 9900, availability group: Legacy 3, available)
        Active Port: analog-output-headphones
        Formats:
                pcm

So it looks like for sinks, pipewire is detecting the proper optional headphone output port, but for sources pipewire is not detecting the proper options headset input port. (before I removed pulseaudio and installed pipewire, it was showing the same ports for sources and sinks)

I also tried to add the only alc295 entry from here (HD-Audio Codec-Specific Models — The Linux Kernel documentation) to /etc/modprobe.d/alsa-base.conf but this didn’t change anything after a reboot so I removed it.

Any advice on where to go from here? I’m trying my best to learn the structure of linux audio as I go. Unfortunately, I don’t know where/how pulseaudio/pipewire get ports from sources and sinks listed in alsa so I don’t know how to manually query it to see if they are getting the right information.

Thanks for any assistance!

You can try turning off ACP or turning on UVM in your Pipewire media-session config file according to this article: PipeWire - ArchWiki

A similar problem with external microphone on Acer Spin 5 - SP513-54N was reported to Bugzilla
https://bugzilla.kernel.org/show_bug.cgi?id=211853

Developers used a patch originally created for ALC255 codec
patch_realtek.c - sound/pci/hda/patch_realtek.c - Linux source code (v5.15.25) - Bootlin

Use this command to add the model option suggested

sudo tee /etc/modprobe.d/external-mic.conf <<< 'snd_sof_intel_hda_common hda_model=alc255-acer'

filename external-mic.conf is not critical and can be changed, but it must have .conf suffix

1 Like

Hey, thanks for taking time to reply. Sorry for the delay, work was extremely busy the last week or so.

@BluishHumility, I tried to create the relevant alsa-monitor.conf file per the documentation under /etc/pipewire/media-session.d (as pipewire was the folder that existed, not wireplumber) but it didn’t change the situation.

 rules = [
{
actions = {
update-props = {
api.alsa.use-acp = false
api.alsa.use-ucm = true
}
}
}
]

The above is the content of the .conf file I created.

@nikgnomic, unfortunately, doing what you’ve suggested here also didn’t resolve the microphone issue.

Any other ideas or ways to dig into what might be happening?

Thanks!

It might be worth a shot trying a different kernel. If you are on the most recent kernel you could try LTS, or vice-versa.

Check ALC295 configuration for external mic jack connection in

sudo alsa-info.sh --upload

@nikgnomic

I pulled the relevant info but I am having a hard time parsing it for where I would see external mic jack connections other than arecord. The link to the results is below:

http://alsa-project.org/db/?f=22272f5d3f2f89db7d449eeea5a03b253f126201

@BluishHumility - I’ll give that a try next

Any update on this? I have the same issue.

Here is my alsa information:
http://alsa-project.org/db/?f=99004ce4af563beffadaf978516889211596b369