提前说一句:我试着寻找关于这个问题的任何问题。
当然,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 M
(M
静音),但当我切换该键时(未插入耳机),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 模式...”错误,但麦克风和耳机似乎可以正常工作(如果我没记错的话)