Pulseaudio 显然支持“插孔检测”,这意味着自动检测是否有任何东西插入每个插孔(例如耳机插孔、线路输出插孔)。
不幸的是,Pulseaudio 的插孔检测对我不起作用。我该如何排除故障?我应该采取哪些步骤来缩小问题的原因?
我发现了本指南来自Ubuntu。它教会我比较amixer -c0 contents
当有东西插入插孔时和没有插入任何东西时的输出;并为 做同样的事情pacmd list-cards
。
就我而言,我发现插孔检测似乎在 ALSA/内核级别工作。 amixer -c0 contents
当没有插入任何东西时输出以下内容:
numid=41,iface=CARD,name='Line Out CLFE Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
当插入某些东西时,最后一行会更改为values=on
。这似乎表明杰克检测正在 ALSA/内核级别工作。
然而,插孔检测似乎不适用于 Pulseaudio 级别。pacmd list-cards
无论是否插入某些东西,输出都是相同的。特别是,我看到类似的东西
ports:
...
analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: no)
properties:
...
无论是否插入任何东西。这让我怀疑 Pulseaudio 可能出了问题。
解决此问题的后续步骤是什么?
如果相关的话,这是我关于我的特定系统的信息。我使用的是 Fedora 21。以下是一些软件包版本号:kernel-3.17.7-300.fc21.x86_64
, pulseaudio-5.0-25.fc21.x86_64
, alsa-plugins-pulseaudio-1.0.28-3.fc21.x86_64
, alsa-lib-1.0.28-2.fc21.x86_64
。这是出现在的声音控制器lspci -vvnn
:
00:1b.0 Audio device [0403]: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller [8086:1e20] (rev 04)
Subsystem: Biostar Microtech Int'l Corp Device [1565:8228]
以下是前几行/proc/asound/card0/codec#2
(我的机器上没有codec#0
或coded#1
,尽管这通常是第一个检查的地方;codec#3
用于 HDMI 并且似乎不相关):
Codec: Realtek ALC892
Address: 2
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0892
Subsystem Id: 0x15658228
Revision Id: 0x100302
这是有关我的特定机器的信息。但也许普遍适用的一般答案对其他人更有用。
答案1
解决了取消注释此行的问题
/etc/pulse/default.pa
load-module module-switch-on-port-available
手动就可以完成
pacmd load-module module-switch-on-port-available
在 netrunner 17 / ubuntu 15.10 上测试