如何对 Pulseaudio 中的插孔检测进行故障排除

如何对 Pulseaudio 中的插孔检测进行故障排除

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#0coded#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 上测试

相关内容