Sound Issue: Only Subwoofer Working on Laptop with 2+1 Speakers after Switching to Fedora

Hi everyone,

I recently switched to Fedora on my laptop, which has a 2+1 speaker system (2 speakers and 1 subwoofer). However, I’m encountering a problem with the sound output. The subwoofer is the only component producing sound, while the two speakers are not being recognized by the system.

Here’s a summary of my setup and the issue:

  • Laptop with 2+1 speaker configuration (2 speakers, 1 subwoofer)
  • Only the subwoofer is emitting sound
  • The two main speakers are not detected by the system

I would appreciate any guidance on how to resolve this issue. Has anyone experienced a similar problem, or does anyone have suggestions on what settings or configurations I need to adjust to get the main speakers working properly?

Thanks in advance for your help!
my PC : Acer Predator G9-593

Unfortunately, audio issues are pretty common with exotic configurations like those, as the HDA spec is pretty loose.

Could you run alsa-info.sh and share its output, please? It might provide some useful information.

I couldn’t add it here due to the character limit, the result is on the attached site.
alsa output

Hello @onekra ,
Welcome to :fedora: !
Do your satellite speakers plug into your subwoofer? My 2.1 speakers have audio in on the sub with output to satellites. Are yours’ separate? I could run separate with the rear outputs of my system.

My first recommendation would be to try a fixup model, as documented here: More Notes on HD-Audio Driver — The Linux Kernel documentation, HD-Audio Codec-Specific Models — The Linux Kernel documentation

alc255-acer, asus-g73jw and alc290-subwoofer look pretty promising. Do any of these models fix your issue?

I’m sorry, but I didn’t understand anything from the pages you sent me, I’m quite new to Linux. I’ve had a problem like this before, but I didn’t mind it. If I can’t solve it now, I’ll continue like this, but if it’s something that can be solved, I want to solve it.

It’s not the external speakers, the jack inputs are working, the problem is the internal ones. I was using Windows before, but when I started having problems with the work I was doing, I decided to switch to Linux again. If I can’t solve it, I will continue to use it like this.

Years ago I had a HP laptop that was the opposite with speakers working but not the subwoofer; I used some GUI ALSA tool to figure out two things to change, and then made an auto-start script that did it with hda-verb.


I haven’t used this since 2016 but here’s what I did:

sudo -e '/etc/systemd/system/hp-audio.service' && sudo systemctl daemon-reload && sudo systemctl enable 'hp-audio' && sudo systemctl start 'hp-audio' && sudo systemctl status 'hp-audio' -l

[Unit]
Description=HP Audio Bass and Volume Fix

[Service]
Type=oneshot
ExecStart='/usr/bin/hda-verb' '/dev/snd/hwC1D0' '0x1a' '0x782' '0x61'
ExecStart='/usr/bin/hda-verb' '/dev/snd/hwC1D0' '0x1a' '0x773' '0x2d'

[Install]
WantedBy=multi-user.target

You’ll likely need to figure out what those 3 magic numbers are for your specific laptop.

Sorry about that. While this issue can be resolved, it does require intervention from the hardware’s user. I don’t own this particular laptop, so all I can do is give you some guidance and hints on how to fix this problem. :pensive:

There is one graphical tool which could help you debug this issue: git.alsa-project.org Git - alsa.git/tree - hda-analyzer/

You could try messing around with the configuration. If you manage to find any particular steps which make the speakers output sound, then I might be able to provide you with a proper fix.

1 Like

@onekra Actually, scratch that for a moment! I’ve found some documentation which targets your laptop model specifically.

Try following these steps:

  1. Run sudo dnf alsa-tools.
  2. Run hdajackretask.
  3. Select the Realtek codec (ALC255).
  4. Check the “Show unconnected pins” option
  5. Look out for Pin ID: 0x17 > select override > choose “Internal Speaker(LFE)”
  6. Look out for Pin ID: 0x1b > select override > choose “Internal speaker(Back)”
  7. Press “Install boot override”, then reboot.

Here’s a screenshot of how it should look like after you follow these steps:

If that fixes it, you shouldn’t need to do anything else on your side! Additionally, I’ll send a patch upstream to the Linux kernel which fixes this issue. Once that’s merged, no more workarounds will be required.

Edit: If it works, please share your /lib/firmware/hda-jack-retask.fw file with me.

Not sure why, but the file I’ve asked for was removed. Reposting it for the sake of archival:

[codec]
0x10ec0255 0x10251177 0

[pincfg]
0x12 0x90a601c0
0x14 0x90171110
0x17 0x90170151
0x18 0x411111f0
0x19 0x411111f0
0x1a 0x03a11030
0x1b 0x90170152
0x1d 0x40e89b2d
0x1e 0x411111f0
0x21 0x03211020

I’ve submitted a patch here.