Lenovo Y50 Subwoofer does no work with Ubuntu 14.04.2 LTS

I could not get my Subwoofer on Lenovo Y50 to work. Googled around and did not find any solutions. Let me know if anybody has any clue. Thanks!


This is what worked for me:

first, install and run HDA Analyzer:
wget -O run.py http://www.alsa-project.org/hda-analyzer.py
sudo python run.py (root is required)

second, using the gui do this:
•PIN 0x17 -> Widget Control -> Check OUT and Uncheck Mute:
enter image description here

•PIN 0x1a -> VREF -> Set it to 100:
enter image description here

And third, test it by listening to some music.
If it still isn't working, you can follow this thread, maybe someone will find an answer:
(https://superuser.com/questions/945110/how-do-i-make-my-lenovo-y50s-subwoofer-work-on-linux)

HDA Analyzer can be found here: http://www.alsa-project.org/main/index.php/HDA_Analyzer


I got my Y50-70 sub-woofer working by doing this:

in /etc/pulse/default.pa add this line at the end:

load-module module-combine channels=3 channel_map=front-left,front-right,lfe

then in /etc/pulse/daemon.conf change ;enable-lfe-remixing = no to enable-lfe-remixing = yes note that you have to remove the ;

then reboot.

Tested and validated on Kubuntu 15.04.


In the referenced Super User question and its recent followup, we managed to get it to work, and you can do it all by:

First installing alsa-tools (which contains hda-verb)
and then executing this shell script as root:

#! /usr/bin/env sh

# Run this script as root!

dev="/dev/snd/hwC1D0"

hda-verb $dev 0x17 SET_POWER 0x0
hda-verb $dev 0x1a SET_POWER 0x0
hda-verb $dev 0x03 0x300 0xa055
hda-verb $dev 0x03 0x300 0x9055
hda-verb $dev 0x17 0x300 0xb000
hda-verb $dev 0x17 0x707 0x40
hda-verb $dev 0x1a 0x707 0x25

Side note: Actually it can also be done without hda-verb, using python alone (which hda analyzer can export), but the code would be considerably more messy.

If you want to do it more manually for some reason, here's how:

Install alsa-tools via apt-get or similar.

Get HDA Analyzer like this:
wget -O run.py http://www.alsa-project.org/hda-analyzer.py

Side note: hda-analyzer will only run correctly on your machine if python is a symlink to python2, which it normally is, but there are exceptions. (Arch linux, at least.)

Run HDA Analyzer:
python run.py

Inside HDA Analyzer, look under card 1.

Changes to node 0x17:
Untick Val[0]: Mute
Tick Out under Widget Control.

Changes to node 0x1a
Set VREF under Widget control to 100 instead of hiz.

Quit hda_analyzer.

Run these two hda-verb commands, again as root:

hda-verb /dev/snd/hwC1D0 0x17 SET_POWER 0x0
hda-verb /dev/snd/hwC1D0 0x1a SET_POWER 0x0

Start hda_analyzer again.

Increase the output volume of node 0x3 (AUD_OUT) on card 1:
In HDA Analyzer under Output amplifier push the Val[0] and Val[1] sliders towards the right. They may need to be almost all the way over to the right before you can hear the difference.

Here's a low frequency audio file you can use for testing.

You can test it by plugging something into the headphone plug, as the subwoofer is unaffected by that being plugged in unlike the normal speakers, at least after the above is changed. That problem is unfortunately not solved by the shell script either.