I did a custom build and my front panel audio is not working. I do not hear anything when I plug in headphones on the front panel. The same headphones work when I connect to the line output in the back.
My setup is:
Rocky Linux 9
motherboard: Gigabyte Z690 AERO G (rev. 1.x)
case: Fractal Design Define R5
The case has HD Audio on the connector and the motherboard labels the port “F_AUDIO (Front Panel Audio Header)”.
I’m not sure if I have a hardware issue or if this is a software issue.
If I run pavucontrol and play audio, I see usb audio analog stereo playing when headphones in back.
If I run alsamixer then press f6 to select usb audio, I see pcm, pcm1, and pcm2. If I select hda intel I see pch, spdf1 to spef 11.
The “sound” applet has changed in Rocky 9.
If you have gnome desktop, go to top right, drop down menu, “Settings”, then Sound.
You should see output devices and input devices, and at least be able to confirm what it thinks you have.
If I plug in earbuds, in settings→sounds output devices, I see:
Speakers – USB Audio
HTMI/DisplayPort
Headphones- USB Audio
When I select Headphones and then test, I don’t hear anything. The same thing happens with a second set of earbuds.
When unplug the earbuds, the headphones disappears from the settings.
I used a multimeter on my case HD Audio cable. If I put a multimeter between pin 10 and pin 7, I get a short when I plug in a headphones and an open when when the headphones are removed. I’d expect to see the resistance of the headphone left headphone across pin 9 and 7, and right headphone pin 5 and 7 but I’m getting an open circuit on both. I asked the case maker for the schematic for the case panel but they do not release it.
@ gerry666uk
If I’m listening to the back line out and plug in a different earbud into the front, the back line out keeps playing and nothing is played on the front earbuds.
For the short, pin 6 is sense and pint 7 is ground. By short I mean pin 6 is pulled to ground. Since Rocky Linux can read when the earbuds are inserted, it appears the sense circuit is working as expected.
If it’s a motherboard, I’m not sure why it says “usb” audio.
Have you checked the motherboard manual for the exact header layout and pins, and checked that they are wired in the correct way to both front and back? With power off, use the multimeter to do continueity between the pin on the header and the contact on the output socket, e.g. use a jack plug with wires sticking out of it.
The case maker does not publish the schematic so I can’t check pins. The HD Audio is a 2x9 header. It appears the HD Audio is a standard (Intel High Definition Audio - Wikipedia). The HD Audio pin out in wikipedia matches the pin out on my motherboard.
The case maker is sending me a new front panel board. I’ll reverse engineer the board when I get it. Since Rocky Linux recognizes the headphone being plugged in and removed, my gut feeling is the problem is in software. I’m going to try to install Rocky Linux 8 to see if the headjack works with the older version.
I tested on the closest thing I could find, which was a Viglen PC with front and rear 3.5mm jacks. On the back it has line out and mic, on the front it has “headphones” and mic. It’s running Rocky 8.x with pulse audio.
The first thing I tested was plugging in headphones to the back, and playing sound, which worked, then I plugged the headphones into the front and they also worked. I then did the same on Windows 10, again both worked.
It seems that some kind of software decides to route the audio when the jacks are connected, but I don’t know if there’s a mechanical contact or maybe a resistance check.
Running pacmd, I could see the “port” changing when I switched the headphones from the back to the front. It looks a bit like this; Note where it says “active port”.
When I wiped out Rocky Linux 9 and installed Linux 8, I still cannot hear though the front panel with headphones.
If I use a multiple meter between pin 5 (LINE2_R) and pin 2(GND), I can see the resistance of the headphone. Same for pin 9 (LINE2_L) and pin 2. Also, the new front panel board from the manufacture works the same.
I also updated the bios but got the same behavior.
If I run “lspci -k” the only Audio entry I get is:
I installed ubuntu and fedora, and I got the same problems. Next I tried installing a trial version of windows and the front jack performs as expected.
Why is card 0 saying it’s USB?
card 1 says it’s HDMI, so I’m guessing that’s not connected to the headphone jacks.
In Windows, do you see both cards in sound settings and which one is showing as being in use, and which driver is it using?
@gerry666uk
I assume the way Gigabyte designed the motherboard to use USB audio. The windows audio driver has USB in the name. The back line out port is part the connector on the motherboard. The front audio is connected to the HD audio header. The system diagram of the motherboard shows line out ↔ codec ↔ intel z690 ↔ LGA1700 CPU and HDMI 1.4 ↔ LGA1700 CPU. I’m using the on CPU HDMI graphics. My understanding is that audio can be sent over HDMI. I would assume that is why audio is showing up from the HDMI port.
For Windows, once I found that the headphone jack was working, I wiped out Windows and installed Rocky Linux 9. If you think this is important, I can re-install Windows. The sole reason for Windows test was to verify the hardware was working.
Since Rocky Linux 8 and 9, Ubuntu, and Fedora all have the headphone issue, it would seem that there is an upstream bug. I would assume the bug is either in the kernal or the intel driver (snd_hda_intel). Where should I post the bug report?
First with both jacks unplugged, then plug in one at a time (front and back) and save output to file ‘audio_card0.txt’, audio_card1.txt etc, then compare the files to see if any flag has changed, e.g. “pin complex, pin ctls”.
lrwxrwxrwx. 1 root root 5 Dec 23 19:41 Audio → card0
dr-xr-xr-x. 17 root root 0 Dec 23 19:23 card0
dr-xr-xr-x. 52 root root 0 Dec 23 19:23 card1
-r–r–r–. 1 root root 0 Dec 23 19:41 cards
-r–r–r–. 1 root root 0 Dec 23 19:41 devices
-r–r–r–. 1 root root 0 Dec 23 19:41 hwdep
-r–r–r–. 1 root root 0 Dec 23 19:41 modules
dr-xr-xr-x. 4 root root 0 Dec 23 19:41 oss
lrwxrwxrwx. 1 root root 5 Dec 23 19:41 PCH → card1
-r–r–r–. 1 root root 0 Dec 23 19:41 pcm
dr-xr-xr-x. 6 root root 0 Dec 23 19:41 seq
-r–r–r–. 1 root root 0 Dec 23 19:41 timers
-r–r–r–. 1 root root 0 Dec 23 19:41 version
If I run
find /proc/asound/ | grep codec
I get
/proc/asound/card1/codec#2
For the /proc/asound/card1/codec#2, I don’t get a change when no earbud is plugged in, only back, and only front. I noticed /proc/asound/Audio points to card0 and the codec#2 is under card2.
Check if the front panel is using a different sound card to the back panel. On the systems I’ve tested, both are using the same sound card. If it’s a different sound card (front and back), it would need the source switched to the second sound card.