Stereo out very quiet, onboard speakers non-functional

So I’ve done some legwork on this problem and while I’ve found part of the problem (or at least an addressable symptom) and can temporarily get sound working on my desk speakers via headphone jack, I haven’t identified root cause or a fix that “sticks” there, nor have I found a solution for my onboard laptop speakers not working at all.

I should note these problems are new as of the latest update. My onboard speakers and my desk speakers via headphone jack both worked normally with no extra fiddling required both on Windows previously and on Manjaro from install up until the latest update, so I feel confident it’s a software issue not a hardware issue.

Problem:

I no longer get any sound on my on-board speakers (laptop) and the audio going to my desk speakers via the headphone jack is extremely quiet, setting the physical speakers and system volume both to 100% is just barely above so quiet I have to strain to hear it. Bluetooth headphones still behave 100% normal, so this seems isolated to the onboard sound card.

Partial Solution:

Doing some initial research, I saw a recommendation to run alsamixer and check the volume settings there. Upon selecting my sound card (‘HDA Intel PCH’) the problem with the desk speakers is immediately obvious; ‘Line Out’ is set to 0. Turning this up to 100 gets my volume back to normal on my desk speakers.

Remaining Problems:

  • In System Settings → Sound if I go to the ‘Port:’ dropdown on ‘Speakers’ I see ‘Speakers (unavailable)’ for the onboard speakers and cannot get audio out of them at all. If I change to the ‘Headphones’ port and turn up the ‘Line Out’ in AlsaMixer I do get sound normally out of the desk speakers via the headphone port.
  • When I change back to the ‘Headphones’ port in Sound Settings the Line Out in AlsaMixer returns to 0% and I get very quiet audio again. It can be turned up again but it doesn’t hold. With AlsaMixer open I can see this happen in realtime as soon as I change back to ‘Headphones’. I did run sudo alsactl store after fixing the Line Out and this does not make a difference. Note that switching to Bluetooth Headphones (ie. a separate source rather than a separate port on the same source) does not cause this issue.

