Pulseaudio apparently supports "jack detection", meaning auto-detection of whether anything is plugged into each jack (e.g., headphone jack, line out jack) or not.
Unfortunately, Pulseaudio's jack detection isn't working for me. How do I troubleshoot it? What steps should I follow to narrow down the cause of the problem?
I've found this guide from Ubuntu. It taught me to compare the output of amixer -c0 contents
when something is plugged into the jack, vs when nothing is plugged in; and to do the same for pacmd list-cards
.
In my case, I found that jack detection seems to be working at the ALSA / kernel level. amixer -c0 contents
outputs the following when nothing is plugged in:
numid=41,iface=CARD,name='Line Out CLFE Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
When something is plugged in, the last line changes to values=on
. This seems to indicate that jack detection is working at the ALSA / kernel level.
However, jack detection doesn't seem to be working at the Pulseaudio level. The output from pacmd list-cards
is the same whether something is plugged in or not. In particular, I see something like
ports:
...
analog-output-lineout: Line Out (priority 9900, latency offset 0 usec, available: no)
properties:
...
regardless of whether anything is plugged in or not. This makes me suspect that maybe Pulseaudio is at fault here.
What are the next steps to troubleshoot this?
If it's relevant, here is my information about my particular system. I am using Fedora 21. Here are some package version numbers: 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
. Here's the sound controller that shows up in 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]
Here are the first few lines from /proc/asound/card0/codec#2
(there is no codec#0
or coded#1
on my machine, though that would normally be the first place to check; codec#3
is for HDMI and doesn't seem relevant):
Codec: Realtek ALC892
Address: 2
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0892
Subsystem Id: 0x15658228
Revision Id: 0x100302
That's information about my particular machine. But maybe a general answer that is generically applicable will be more useful to others.