I have notice that running Plasma Wayland for the last few weeks that from time to time Firefox fails to play audio.
Initially I tried rebooting, checking dmesg, etc. nada
Then I found that fiddling with the audio(plasmoid?) and tweaking the ‘application volume’ for firefox ‘fixed’ this problem. It was minor enough that I did NOT complain as it was easily worked around.
Then we had the HUGE glibc update last week, and I did NOT notice the problem until yesterday where it appeared again, same workaround worked HOWEVER w/the assistance of a helpful and very knwledgeable forum member I found the follow:
journalctl -b | grep pipewire
Feb 11 18:13:15 localhost.localdomain plasmashell[2274]: kpipewire_logging: Window not available PipeWireSourceItem_QML_1016(0x555edfb92c60, parent=0x555edfbc8570, geometry=0,0 176x80)
many of those repeated, sorry cannot check immediately right now…
other specs:
ASROCK x670e PG lightning
AMD Ryzen R9 7900X
4x16GB DDR5
Intel Arc a770 LE 16GB
booting off of spinning rust Toshiba 4GB drive, on a 2TB partition
Did a reboot yesterday after noticing again and tried running xwayland apps to see if they maybe triggered it or not, but fresh boot no xwayland apps, and firefox presented no audio when attempting to play a video(a peer tube video in that instance, first notice was youtube IIRC I did not note although this appears to be extraneous info)
looks possibly like pipewire not running is the problem, but I am not sure how to proceed ATM and do not have access to the machine right now. I’ll probably check that pipewire is setup to start, and go from there, but any guidance would be greatly appreciated.
zypper se pipewire
Loading repository data...
Reading installed packages...
S | Name | Summary | Type
--+--------------------------------+--------------------------------------------------------------------+-----------
| gstreamer-plugin-pipewire | Gstreamer Plugin for PipeWire | package
| kpipewire-devel | Development files for kpipewire | package
i | kpipewire-imports | QtQuick bindings for kpipewire | package
i | libKPipeWire5 | PipeWire integration for KDE Plasma - main library | package
| libKPipeWire5-lang | Translations for package libKPipeWire5 | package
i | libKPipeWireDmaBuf5 | PipeWire integration for KDE Plasma - DMA-BUF support | package
i | libKPipeWireRecord5 | PipeWire integration for KDE Plasma - recording support | package
i | libpipewire-0_3-0 | A Multimedia Framework designed to be an audio and video server -> | package
i | libpipewire-0_3-0-32bit | A Multimedia Framework designed to be an audio and video server -> | package
i | pipewire | A Multimedia Framework designed to be an audio and video server -> | package
i | pipewire-alsa | PipeWire media server ALSA support | package
i | pipewire-alsa-32bit | PipeWire media server ALSA support | package
| pipewire-aptx | PipeWire Bluetooth aptX codec plugin | package
| pipewire-aptx | PipeWire Bluetooth aptX codec plugin | srcpackage
| pipewire-aptx-debuginfo | Debug information for package pipewire-aptx | package
| pipewire-aptx-debugsource | Debug sources for package pipewire-aptx | package
| pipewire-devel | Development Files For PipeWire, A Multimedia Framework | package
| pipewire-doc | PipeWire media server documentation | package
i | pipewire-jack | PipeWire JACK implementation | package
| pipewire-lang | Translations for package pipewire | package
i | pipewire-libjack-0_3 | PipeWire libjack replacement libraries | package
| pipewire-libjack-0_3-32bit | PipeWire libjack replacement libraries | package
| pipewire-libjack-0_3-devel | Development files for pipewire-libjack-0_3 | package
| pipewire-module-x11-0_3 | X11 support For PipeWire, A Multimedia Framework | package
| pipewire-module-xrdp | Enable xrdp to generate sound with pipewire | package
i | pipewire-modules-0_3 | Modules For PipeWire, A Multimedia Framework | package
i | pipewire-modules-0_3-32bit | Modules For PipeWire, A Multimedia Framework | package
i | pipewire-pulseaudio | PipeWire PulseAudio implementation | package
i | pipewire-spa-plugins-0_2 | Plugins For PipeWire SPA | package
i | pipewire-spa-plugins-0_2-32bit | Plugins For PipeWire SPA | package
i | pipewire-spa-tools | The PipeWire SPA Tools | package
i | pipewire-tools | The PipeWire Tools | package
| qemu-audio-pipewire | Pipewire based audio support for QEMU | package
Yes, of course. The pipewire.service should be active for working sound in a modern desktop environment, and pipewire-pulse.service is used to support legacy applications that still rely on PulseAudio (likely not essential for most users though).
thanks for the help, and sorry about not responding for several days but I had to go out of town for a fewish days…
Just tried this and yes that worked!
OOC why would I run as a user v. root/sudo? it seems counterintuitive to me… for a systemwide service… (and yes Im not systemd expert and still feeling my way around it’s oddities, or perhaps better to say differences from prior ways of starting services…)
[EDIT]
Also, any other particular tips that my be helpful wrt to systemd and audio? Im not a pro user but, for example I do NOT use the GPU audio at all, and I notice that kde seems to shift around the audio volume controls for example from time to time which screws up muscle memory for adjusting the correct(or desired) volume setting, which can lead to undesired results…
ah well, eventually this will become second nature, I guess, but half of systemd seems to be incredibly obtuse…
PipeWire is low-level framework with user space API used for handling multimedia (video and/or audio) streams. As it is designed to run within user session environments, it makes sense to be managed via a systemd user service. (From a multi-user context, it can be running in more than one session concurrently.)
Here’s a good explanatory article about systemd user services.