Ubuntu – Snd-hda-intel and the HP Envy 17

hda-intelheadphoneshpsoundspeakers

So I know that other people have had issues with audio on Envy Series Notebooks. However there's very little out there in terms of the HP Envy 17-3200 (4 speakers and a woofer). In light of this, I've had considerable trouble getting sound to work right. But more than that, I don't even know if sound can work right with current kernel modules or if someone somewhere will have to do some coding.

The card is given by:

$ cat /proc/asound/card0/codec#0 | grep Codec
Codec: IDT 92HD91BXX

Now, this card does not appear in the list of compatible cards. However, all functionality can be achieved using a combination of different supported cards (and this is where it gets weird).

Two of the four tweeters work out of the box, but a series of kernel errors are sent from snd-usb-audio, which tries to control the subwoofer.

Blacklisting snd-usb-audio and setting the model of snd-hda-intel to 'ref' allows the internal speakers (including the subwoofer) to work. However, it is impossible to mute the internal speakers without also muting headphones. If the model is set to any reasonable value other than 'ref' (including 'auto'), then the internal speakers will mute correctly when headphones are plugged in, but the subwoofer will not work.

I can run a script to switch the model at run time every time I plug in headphones, but this requires superuser privileges and is something I just shouldn't have to do. I have submitted a bug report to kernel.org, but am increasingly unsure over whether that was right to do so.

This problem also exists under Arch and Fedora. Thoughts?

Best Answer

Wow did this take a long time to solve.

As of Linux 3.10 (I now use ArchLinux rather than Ubuntu), the snd-hda-intel driver will automatically work correctly with the headphone jacks (i.e the internal speakers will correctly disable when headphones are plugged in), but the subwoofer is assumed to be plugged into the wrong port. You can correct this by manually manipulating the port the woofer is plugged into using hdajackretask in alsa-tools-gui (for me it was 0x10). The tool also provides the means to make this a boot option so that this process does not need to be repeated.

Related Question