How do I make my Lenovo Y50's subwoofer work on linux?

7,432

Here is a link to solution of mine, based on a python script: https://github.com/dragosprju/y50-subwoofer-linux-enabler.

Please also refer to the follow-up question for answers on which the solution above is based on: How to disable power saving on my Lenovo Y50's subwoofer audio pins?.

Share:
7,432

Related videos on Youtube

Dragoș
Author by

Dragoș

Updated on September 18, 2022

Comments

  • Dragoș
    Dragoș almost 2 years

    I have a Lenovo Y50 laptop which has a subwoofer integrated that works only on Linux Mint 17.2, if I download HDA Analyzer and change with it:

    • PIN 0x17 -> Widget Control -> Check OUT
    • PIN 0x17 -> Output Amplifier -> Val[0] -> Uncheck Mute
    • PIN 0x1a -> VREF -> Set it to 100

    The problem is I tried various other distributions (Ubuntu, Antegros, Manjaro, Debian, Fedora) and doing the same thing doesn't make the subwoofer work. On the other distributions I tried to apply various other solutions (along with the previous mentioned solution), such as:

    • Trying hdajackretask from the alsa-tools package (can only do something on Ubuntu, on others it reports tee: /sys/class/sound/hwC0D0/reconfig: Device or resource busy; keep in mind that I tried various settings with it on Ubuntu but subwoofer still fails to work)
    • Setting enable-lfe-remixing = yes in /etc/pulse/daemon.conf
    • Setting default-sample-channels = 3 and default-channel-map = front-left,front-right,lfe in /etc/pulse/daemon.conf
    • Uninstalling PulseAudio and leaving ALSA only (I haven't tried much at this state, only noticed speaker-test -c 6 only detects 2 channels: Front Left and Front Right)
    • Leaving only alsa-base.conf in /etc/modprobe.d/ with the following content (this only reorders the cards, but I believe it helped when the system was ALSA only, to set the PCH as primary):

      # Intel PCH
      options snd-hda-intel index=0  model=auto vid=8086 pid=8c20
      # Intel HDMI 
      options snd-hda-intel index=1  model=auto vid=8086 pid=0c0c
      
    • Copying many related configuration folders from Linux Mint to Fedora, such as:

      • /etc/alsa/, /etc/modprobe.d/ and /etc/pulse/
      • /usr/share/pulseaudio/alsa-mixer/ and /usr/share/alsa/

    All of these attempted solutions didn't work.

    I started analyzing the problem further by running a few information commands. From the command wget -O alsa-info.sh http://www.alsa-project.org/alsa-info.sh && chmod +x ./alsa-info.sh && ./alsa-info.sh, I got the following information for Linux Mint and Fedora Workstation 22 (on which I'm currently on). I didn't spot anything interesting, but maybe you will.

    However, by running the command pactl list on both distributions, I got for Linux Mint (Pastebin ID #Z81bqaR3) and Fedora (Pastebin ID #gDNJg4Lq) and I noticed this:

    On Fedora (and also Ubuntu):

    Card #1
        ....
        device.product.name = "8 Series/C220 Series Chipset High Definition Audio Controller"
    

    And on Linux Mint:

    Card #1
        ....
        device.product.name = "Lynx Point High Definition Audio Controller"
    

    In this regard, I followed the first link of the Google search ubuntu Lynx Point High Definition Audio Controller and noticed many Dell laptops having this sound, then Google'd pulseaudio models.txt (first link) and therefore tried setting in my alsa-base.conf in /etc/modprobe.d/ the following:

        # Intel PCH
        options snd-hda-intel index=0  model=dell-vostro-3500 vid=8086 pid=8c20
        # Intel HDMI 
        options snd-hda-intel index=1  model=auto vid=8086 pid=0c0c
    

    Didn't work.

    Sorry for the search mentions instead of links and unproper pastebin links, but I'm new and only get 2 links maximum to post. Now, my questions are:

    • Do you know a proper way to make my subwoofer for this laptop work on any distribution (not just Linux Mint)? or
    • Do you know how to make my Fedora installation see the sound card as Lynx Point High Definition Audio Controller as Linux Mint sees it? (I haven't found anything on the internet to help in this regard) or
    • Do you know other model names to set for model=... in the alsa-base.conf that might work? I've only tried dell-vostro-3500. or
    • Do you know other solutions that might help without PulseAudio installed? (Isn't HDA Analyzer for ALSA? PulseAudio might break things I don't notice but ALSA alone doesn't detect the subwoofer still, as I've mentioned trying)

    I can also try running any other commands from both distributions (Fedora and Linux Mint on Live USB) that might help you guys and post the information here.

    Thank you! Hopefully someone can help me, because I've grown crazy this last week. Only Monday I found out about HDA Analyzer, and I lost hope making the subwoofer work on Linux ever since I bought this laptop.

    EDIT: Follow-up question with solution here.

    EDIT2: My own solution using a python script here.

    • ddulic
      ddulic almost 9 years
      This is what worked for me, might help you :) askubuntu.com/a/667688
    • Dragoș
      Dragoș almost 9 years
      Thank you for your answer, but the solution you're referring to is actually linking to this question and what I've tried already.
    • Dragoș
      Dragoș almost 9 years
      Here is a follow-up question, as I've had a bit more time to investigate: superuser.com/questions/975219/…
    • miyalys
      miyalys almost 9 years
      A bit OT, but what version of python do you use to run HDA Analyzer? Do you obtain and run it from that URL in ddulic92's link? Then I can see if it works in Archlinux for what that's worth. I tried the other solution mentioned on Ask Ubuntu, but that doesn't make a difference for me, but then again I'm not using Pulse Audio as far as I know, but rather Alsa (strangely enough the pulse folder existed, though).
    • Dragoș
      Dragoș almost 9 years
      I use Python 2. On Fedora, I type python2 in the terminal. Yes, I do obtain it from ddulic92's link, I just modify the python command accordingly and also use sudo. Please do come back with your findings on Arch Linux - I'm curious myself as I haven't tried.
    • miyalys
      miyalys almost 9 years
      Nevermind, figured out it's because /usr/bin/env python is a symlink to python3 for me, so even though I ran the initial script with python2, the other ones were executed with python3, giving that error. One step closer, at least.
    • miyalys
      miyalys almost 9 years
      I tried it now: It doesn't seem to make a difference for me either. On the other hand, I started to consider how to test this. I dual boot, so I created a 65 hz sine wave and played in back in Windows, but it doesn't really sound that much different in linux(?) I think, so maybe it's actually already working for me? (or maybe it's not working in Windows 10 either.) Here's my testing file: miyalys.eu.org/files/65hzsine.wav How have you tested? Can you hear my example file? (maybe the frequency is not low enough?)
    • Dragoș
      Dragoș almost 9 years
      I just test by putting my ear on the subwoofer when I play a YouTube video. That wav file does work on Windows, but the file itself is pretty silent. Haven't tried on Fedora (I'm pretty sure it won't work). On a related note, on Linux Mint, the subwoofer is louder than Windows as Linux doesn't filter out the bass to send to the subwoofer and just outputs all the sounds. I fix that by balancing the left-right sounds by making right side quieter.
    • miyalys
      miyalys almost 9 years
      The volume of the test file should be as loud as possible according to Audacity(?), but maybe the frequency is off compared to what the subwoofer can play back? Maybe we can turn off the regular speakers somehow, so only the subwoofer is on? I have difficulty hearing the subwoofer over both the speakers and the idle noise of the computer, hah. But that could just mean it's always off, or I haven't found a good way to test it. Will try testing with some music, maybe.
    • sherpaurgen
      sherpaurgen about 8 years
      I found my solution here bbs.archlinux.org/viewtopic.php?id=64935 I had similar problem in my hpdv4-5113cl ,the audio was working fine on windows7(beats audio driver) and when i switched to linux mint 17(rosa) my subwoofer was not working.