[Acer Spin 5 - SP513-54N] External headset microphone not working on Ubuntu 21.04 (not even wired, cable headset)

Bug #1912052 reported by crysman
18
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Linux
Fix Released
Medium
linux (Ubuntu)
Status tracked in Jammy
Bionic
Undecided
Po-Hsu Lin
Focal
Undecided
Unassigned
Hirsute
Undecided
Unassigned
Impish
Undecided
Unassigned
Jammy
Undecided
Unassigned

Bug Description

Recently, external microphone has stopped working while using classic wired audio combo jack headset.

Basics:

1) Headset's microphone works fine both in MS Windows on the same machine and on older Xubuntu on another machine.
2) Internal laptop mic works normally.
3) Yes, I have mic unmuted in settings.

I've followed whole step1 from this troubleshoot guide:
https://help.ubuntu.com/community/SoundTroubleshootingProcedure

Did not help.

There are more information with screenshots here: https://askubuntu.com/questions/1305942/external-headset-microphone-not-working-on-ubuntu-20-10-not-even-wired-cable-h:

ProblemType: Bug
DistroRelease: Ubuntu 20.10
Package: pulseaudio 1:13.99.2-1ubuntu2.1
ProcVersionSignature: Ubuntu 5.8.0-38.43-generic 5.8.18
Uname: Linux 5.8.0-38-generic x86_64
ApportVersion: 2.20.11-0ubuntu50.3
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: crysman 2301 F.... pulseaudio
CasperMD5CheckResult: skip
CurrentDesktop: ubuntu:GNOME
Date: Sat Jan 16 13:31:13 2021
InstallationDate: Installed on 2020-06-19 (210 days ago)
InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Release amd64 (20200423)
SourcePackage: pulseaudio
UpgradeStatus: Upgraded to groovy on 2020-12-08 (38 days ago)
dmi.bios.date: 07/17/2020
dmi.bios.release: 1.5
dmi.bios.vendor: Insyde Corp.
dmi.bios.version: V1.05
dmi.board.name: Caboom_IL
dmi.board.vendor: IL
dmi.board.version: V1.05
dmi.chassis.type: 31
dmi.chassis.vendor: Acer
dmi.chassis.version: V1.05
dmi.ec.firmware.release: 1.2
dmi.modalias: dmi:bvnInsydeCorp.:bvrV1.05:bd07/17/2020:br1.5:efr1.2:svnAcer:pnSpinSP513-54N:pvrV1.05:rvnIL:rnCaboom_IL:rvrV1.05:cvnAcer:ct31:cvrV1.05:
dmi.product.family: Spin 5
dmi.product.name: Spin SP513-54N
dmi.product.sku: 0000000000000000
dmi.product.version: V1.05
dmi.sys.vendor: Acer

Revision history for this message
crysman (crysman) wrote :
description: updated
Revision history for this message
crysman (crysman) wrote :

I've tried to boot a fresh USB live 20.10 Ubuntu, not working either...

Revision history for this message
crysman (crysman) wrote :
summary: - external headset microphone not working on Ubuntu 20.10 (not even wired,
- cable headset)
+ [Acer Spin 5 - SP513-54N] External headset microphone not working on
+ Ubuntu 20.10 (not even wired, cable headset)
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: [Acer Spin 5 - SP513-54N] External headset microphone not working on Ubuntu 20.10 (not even wired, cable headset)

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in pulseaudio (Ubuntu):
status: New → Confirmed
Revision history for this message
In , crysman (crysman-linux-kernel-bugs) wrote :

Created attachment 295367
alsa-info-0.4.65_output

Simply put, external microphone (classic cable jack input) does not work.

I've already described thoroughly the whole issue on various places, choose your favorite:

- https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1912052
- https://askubuntu.com/questions/1305942/external-headset-microphone-not-working-in-ubuntu-20-10-not-even-wired-cable-h

Might be related?:
- https://bugzilla.kernel.org/show_bug.cgi?id=195457#c29

I'm attaching the output of this ( https://git.alsa-project.org/?p=alsa-utils.git;a=blob_plain;f=alsa-info/alsa-info.sh;hb=HEAD )

