Good news, everyone! There exists a predefined quirk in the linux kernel that we can as of version 5.15 apply to our laptops that will automatically manage the muting and unmuting of the LFE properly. For older kernel versions you'll have to use the old solution below (or patch and build the kernel driver yourself). We just have to create/edit the following files:
/lib/firmware/hda-jack-retask.fw
/etc/modprobe.d/hda-jack-retask.conf
first off the hda-jack-retask.fw
file should contain the following:
[codec]
0x10ec0235 0x17aa3826 0
[model]
103c:86c7
[pincfg]
0x17 0x90170111
There's a chance your subsystem id is different, the id can be found using cat /sys/class/sound/hwC0D0/subsystem_id
Now we simply have to apply this patch by putting the following in hda-jack-retask.conf
:
options snd-hda-intel patch=hda-jack-retask.fw
DONE! That's it. 2.1 output and no more popping like in the old solution even with power save enabled.
Details on the patch format can be found here https://www.kernel.org/doc/html/latest/sound/hd-audio/notes.html
If you're curious what quirk is applied search for ALC274_FIXUP_HP_ENVY_GPIO
in sound/pci/hda/patch_realtek.c
in the kernel source code.
You might still want to look into any upmixning in PulseAudio/PipeWire or what have you. Using a Stereo profile and EasyEffects as mentioned at the bottom of the old solution is still the simplest solution I've found so far. Check out the comments for EasyEffects configs from other users.
---OLD SOLUTION---
A little while ago I finally figured out how to get the LFE working on my y700 laptop.
If you've already messed with hdajackretask
you just have to slightly modify the following two files:
/lib/firmware/hda-jack-retask.fw
/etc/modprobe.d/hda-jack-retask.conf
first off the hda-jack-retask.fw
file should look something like this:
[codec]
0x10ec0235 0x17aa3826 0
[pincfg]
0x17 0x90170111
[verb]
0x01 0x0716 0x04
0x01 0x0717 0x04
0x01 0x0715 0x04
the pincfg
section assigns LFE to node 0x17. The verb
section enables GPIO pin 2 on the Realtek chip and disables the external mute circuit.
This is enought to get the LFE working BUT because the external mute circuit is permanently off
every time the driver module enters and exits power saving mode there will be a loud pop,
this needs to be fixed in the actual driver module but we can circumvent it for now by disabling
power saving in the hda-jack-retask.conf
file like so:
options snd-hda-intel power_save=0 power_save_controller=N patch=hda-jack-retask.fw
Note that there will still be a pop at boot/shutdown and suspend/resume. That is all I had to do to get everything working, any and all feedback is appreciated.
I'll add my PulseEffects EasyEffects profile below, it improves the sound quality a bit, it's not as good as on windows but it's something.
Just make sure the profile selected for the sound card in PulseAudio is a "Stereo" profile and not a "2.1" one.
Thanks for detailing what worked for you @BXZ!!
Unfortunately none of the methods you listed is working for me on my Y700 with Nobara 36 (Fedora). Maybe something to do with newer kernels since I'm currently on 5.18.I also tried setting up LFE on Pipewire, but it also doesn't work. On KDE's audio settings it only lists 2 speakers independently of what I set with either the Pipewire config, your instructions or both. And testing with any music even putting my ear on the subwoofer I can't hear anything from there.If anyone can help I would be really grateful.EDIT: GOT IT WORKING
The problem is that the firmware configuration at the top of this Gist doesn't work
anymorefor my laptop for some reason, be it a region difference or model revision. With the help of a user on theGlouriousEggroll's ProtonGE/Nobara Discord
I tried to make it work withhdajackretask
alone by enabling either the 0x17 or the 0x1b pins, which unfortunately didn't work, but led me to find a solution:Comparing the firmware on the top of this Gist with the one generated by
hdajackretask
I noticed a few numbers were different, so I pasted the contents from here but using the numbers generated by the program, and voilà, it works perfectly now.The result is this
hda-jack-retask.fw
file:NOTE: I originally had
0x17 0x90170151
instead of0x17 0x90170111
under[pincfg]
but since I couldn't hear any difference I decided to go with OP's value.EDIT2: EASYEFFECTS CONFIGURATION
At first I manually added the effects that appear in OP's config with the same values, but ended up tweaking it a bit. If you're interested in what I did, here it is:
In Output > Effects:
Basically all I did was reduce the Bass Enhancer from 16 dB to 9 dB as I think OP's value gave the speakers excessive bass, muffling the mids and the treble too much, and I also reduced the negative gain so the volume is not as low. If you notice distortion or crackling it's probably best to lower the Auto Gain even more (as in decreasing from -13 to -14 for example), but so far I haven't noticed any, even at 100% volume.
Also, the BIGGEST CHANGE I did was to turn Auto Leveling OFF, as when it is on, it will make adjustments on the fly when any sound is playing and will just make everything sound horrible, increasing and decreasing frequencies all the time.
Tip: Don't forget to enable Easyeffects to run in the background on startup by enabling it on the program's settings. Also save the effects to a Preset on the top left corner and enable Preset Autoloading of the one you created on the PipeWire Tab, this way every time you restart your laptop it always loads the EQ for the Speakers.