Audio issues on MSI workstation laptop with a Realtek ALC898 sound

Hey everyone, I’m using Fedora on an MSI workstation laptop with a Realtek ALC898 sound card. My headphones are detected as S/PDIF, but I’m currently experiencing an issue where audio is playing through both the system speakers and the headphones simultaneously, even though the system speakers are selected as the default output in the audio settings.

I’ve tried using qpwgraph to route audio, but I only see one playback device (built-in audio) in the graph, and it doesn’t allow me to separate the outputs. I’ve also attempted to configure ALSA and PipeWire by editing /etc/asound.conf and ~/.config/pipewire/pipewire.conf, but some changes caused the audio service to fail to restart. Currently, the audio service is working again after resetting the configuration files, but the dual playback issue persists.

All of these problems started when I tried to split audio outputs between apps, since I wanted certain apps to use the speaker and other to use the headphone and others to use the HDMI port (currently unplugged). Here are some info that I think may help.

❯ pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 87
Tile Size: 65472
Server Name: PulseAudio (on PipeWire 1.2.7)
Server Version: 15.0.0
Default Sample Specification: float32le 2ch 48000Hz
Default Channel Map: front-left,front-right
Default Sink: alsa_output.pci-0000_00_1f.3.analog-stereo
Default Source: alsa_input.pci-0000_00_1f.3.analog-stereo
Cookie: 5f28:0482
❯ lspci | grep Audio
00:1f.3 Audio device: Intel Corporation 100 Series/C230 Series Chipset Family HD Audio Controller (rev 31)
❯ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC898 Analog [ALC898 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC898 Digital [ALC898 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [HDMI 1]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 8: HDMI 2 [HDMI 2]
  Subdevices: 1/1
  Subdevice #0: subdevice #0


when I select “HDA INTEL PCH” I get this:

So what about your wireplumber? You are using wireplumber?

please show:

inxi -Aa

and

rpm -q wireplumber

the rpm command is to show what WP version you have (that doesn’t show from the inxi -Aa)

I just installed It, never heard of it:
❯ inxi -Aa
Audio:
Device-1: Intel 100 Series/C230 Series Family HD Audio
vendor: Micro-Star MSI driver: snd_hda_intel v: kernel
alternate: snd_soc_avs bus-ID: 00:1f.3 chip-ID: 8086:a170 class-ID: 0403
API: ALSA v: k6.12.9-200.fc41.x86_64 status: kernel-api
tools: alsactl,alsamixer,amixer
Server-1: JACK v: 1.9.22 status: off tools: N/A
Server-2: PipeWire v: 1.2.7 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
tools: pactl,pw-cat,pw-cli,wpctl
❯ rpm -q wireplumber
wireplumber-0.5.7-1.fc41.x86_64

Meh, that looks normal

config issue maybe, But I don’t know how to configure it though

What steps did you take to ‘split’ the audio?

Well, I couldn’t split the audio since there was an issue with my card and when I tried to solve it I created these now problems. I attempted to reconfigure some config files, and I did revert the changes but still no luck. I did fix the speaker and the headphones outputting audio even though the speakers are selected using alsamixer, I just muted the headphones (S/PDIF) but still there are problems with the current setup. I have a workstation laptop with a lot of audio outputs. here:


Actually, Now that I took a loot at this, I ruined it. There were a lot of options before (HDMI 1, 2 and 3).

I have some sound problems sometimes and I did find a workaround : a way to delete and rescan sound card : with sudo :

echo "1" > /sys/bus/pci/devices/0000\:00\:1f.3/remove
sleep 5
echo 1 >/sys/bus/pci/rescan

From your output : sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0 It seems the pci path for sound device is the same

Well, I didn’t read all the post so I can’t affirm this will do the job but won’t break anything :wink:

Didn’t solve anything… The sound card working fine. I just need to configure It I think but I don’t know how. Maybe reinstalling everything and deleting the old configs.

I found an image of the old audio outputs:

Uninstalling and reinstalling (wireplumber, pipewire, alsa) sounds like a good idea.
To paraphrase the IT Crowd, “Uninstall it and Reinstall it again”.
Either that or develop a working knowledge of the above mentioned. :slight_smile: Unfortunately that is not something I have yet managed.

Maybe reinstalling everything and deleting the old configs.

I don’t see the point of all that work, any “old configs” would be files that you yourself created and edited. So don’t you just delete them?

The files you made and edited would be under:

~/.config/pipewire/pipewire.conf.d/*
and
~/.config/wireplumber/wireplumber.conf.d/*

wireplumber also has some “state” files under:

~/.local/state/wireplumber/*

To give an example of one of mine I have this one to make my Network ROC sink:

cat ~/.config/pipewire/pipewire.conf.d/roc-sink.conf

context.modules = [ 
  {   name = libpipewire-module-roc-sink 
      args = { 
          fec.code = rs8m
          # ip of source host with speakers
          remote.ip = 192.168.1.5
          remote.source.port = 10001 
          remote.repair.port = 10002 
          remote.control.port = 10003 
          sink.name = "dell ROC" 
          sink.props = {
             node.description = "dell roc sink"
             node.name = "dell-roc-sink" 
          } 
      } 
  } 
]

If someone wants to know what a ROC sink and source is, it allows me to play audio from one PC on the network (the “sink”) to the “source” which has a similar conf file but which defines the Source. The source pc is the one that has the actual speakers on it.
The “remote.ip” is the IP of the source pc.

Well, since I don’t understand anything about audio. I went to Claude and DeepSeek asking for help. I did reverse the changes that I did but no luck. If you want me to share the discussions I have. They made valid? points but still no luck.

Hey, can anyone help here please

~ Thank you

Did you uninstall and reinstall?

I am interested in what the all-seeing AIs told you. Funniest thing I heard about an AI saying to day is that cow eggs are nutritious.

Nobody here seems to know much about audio. So I would look up some audio forums. Stackexchange also has some good advice.

bruh, you talking with ChatGPT 1.5 :skull:

As for what they said, well they noticed my laptop is detecting my headphones in the form of (S/PDIF) which shouldn’t be happening, it should be detected as headphones. They also thought that the issue lies in the config so they tried to make a config file, They kinda made it so that when the headphones are plugged in the audio will automatically go to the audio, even though the system speakers are selected and so much more shit, but they don’t know much and the best of them (claude) is very sensitive to long chats LMAO

Well I just learned that I can run alsamixer in terminal and change my volume! In Sway I’ve been doing that on the command line :slight_smile:

Please do tell me though,
1)have you a) deleted all your config files
and then b) uninstalled ALSA, Pipewire, Jack and wireplumber and
c) reinstalled them and then
d) rebooted, ? It might sound stupid but one may be surprised.

  1. After that, test your system.

  2. Then, tell me again what you are trying to achieve at this point. Is it

issue where audio is playing through both the system speakers and the headphones simultaneously

  1. a) Detail all ports / jacks on you laptop, and b) provide the model name and number and manual if possible.

well, I did do all of that which kinda helped. now the audio doesn’t play through both the system and the headphones at the same time but Its not being detected as headphones.

The devices that I lost are still not available the HDMI 1, 2, and 3.

EDIT: When I use alsamixer, by default Pipewire is selected which has only one audio controller (master) when I switch to my INTEL card, I get these


but the thing is AGAIN, the headphones aren’t detected as headphones, Auto-switching to them when they are plugged in doesn’t happen, or at least show me that one interface where I have to choose which playback device I should choose, my friend has it (Fedora41) and I don’t. I also wanted to split the audio between apps so certain apps use certain audio playbacks but the thing is there is only one audio playback which shouldn’t be the case IMO

Okay, so you have done 1) reinstall, 2) test, 3) you tell me that
a) the headphones are not recognized automatically and b) you want to assign devices to applications.

You still need to tell me a) Detail all ports / jacks on you laptop, and b) provide the model name and number and manual if possible.