Revision history for this message
Carla Sella (carla-sella) wrote :

I have a DELL XPS-8940 and both a usb mic or 3.5mm jack mic do not work.
They are detected by the operating system and listed in Input section of sound settings, but they do not work, no sound is detected when talking or recording.

        *-multimedia
             description: Audio device
             product: Comet Lake PCH cAVS
             vendor: Intel Corporation
             physical id: 1f.3
             bus info: pci@0000:00:1f.3
             version: 00
             width: 64 bits
             clock: 33MHz
             capabilities: pm msi bus_master cap_list
             configuration: driver=snd_hda_intel latency=32
             resources: irq:165 memory:e5418000-e541bfff memory:e5100000-e51fffff

         *-multimedia
                description: Audio device
                product: TU104 HD Audio Controller
                vendor: NVIDIA Corporation
                physical id: 0.1
                bus info: pci@0000:01:00.1
                version: a1
                width: 32 bits
                clock: 33MHz
                capabilities: pm msi pciexpress bus_master cap_list
                configuration: driver=snd_hda_intel latency=0
                resources: irq:17 memory:e5080000-e5083fff

$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC3861 Analog [ALC3861 Analog]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 2: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0

The strange thing is that the mic on my Logitech Webcam C310 works just fine.

Revision history for this message
In , tiwai (tiwai-linux-kernel-bugs) wrote :

First off, please try the latest kernel, at best 5.11. It makes further debugging easier.

After confirming the latest kernel still doesn't work, let's try to switch to the legacy HD-audio snd-hda-intel driver; we're checking only about the external mic, and it makes easier to debug, too. Boot with snd_intel_dspcfg.dsp_driver=1 boot option, and it'll forcibly use the legacy driver. Note that, with this, the built-in mic won't work with this.

Once after that, you can try to pass a different model option to snd-hda-intel module.

Revision history for this message
In , crysman (crysman-linux-kernel-bugs) wrote :

OK, I wait until Ubuntu ships 5.11 natively and then let you know.
5.10 will be not enough in 21.04?

Sad is that it used to work before - until some upgrade along the way...

Meanwhile, just tested "snd_intel_dspcfg.dsp_driver=1" boot option and... nope, has not fixed the problem. There is a change it the name of the device - something like "...Analog input..." instead of something like "...SmartSound Technology..." but external cable mic is not working nevertheless.

Regarding "passing different option to snd-..." I am not sure what you exacly mean? You mean try this "sudo hda-verb /dev/snd/hwC0D0 ...." kinda' hacking?

Thank you!

Revision history for this message
In , tiwai (tiwai-linux-kernel-bugs) wrote :

The debug will be based on 5.11.x, so it's better to move it at first.

About the different option to snd-hda-intel: no, you can pass "model" option to snd-hda-intel module to apply some device-specific quirk. For example,
  snd_hda_intel.model=alc255-acer
boot option will apply some Acer-specific workaround. Or try
  snd_hda_intel.model=headset-mic

There are quite many model options for the Realtek codecs. A part of available values are found in Documentation/sound/hd-audio/models.rst, the section for ALC269.

Revision history for this message
crysman (crysman) wrote :

For those having kernel 5.11 - you may debug already, being helped-out here https://bugzilla.kernel.org/show_bug.cgi?id=211853

Changed in linux (Ubuntu):
status: New → Confirmed
Changed in linux:
importance: Unknown → Medium
status: Unknown → Confirmed
Revision history for this message
In , pmenzel+bugzilla.kernel.org (pmenzel+bugzilla.kernel.org-linux-kernel-bugs) wrote :

crysman, with Ubuntu you can easily test Linux kernel releases using their builds [1]. Download the package and install with `sudo dpkg -i …`.

[1]: https://kernel.ubuntu.com/~kernel-ppa/mainline/

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for reporting this bug to Ubuntu.
Ubuntu 20.10 (groovy) reached end-of-life on July 22, 2021.

See this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We appreciate that this bug may be old and you might not be interested in discussing it any more. But if you are then please upgrade to the latest Ubuntu version and re-test. If you then find the bug is still present in the newer Ubuntu version, please add a comment here telling us which new version it is in.

