Recently installed Bluefin gts-41 (based on Fedora 41) in a Lenovo Legion Pro 7 Gen 10 Type 83F5 (16IAXH10), that comes with a 4 speakers layout (two top, two bottom, like surround 4.0), and only the top speakers seems to work, giving very weak sound. The device is equipped with a Realtek ALC3306 audio card, but alsa detects it as a ALC287.
I’m reaching out after a long time trying a lot of solutions for this problem that seems to be very common alongisde Linux (any distro) with these Lenovo devices for a while. I’ve found posts since 2020 and every one of them proposes different solutions, like tweaking modprobe.d enabling, disabling and changing options there; use i2c to “remap” via brute force the audio output, and it’s even suggested that there is a kernel patch since Linux 6.8 but none seems to work (even the patch, as I have well over 6.14). This problem affects a wide group of Lenovo laptops from different series (Thinkpad, Yoga, Legion Slim, etc.) that all share the same audio card ALC3306. I wonder, if this problem is this frequent alongside all linux distros with these devices, maybe we can request the possible solution to be added in the kernel (maybe the fixed driver).
OS: Bluefin (Version: gts-41.20250713 / FROM Fedora Silverblue 41)
Kernel: Linux 6.14.11-200.fc41.x86_64
CPU: Intel(R) Core™ Ultra 9 275HX
Graphics: NVIDIA GeForce RTX 5070 Ti Mobile
Audio: Realtek ALC3306 (Detected as Intel HDA for Linux audio settings and pipewire and as Realtek ALC287 for alsa-tools), 4 speakers (two twitters top, two bottom). Audio Settings detect 3 modes for the Speakers: Analog Stereo, Analog Surround 2.1 and Analog Surrond 4.0.
In my case, the card was at index 2, so I placed model=(null),(null),alc287-yoga9-bass-spk-pin as kernel argument. Output of cat /sys/module/snd_hda_intel/parameters/model is
showing that argument was applied, but speakers keep sounding the same despite adjusting audio profile.
By any chance, do you have any additional argument related to snd? Like index or snd_intel_dspcfg? My installation have some of them by default and I wonder if that is making some noise to the fix.
One thing, in my case I reinstalled Fedora 42 from scratch and did what I mention in my post. I played before with hdajackretask, amixer, alsamixer and I just wanted to be sure that everything is defaulted again when I implemented my fix.
Second, I see you use cat /sys/module/snd_hda_intel/parameters/model I just made a conf file in /etc/modprobe.d/ as /etc/modprobe.d/alc287.conf to handle that.
Use aplay -l, see what index is your card, made the change in conf file and reboot.
When executing aplay -l, somehow, my card changes index from 0 to 2 . I’m checking if there is a way to assign it in the same place.
To explain, doing cat /sys/module… is just to check if kernel argument is loading correctly from the file at /etc/modprobe.d.
EDIT
Finally got the index and kernel argument to agree, There was a change, now, only stereo and surround are options in Audio Settings, when setting to surround 4.0, audio mutes completely, and when setting to stereo, plays only in the tweeters. It seems that Legion models integrates an additional amplifier chip (TAS 2781), so I think that the yoga9 fix it’s not the complete solution.
@atlasfoo Hello, does Fedora 42 (latest version with kernel 6.17) or Ubuntu 25.10 boot properly and display the screen on your notebook with the Intel Ultra 9 275HX? I’d really appreciate your reply, because I have the same hardware, and both Ubuntu 25.10 live USB and the updated Fedora 42 with kernel 6.17 get stuck on a black screen with a ‘drm poll error’ message. Thank you very much in advance for your answer.
Same issue here unfortunately with Yoga Pro 9i Gen 8 (16IRP8) on Fedora 42 kernel release 6.17.4-200.fc42.x86_64.
Spec sheet for the laptop mentions ALC3306, but info shows “ALC287” being used as codec.
Sound works for a short while when reloading the “snd_hda_scodec_tas2781_i2c”. Sometimes reloading the module causes a wireplumber crash, breaking speaker sound completely until reboot. I reported a bug under the Redhat Bugzille after this happened, maybe this can lead to some further clues: 2406861 – [abrt] wireplumber: snd_hctl_elem_get_interface(): wireplumber killed by SIGABRT
It seems that the codecs are compatible and the speaker pin wiring is configured somewhere in the kernel, but some bug causes the bass speakers to not be accessed anymore by either the sound drivers, amplifiers or similar. That’s unfortunately as far as I have come.
Other workarounds like running these “2pa_byps.sh” or “4pa_bypass.sh” scripts with the correct bus number leads to weird results, bass speaker either only works on the right, or both, but L and R is switched. In all cases, sound doesnt sound right and leads to case vibrations and needs to be equalized with further workarounds.
Scripts found here:
I am giving up the search for a solution, as the next logical step is most probably a kernel-level code fix, which I am unfortunately not experienced with.
Apart from the audio problem, I hadn’t any further issue with drivers with fedora, ubuntu, or even manjaro with this notebook, so, any screen problems either. I’ve run into that drm poll error message before with other devices and usually are problems with AMD GPU. Do you have any additional discrete graphics card?
It’s definitively a kernel level solution, I found a file in kernel that manually assign the snd_hda model for each device, but, I think it was removed in recent versions. I’ve tested kernel versions from 6.14 to latest, no solution whatsoever.
It also seems that legion and yoga devices, despite having the same audio device, have different wiring when it comes to the amplifiers, so the solution for both models should differ in some point.
I got a lot of kernel errors with this issue at kernel’s bugzilla, but, it seems there is no solution for now.
Yes, I have a dedicated graphics card, an NVIDIA RTX 5070 Ti, but I’m getting an error indicating that the issue is related to the iGPU, and the screen doesn’t turn on — it freezes at the splash screen. It doesn’t boot with any kernel newer than 6.14.0-63 (it only works with 6.14.0-63). I’ve tried different distributions, and the result is the same. Could you please share your notebook’s specifications and the system version you’re currently able to boot with? Thank you very much.
I’ve also tried live booting Fedora Workstation 43 (Kernel 6.18) and Manjaro Linux. Previously I’ve had Bluefin GTS that is based off Fedora 41 and had kernel 6.15.
Thank you so much for your answer. I hope I’m not overwhelming you with my questions, but my last one is: do you boot your notebook using the dGPU or the iGPU, and what is it set to in the BIOS settings?
Didn’t mess with any bios configuration in particular, everything is by default. Booting the laptop with iGPU.
By any chance, have you tried booting the laptop with an external screen attached? Normally the USB-C DP port is controlled exclusively by the dGPU, so if the problem is the iGPU that screen should work disabling the iGPU.
Thanks a lot for your reply. Maybe the issue is related to the display panel — there might be an incompatibility with i915, I’m not sure. The AUO B170QAN01.2 panel might be causing the problem.