问题

问题

提前说一句:我试着寻找关于这个问题的任何问题。
当然,Ubuntu 中有很多关于声音的问题,但它们

我的情况似乎很特殊,甚至可以说有点吓人……

问题

简短的版本:我无法从笔记本电脑的内置麦克风获取信号。插入耳机/麦克风组合插孔的耳机工作正常。但从技术上讲,内置麦克风可以正常工作 - 请参阅下面的观察结果。请阅读发生了什么pavucontrol,因为那里的情况相当奇怪,我认为这是我能找到的最好的线索...

我的系统

  • 设备:联想 ThinkPadd T495眼镜)、Ryzen 7 Pro 3700U,运行当前固件
  • 操作系统:流行!_OS20.04 LTS(基于 Ubuntu)
  • 音频相关硬件:高清音频、Realtek ALC3287 编解码器(立体声扬声器、内置立体声麦克风和耳机组合音频插孔)

arecord -l说:

**** 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

观察结果

啥时候坏的?

几周前一切都运行良好,但现在却不行了。我尝试从 U 盘运行我的操作系统(相同版本)的全新实时系统,以查看是否只是配置损坏的问题,但还是存在同样的问题。所以我认为问题出在操作系统更新上(我猜 Pop!_OS 不会更改音频内容,这就是我作为 Ubuntu 用户提出这个问题的原因)。

操作系统声音设置

在此处输入图片描述
未插入耳机。没有来自内置麦克风的信号,我想在这种情况下这应该是默认的声音输入Digital Microphone,对吗?

在此处输入图片描述
插入了耳机。现在我可以从一个设备Headphones Stereo Microphone(耳机麦克风)接收信号。

alsamixer

这是在中选择的 Realtek 音频设备alsamixer
在此处输入图片描述
请注意如何Mic Boost以及Internal Mic如何不是设为静音。

一个非常有趣的观察Mic Mute(它似乎控制键盘上麦克风静音媒体键中的 LED)设置为Follow MM静音),但当我切换该键时(未插入耳机),LED 保持熄灭状态。操作系统覆盖告诉我它已静音Digital Microphone。如果我插入耳机并按下麦克风静音键,LED 就会亮起!似乎我的系统只关心耳机麦克风,无论它是否插入!

现在,如果这还不奇怪的话,看看接下来会发生什么……

pavucontrol

pavucontrol插入耳机后,“输入设备”选项卡显示的内容如下:
在此处输入图片描述
没信号来自“数字麦克风”(唯一选项),但是一个信号来自“耳机立体声麦克风(插入)”(唯一选项)。这很有意义,因为插入的耳机麦克风应该比内置麦克风具有更高的优先级。录制的信号确实来自耳机麦克风,我测试过了。但这就是它变得愚蠢的地方......

这就是它向我展示的拔掉耳机(!):
在此处输入图片描述
好的,现在看看这个:仍然没信号来自“数字麦克风”(唯一选项),但是一个信号“耳机立体声麦克风(未插电)”(唯一选择)!

什么?!我收到未插上电源的麦克风发出的信号?当然不是。原来这实际上是我内置麦克风发出的信号!所以它正常工作,但我的系统不知怎么的……我不知道……将它路由到耳机设备?这是怎么回事?

当然,我无法在任何应用程序中选择“未插拔的耳机麦克风”作为音频源!所以我的内置麦克风目前没用 :(

我需要的

如果这还不够明显的话:我希望当耳机拔下时,内置麦克风也能正常工作,就像它应该的那样。键盘上的“静音麦克风”键及其 LED 应该控制当前活动的麦克风。目前它似乎只知道耳机麦克风。

我在这里尝试了很多,但还是无法解决这个问题。有人知道这种奇怪行为的原因是什么吗?我还能尝试其他什么吗?提前谢谢您!

答案1

我在联想 E14 Gen2 Ryzen 笔记本电脑上遇到了类似(相同?)的问题。

我到目前为止的结论是,笔记本电脑实际上没有 DMIC,并且内部麦克风连接到音频编解码器,正如您的实验所示。

我将在 alsa-dev 邮件列表中提出这个问题,看看专家是否可以解释一下情况。

可能相关信息: https://www.mail-archive.com/[电子邮件保护]/msg312427.html

编辑:根据此例中 DMIC 是虚假的结论,我通过将相关内核模块列入黑名单来禁用它。

创建新文件/etc/modprobe.d/blacklist-local.conf 添加

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

然后重启。
现在 DMIC 消失了。pulseaudio 通过 pavucontrol 报告输入设备下有 2 个端口

  • 内置麦克风 + 麦克风(拔出)或
  • 内置麦克风(未插入)+麦克风(插入)

无论我选择哪个端口,我仍然可以在电平表上看到来自麦克风的音频。

答案2

我的笔记本电脑上有一个修复程序,可以 100% 有效(这意味着我可以同时使用耳机和内置麦克风)。

解决方案就是:

blacklist snd-soc-dmic

(不含其他 2 个)

除此之外,当时我还有:

blacklist snd_pci_acp3x

因为我的 ubuntu 输出了启动警告“无效的 ACP 模式:1”。我要把它从黑名单中删除,因为它似乎不是罪魁祸首,而是soc-dmic真正的麻烦制造者。

编辑:看来我的假设是正确的。取消黑名单后,snd_pci_acp3x我再次收到“无效的 ACP 模式...”错误,但麦克风和耳机似乎可以正常工作(如果我没记错的话)

相关内容