Changed in linux (Ubuntu):
status: Confirmed → Won't Fix
Changed in pulseaudio (Ubuntu):
status: Confirmed → Won't Fix
Revision history for this message
In , amaramardhruva+kernel (amaramardhruva+kernel-linux-kernel-bugs) wrote :

I am not sure if this will help but I have a Acer Predator helios 300 with ALC295 and had to do the workaround snd_hda_intel model=alc255-acer for the Headphone microphone to work. Would love it if the kernel could automatically detect the card and apply the quirk.

Revision history for this message
crysman (crysman) wrote (last edit ):

Issue is still present in hirsute (21.04)

I've made a new test, currently on POPOS 21.04, kernel 5.13:

❱ uname -rv
5.13.0-7614-generic #14~1631647151~21.04~930e87c-Ubuntu SMP Fri Sep 17 00:24:58 UTC

1) default boot options:
========================
- internal mic works, external not

2) changed to intel_dspcfg.dsp_driver + headset-mic:
========================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro snd_intel_dspcfg.dsp_driver=1 snd_hda_intel.model=headset-mic

- neither mic works

3) changed to intel_dspcfg.dsp_driver + alc255-acer
=========================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash snd_intel_dspcfg.dsp_driver=1 snd_hda_intel.model=alc255-acer

- external mic is now working (!), when jack is plugged-in, it corerctly asks what device have I connected (headset or headphones?)
- internal mic is not working, though :(

4) it (does not) works with pci=nocrs, too:
================================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash pci=nocrs snd_intel_dspcfg.dsp_driver=1 snd_hda_intel.model=alc255-acer

So, this solution is not very practical, because when I do not have headset available at the moment, I cannot use internal microphone :(

EDIT 2021-10-31 15:37 CEST:
5) only alc255-acer:
====================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash pci=nocrs snd_hda_intel.model=alc255-acer

- internal mic works
- external does not :(

I've noticed some RED messages in dmesg, though - the latest seem to be relevant:

[ 0.089089] x86/cpu: SGX disabled by BIOS.
[ 0.670858] pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid
[ 0.672459] pci 0000:00:07.1: DPC: RP PIO log size 0 is invalid
[ 0.674048] pci 0000:00:07.2: DPC: RP PIO log size 0 is invalid
[ 0.675635] pci 0000:00:07.3: DPC: RP PIO log size 0 is invalid
[ 30.127898] snd_hda_codec_realtek ehdaudio0D0: didn't find PCM for DAI Digital Codec DAI
[ 30.127909] snd_hda_codec_realtek ehdaudio0D0: ASoC: error at snd_soc_dai_startup on Digital Codec DAI: -22
[ 30.127915] Digital Playback and Capture: soc_pcm_open() failed (-22)
[ 30.127919] HDA Digital: ASoC: dpcm_be_dai_startup() failed at Digital Playback and Capture (-22)
[ 30.127922] HDA Digital: dpcm_fe_dai_startup() failed (-22)
[ 30.128026] snd_hda_codec_realtek ehdaudio0D0: didn't find PCM for DAI Digital Codec DAI
[ 30.128030] snd_hda_codec_realtek ehdaudio0D0: ASoC: error at snd_soc_dai_startup on Digital Codec DAI: -22
[ 30.128034] Digital Playback and Capture: soc_pcm_open() failed (-22)
[ 30.128036] HDA Digital: ASoC: dpcm_be_dai_startup() failed at Digital Playback and Capture (-22)
[ 30.128039] HDA Digital: dpcm_fe_dai_startup() failed (-22)

Revision history for this message
In , crysman (crysman-linux-kernel-bugs) wrote :

I've made a new test, currently on POPOS 21.04, kernel 5.13:

❱ uname -rv
5.13.0-7614-generic #14~1631647151~21.04~930e87c-Ubuntu SMP Fri Sep 17 00:24:58 UTC

1) default boot options:
========================
- internal mic works, external not

2) changed to intel_dspcfg.dsp_driver + headset-mic:
========================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro snd_intel_dspcfg.dsp_driver=1 snd_hda_intel.model=headset-mic

- neither mic works