Audio hardware/software troubleshooting is pretty well outside my experience, so please let me know what other info would be helpful to include. Here’s the output of `inxi -zA’:

Audio:
  Device-1: Intel Raptor Lake High Definition Audio driver: snd_hda_intel
  Device-2: NVIDIA AD103 High Definition Audio driver: snd_hda_intel
  Device-3: ZhenHuiDesign USB-AUDIO SYSTEM driver: hid-generic,usbhid
    type: USB
  Device-4: Audio-Technica AT2020USB-X
    driver: hid-generic,snd-usb-audio,usbhid type: USB
  API: ALSA v: k6.18.26-1-MANJARO status: kernel-api
  Server-1: PipeWire v: 1.6.4 status: active

Install sof-firmware

Audio:
  Device-1: Intel Raptor Lake High Definition Audio driver: snd_hda_intel
  Device-2: NVIDIA AD103 High Definition Audio driver: snd_hda_intel
  Device-3: ASUSTek USB Audio driver: hid-generic,snd-usb-audio,usbhid
    type: USB
  API: ALSA v: k7.0.3-2-MANJARO status: kernel-api
  Server-1: PipeWire v: 1.6.4 status: active

sof-firmware v2025.12.2-1 is already installed (presumably default to Manjaro) and shows no available updates.

Please post more information about audio devices detected in PipeWire:

pactl list cards

and this to show alsamixer settings for onboard audio device in text format:

amixer --card=0

This is the output of pactl list cards for the device in question, let me know if there’s reason to share the others as well (AudioTechnica USB mic, NVidia)

Card #44
        Name: alsa_card.pci-0000_00_1f.3
        Driver: alsa
        Owner Module: n/a
        Properties:
                device.enum.api = "udev"
                device.api = "alsa"
                media.class = "Audio/Device"
                api.alsa.path = "hw:1"
                api.alsa.card = "1"
                api.alsa.card.name = "HDA Intel PCH"
                api.alsa.card.longname = "HDA Intel PCH at 0x6405130000 irq 252"
                device.plugged.usec = "6980588"
                device.bus_path = "pci-0000:00:1f.3"
                sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card1"
                device.bus = "pci"
                device.subsystem = "sound"
                device.vendor.id = "0x8086"
                device.vendor.name = "Intel Corporation"
                device.product.id = "0x7a50"
                device.product.name = "Raptor Lake High Definition Audio Controller"
                device.form_factor = "internal"
                device.name = "alsa_card.pci-0000_00_1f.3"
                device.description = "Built-in Audio"
                device.nick = "HDA Intel PCH"
                device.icon_name = "audio-card-analog-pci"
                api.alsa.use-acp = "true"
                api.acp.auto-profile = "false"
                api.acp.auto-port = "false"
                api.dbus.ReserveDevice1.Priority = "-20"
                api.alsa.split-enable = "true"
                api.dbus.ReserveDevice1 = "Audio1"
                spa.object.id = "4"
                factory.id = "15"
                client.id = "41"
                object.id = "44"
                object.serial = "44"
                object.path = "alsa:acp:PCH"
                alsa.card = "1"
                alsa.card_name = "HDA Intel PCH"
                alsa.long_card_name = "HDA Intel PCH at 0x6405130000 irq 252"
                alsa.driver_name = "snd_hda_intel"
                alsa.mixer_name = "Realtek ALC287"
                alsa.components = "HDA:10ec0287,17aa38cd,00100002 HDA:80862818,80860101,00100000"
                alsa.id = "PCH"
                device.string = "1"
        Profiles:
                off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
                output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: yes)
                output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes)
                output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5965, available: no)
                output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: no)
                output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: no)
                output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: no)
                output:hdmi-stereo-extra3+input:analog-stereo: Digital Stereo (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: no)
                output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: no)
                output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no)
                output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no)
                output:hdmi-surround+input:analog-stereo: Digital Surround 5.1 (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 865, available: no)
                output:hdmi-surround71+input:analog-stereo: Digital Surround 7.1 (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 865, available: no)
                output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
                output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no)
                output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
                output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
                output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
                output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
                output:hdmi-surround-extra3+input:analog-stereo: Digital Surround 5.1 (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
                output:hdmi-surround71-extra3+input:analog-stereo: Digital Surround 7.1 (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: no)
                output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
                output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no)
                input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 65, available: yes)
                pro-audio: Pro Audio (sinks: 5, sources: 1, priority: 1, available: yes)
        Active Profile: output:analog-stereo+input:analog-stereo
        Ports:
                analog-input-internal-mic: Internal Microphone (type: Mic, priority: 8900, latency offset: 0 usec, availability group: Legacy 1, availability unknown)
                        Properties:
                                port.type = "mic"
                                port.availability-group = "Legacy 1"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "0"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo
                analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, availability group: Legacy 2, not available)
                        Properties:
                                port.type = "mic"
                                port.availability-group = "Legacy 2"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "1"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo
                analog-output-speaker: Speakers (type: Speaker, priority: 10000, latency offset: 0 usec, availability group: Legacy 3, not available)
                        Properties:
                                port.type = "speaker"
                                port.availability-group = "Legacy 3"
                                device.icon_name = "audio-speakers"
                                card.profile.port = "2"
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
                analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, availability group: Legacy 4, available)
                        Properties:
                                port.type = "headphones"
                                port.availability-group = "Legacy 4"
                                device.icon_name = "audio-headphones"
                                card.profile.port = "3"
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo
                hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, availability group: Legacy 5, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 5"
                                device.icon_name = "video-display"
                                card.profile.port = "4"
                        Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71, output:hdmi-surround71+input:analog-stereo
                hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, availability group: Legacy 6, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 6"
                                device.icon_name = "video-display"
                                card.profile.port = "5"
                        Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo
                hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, availability group: Legacy 7, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 7"
                                device.icon_name = "video-display"
                                card.profile.port = "6"
                        Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo
                hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, availability group: Legacy 8, not available)
                        Properties:
                                port.type = "hdmi"
                                port.availability-group = "Legacy 8"
                                device.icon_name = "video-display"
                                card.profile.port = "7"
                        Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3, output:hdmi-surround71-extra3+input:analog-stereo

Here’s amixer --card=1 (it was showing up as 0 in alsamixer but now it’s 1 after a reboot. I’m assuming that’s just assigned at boot in the order the OS sees them and not a problem in itself, but again I know basically nothing about audio hardware/software)

Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 48 [55%] [-29.25dB] [on]
Simple mixer control 'Headphone',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]
Simple mixer control 'Speaker',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [off]
  Front Right: Playback [off]
Simple mixer control 'PCM',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 255
  Mono:
  Front Left: Playback 253 [99%] [-0.40dB]
  Front Right: Playback 253 [99%] [-0.40dB]
Simple mixer control 'Line Out',0
  Capabilities: pvolume
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 87
  Mono:
  Front Left: Playback 87 [100%] [0.00dB]
  Front Right: Playback 87 [100%] [0.00dB]
Simple mixer control 'Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]
Simple mixer control 'IEC958',0
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [off]
Simple mixer control 'IEC958',1
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',2
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'IEC958',3
  Capabilities: pswitch pswitch-joined
  Playback channels: Mono
  Mono: Playback [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 63
  Front Left: Capture 63 [100%] [30.00dB] [on]
  Front Right: Capture 63 [100%] [30.00dB] [on]
Simple mixer control 'Auto-Mute Mode',0
  Capabilities: enum
  Items: 'Disabled' 'Enabled'
  Item0: 'Disabled'
Simple mixer control 'Internal Mic Boost',0
  Capabilities: volume
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: 0 - 3
  Front Left: 0 [0%] [0.00dB]
  Front Right: 0 [0%] [0.00dB]

Not sure if this makes any difference; I just discovered the volume setting in alsamixer also resets on sleep/wake, not just on full reboot.

Mod edit: Consecutive posts merged. :wink:

sudo alsactl store saves ALSA mixer settings for all cards to /var/lib/alsa/asound.state

ALSA settings should be restored automatically when system is booted, but they can also be restored with: sudo alsactl restore

For a system with a GPU and onboard audio, the GPU audio device is usually card=0 and onboard audio card=1
But the card number can change on some systems so it is better to use the alsa.id name (from pactl card data: alsa.id = "PCH") — amixer --card=PCH

Data from amixer shows Speaker output is muted [off]

Simple mixer control 'Speaker',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [off]
  Front Right: Playback [off]

To unmute output:

amixer --card=PHC sset 'Speaker' unmute

Data from amixer shows Master volume control for playback is set to -29.25dB (55%)

Simple mixer control 'Master',0
  Capabilities: pvolume pvolume-joined pswitch pswitch-joined
  Playback channels: Mono
  Limits: Playback 0 - 87
  Mono: Playback 48 [55%] [-29.25dB] [on]

Increasing volume in alsamixer to about -10dB to -6dB should provide sufficient volume for external speakers with plenty of headroom to avoid distortion.

When all alsamixer settings are optimal for you, use sudo alsactl store to save settings, and check if the new settings are restored after sleep and reboot

sudo alsactl restore does seem to restore the settings I have saved, but it is still the case that when I boot, wake from sleep, or switch from speakers to headphones the Line Out resets to 0 and I have to manually set it via alsamixer or via this restore function.

This does not work. Running the command does change what amixer outputs:

Simple mixer control 'Speaker',0
  Capabilities: pswitch
  Playback channels: Front Left - Front Right
  Mono:
  Front Left: Playback [on]
  Front Right: Playback [on]

However I still do not get any sound from the onboard speakers and it still shows (unavailable) in Sound Settings.

If I do select the speakers here I still get no sound and it also resets the Line Out volume to 0. Unmuting via amixer did not change this behavior.

This doesn’t seem related, at 60% per the GUI amixer shows it as -12.75dB and even that is approaching “too loud.” The master volume controls behave as expected, but only for the desk speakers and only by changing Line Out from 0 to 100 after every reboot and wake.

If I keep the Line Out at 0 but turn the Master up to 100% (0.00dB) and crank the physical volume on my speakers it’s still barely audible. Setting the Line Out to 100 causes the master volume to behave as I expect/am used to from prior to the update, but again the issue there is it keeps reverting to 0 even if I save the settings.

None of the above has changed the behavior of the onboard speakers, which still show ‘unavailable’ and produce no sound.

PipeWire port analog-output-headphones can be either available if the jack is plugged in or not available when unplugged, but the analog-output-speaker port cannot be disconnected and should be availability unknown (similar to the analog-input-internal-mic port)

The Speaker port could be unavailable in PipeWire if Auto-Mute Mode is enabled AND headphones (or external speakers) are plugged in (but amixer data shows Auto-Mute is Disabled)

The Speaker port cannot be unavailable due to Speaker output being muted, so it could be that Wireplumber user settings have become corrupted. changes in sound devices might have led to Wireplumber creating multiple configurations to accommodate changes

To reset WirePlumber:

  1. Stop the user service for WirePlumber:
systemctl --user stop wireplumber.service
  1. Delete ~/.local/state/wireplumber/ folder and contents
rm -r ~/.local/state/wireplumber/
  1. Restart the user service to create a new folder
systemctl --user restart wireplumber.service

ArchWiki - WirePlumber - Tips and Tricks - Delete corrupt settings