3) changed to intel_dspcfg.dsp_driver + alc255-acer
=========================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash snd_intel_dspcfg.dsp_driver=1 snd_hda_intel.model=alc255-acer

- external mic is now working (!), when jack is plugged-in, it corerctly asks what device have I connected (headset or headphones?)
- internal mic is not working, though :(

4) it (does not) works with pci=nocrs, too:
================================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash pci=nocrs snd_intel_dspcfg.dsp_driver=1 snd_hda_intel.model=alc255-acer

So, this solution is not very practical, because when I do not have headset available at the moment, I cannot use internal microphone :(

Revision history for this message
In , perex (perex-linux-kernel-bugs) wrote :

Try 'snd_sof_intel_hda_common.hda_model=alc255-acer' kernel parameter and don't modify snd_intel_dspcfg configuration.

Revision history for this message
In , crysman (crysman-linux-kernel-bugs) wrote :

@Jaroslav: OK, I've just tested that.

5) only alc255-acer:
====================
❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash pci=nocrs snd_hda_intel.model=alc255-acer

- internal mic works
- external does not :(

I've noticed some RED messages in dmesg, though - the latest seem to be relevant:

[ 0.089089] x86/cpu: SGX disabled by BIOS.
[ 0.670858] pci 0000:00:07.0: DPC: RP PIO log size 0 is invalid
[ 0.672459] pci 0000:00:07.1: DPC: RP PIO log size 0 is invalid
[ 0.674048] pci 0000:00:07.2: DPC: RP PIO log size 0 is invalid
[ 0.675635] pci 0000:00:07.3: DPC: RP PIO log size 0 is invalid
[ 30.127898] snd_hda_codec_realtek ehdaudio0D0: didn't find PCM for DAI Digital Codec DAI
[ 30.127909] snd_hda_codec_realtek ehdaudio0D0: ASoC: error at snd_soc_dai_startup on Digital Codec DAI: -22
[ 30.127915] Digital Playback and Capture: soc_pcm_open() failed (-22)
[ 30.127919] HDA Digital: ASoC: dpcm_be_dai_startup() failed at Digital Playback and Capture (-22)
[ 30.127922] HDA Digital: dpcm_fe_dai_startup() failed (-22)
[ 30.128026] snd_hda_codec_realtek ehdaudio0D0: didn't find PCM for DAI Digital Codec DAI
[ 30.128030] snd_hda_codec_realtek ehdaudio0D0: ASoC: error at snd_soc_dai_startup on Digital Codec DAI: -22
[ 30.128034] Digital Playback and Capture: soc_pcm_open() failed (-22)
[ 30.128036] HDA Digital: ASoC: dpcm_be_dai_startup() failed at Digital Playback and Capture (-22)
[ 30.128039] HDA Digital: dpcm_fe_dai_startup() failed (-22)

Revision history for this message
In , perex (perex-linux-kernel-bugs) wrote :

Please, attach new alsa-info.sh output.

Revision history for this message
In , perex (perex-linux-kernel-bugs) wrote :

And you didn't follow my instructions - read them carefully. There is another module and parameters for the SOF driver to set the HDA model.

Revision history for this message
In , crysman (crysman-linux-kernel-bugs) wrote :

@jaroslav fresh report here:
http://alsa-project.org/db/?f=4fa645dcfb6f79261c362d5510af0ad4e6183548

(while booted with `❱ cat /proc/cmdline
initrd=\EFI\Pop_OS-a99686bf-c48a-464b-af3a-25f67847049a\initrd.img root=UUID=a99686bf-c48a-464b-af3a-25f67847049a ro quiet splash pci=nocrs snd_hda_intel.model=alc255-acer
`

please, could you navigate me to "the instructions", I've been looking around and have not found what you mean, I will try my best to follow them once I know exactly what to follow, thanks a lot!

Revision history for this message
In , perex (perex-linux-kernel-bugs) wrote :

snd_sof_intel_hda_common.hda_model=alc255-acer not snd_hda_intel.model=alc255-acer

Revision history for this message
In , crysman (crysman-linux-kernel-bugs) wrote :

@jaroslav you RULEZZ! This has, indeed, solved reported problem, now both microphones work! Thanks a lot!

SOLUTION SUMMARY:
1) use kernel 5.11+
2) use `snd_sof_intel_hda_common.hda_model=alc255-acer` kernel boot parameter

Revision history for this message
crysman (crysman) wrote :

Thanks to @Jaroslav_Kysela, we've got the solution.

SOLUTION SUMMARY:
1) use kernel 5.11+
2) use `snd_sof_intel_hda_common.hda_model=alc255-acer` kernel boot parameter

Revision history for this message
In , perex (perex-linux-kernel-bugs) wrote :

The model should be detected automatically. The parameter is just for override useful for tests.

If you can, could you test this code change?

  diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
  index 6322fac9e694..4f46cfc5393b 100644
  --- a/sound/pci/hda/patch_realtek.c
  +++ b/sound/pci/hda/patch_realtek.c
  @@ -8485,6 +8485,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
          SND_PCI_QUIRK(0x1025, 0x1308, "Acer Aspire Z24-890",,
  ALC286_FIXUP_ACER_AIO_HEADSET_MIC),
          SND_PCI_QUIRK(0x1025, 0x132a, "Acer TravelMate B114-21",
  ALC233_FIXUP_ACER_HEADSET_MIC),
          SND_PCI_QUIRK(0x1025, 0x1330, "Acer TravelMate X514-51T",
  ALC255_FIXUP_ACER_HEADSET_MIC),
  + SND_PCI_QUIRK(0x1025, 0x141f, "Acer Acer Spin SP513-54N",
  ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
          SND_PCI_QUIRK(0x1025, 0x142b, "Acer Swift SF314-42",
  ALC255_FIXUP_ACER_MIC_NO_PRESENCE),
          SND_PCI_QUIRK(0x1025, 0x1430, "Acer TravelMate B311R-31",
  ALC256_FIXUP_ACER_MIC_NO_PRESENCE),
          SND_PCI_QUIRK(0x1025, 0x1466, "Acer Aspire A515-56",
  ALC255_FIXUP_ACER_HEADPHONE_AND_MIC),

Changed in linux (Ubuntu):
status: Won't Fix → Confirmed
tags: added: hirsute
removed: groovy
no longer affects: pulseaudio (Ubuntu)
summary: [Acer Spin 5 - SP513-54N] External headset microphone not working on
- Ubuntu 20.10 (not even wired, cable headset)
+ Ubuntu 21.04 (not even wired, cable headset)
Revision history for this message
In , perex (perex-linux-kernel-bugs) wrote :

The above change is in upstream:

  https://<email address hidden>/

Changed in linux:
status: Confirmed → Fix Released
Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Jammy):
status: Confirmed → In Progress
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Impish):
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Hirsute):
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Impish):
status: New → In Progress
Changed in linux (Ubuntu Focal):
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Bionic):
assignee: nobody → Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Hirsute):
status: New → In Progress
Changed in linux (Ubuntu Focal):
status: New → In Progress
Changed in linux (Ubuntu Bionic):
status: New → In Progress
Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Hello!
Thanks for the bug report, can you give these test kernels (bionic 4.15, Focal 5.4, Hirsute 5.11, Impish 5.13, Jammy 5.15) a try:
https://people.canonical.com/~phlin/kernel/lp-1912052-acer-SP513-mic/

Po-Hsu Lin (cypressyew)
Changed in linux (Ubuntu Focal):
status: In Progress → Fix Committed
assignee: Po-Hsu Lin (cypressyew) → nobody
Revision history for this message
Po-Hsu Lin (cypressyew) wrote :

Focal - bug 1953387
Hirsute - bug 1954533
Impish - bug 1954337
Jammy - bug 1951822

Changed in linux (Ubuntu Hirsute):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Impish):
status: In Progress → Fix Committed
Changed in linux (Ubuntu Hirsute):
assignee: Po-Hsu Lin (cypressyew) → nobody
Changed in linux (Ubuntu Impish):
assignee: Po-Hsu Lin (cypressyew) → nobody
Changed in linux (Ubuntu Jammy):
status: In Progress → Fix Committed
assignee: Po-Hsu Lin (cypressyew) → nobody
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.