LinuxQuestions.org
Share your knowledge at the LQ Wiki.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Fedora
User Name
Password
Fedora This forum is for the discussion of the Fedora Project.

Notices


Reply
  Search this Thread
Old 04-01-2024, 04:49 AM   #1
shachter
Member
 
Registered: Jul 2007
Posts: 101

Rep: Reputation: 2
How Do I Get The Pipewire Pulseaudio Compatibility To Work in Fedora 39?


Esteemed Colleagues,

On my Fedora 39 system, the pipewire packages are installed, and the
pulseaudio packages -- which are incompatible with the pipewire
packages -- are not:

$ rpm -qa | grep pipewire
pipewire-0.3.85-1.fc39.x86_64
pipewire-libs-0.3.85-1.fc39.x86_64
pipewire-gstreamer-0.3.85-1.fc39.x86_64
pipewire-pulseaudio-0.3.85-1.fc39.x86_64
qemu-audio-pipewire-8.1.1-1.fc39.x86_64
pipewire-alsa-0.3.85-1.fc39.x86_64
pipewire-utils-0.3.85-1.fc39.x86_64
$

The mpv command (which defaults, as it should, to "mpv -ao=pulse")
fails, for failure to connect to a pulseaudio server.

The pipewire-pulse command claims to start, in the words of its manual
page, "a drop-in replacement for the PulseAudio daemon". It does not:

$ pipewire-pulse -v
[E][25431.837538] mod.protocol-pulse | [ utils.c: 45 get_runtime_dir()] could not find a suitable runtime directory in$PULSE_RUNTIME_PATH and $XDG_RUNTIME_DIR
[W][25431.837628] mod.protocol-pulse | [ server.c: 998 servers_create_and_start()] pulse-server 0x5630c09d25d0: failed to parse address 'unix:native': No such file or directory
[E][25431.837694] mod.protocol-pulse | [ pulse-server.c: 5542 pw_protocol_pulse_new()] 0x5630c09d25d0: no servers could be started: No such file or directory
[E][25431.838072] pw.conf | [ conf.c: 573 load_module()] 0x5630c099fb60: could not load mandatory module "libpipewire-module-protocol-pulse": No such file or directory
[E][25431.839121] default | [ pipewire.c: 105 main()] failed to create context: No such file or directory
$

I can hear sound by invoking mpv with the "--audio-device=alsa/hdmi"
argument, but that is bogus. The audio device should be configured in
pulseaudio, not specified every time one needs to use audio.
Moreover, there are programs like firefox (and perhaps others) in
which the audio device cannot be specified, and pulseaudio is assumed.
I can install the pulseaudio packages, but only by removing the
pipewire packages. This is what I have done on many of my other
systems, and it works. But, because pipewire is supposed to be so
bloody wonderful, I want to figure out how to use it, starting with my
Fedora 39 system on which it is installed by default. So how do I get
pipewire-pulse to work?

As always, thank you in advance for any and all replies.
 
Old 04-01-2024, 11:29 AM   #2
smallpond
Senior Member
 
Registered: Feb 2011
Location: Massachusetts, USA
Distribution: Fedora
Posts: 4,143

Rep: Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264
mpv and firefox audio work ok for me in F39. I have both /usr/bin/pipewire and /usr/bin/pipewire-pulse started by systemd. Check these commands:

Code:
pactl info
Server String: /run/user/1000/pulse/native
Library Protocol Version: 35
Server Protocol Version: 35
Is Local: yes
Client Index: 3106
Tile Size: 65472
User Name: XXXXX
Host Name: XXXXX
Server Name: PulseAudio (on PipeWire 1.0.3)
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_output.pci-0000_00_1f.3.analog-stereo.monitor
Cookie: 881d:2d2d

Code:
rpm -qa |grep -e pipe -e pulse
pulseaudio-libs-16.1-5.fc39.x86_64
libpipeline-1.5.7-3.fc39.x86_64
pulseaudio-libs-glib2-16.1-5.fc39.x86_64
gvncpulse-1.3.1-3.fc39.x86_64
pipewire-libs-1.0.3-1.fc39.x86_64
pipewire-1.0.3-1.fc39.x86_64
vlc-plugin-pipewire-3-1.fc39.x86_64
pipewire-jack-audio-connection-kit-libs-1.0.3-1.fc39.x86_64
kpipewire-5.27.10-1.fc39.x86_64
pipewire-pulseaudio-1.0.3-1.fc39.x86_64
pulseaudio-qt-1.4.0-2.fc39.x86_64
pipewire-alsa-1.0.3-1.fc39.x86_64
pipewire-gstreamer-1.0.3-1.fc39.x86_64
qemu-audio-pipewire-8.1.3-4.fc39.x86_64
kde-settings-pulseaudio-39.1-1.fc39.noarch
pipewire-jack-audio-connection-kit-1.0.3-1.fc39.x86_64
pipewire-utils-1.0.3-1.fc39.x86_64
pipewire-codec-aptx-1.0.3-1.fc39.x86_64
pulseaudio-utils-16.1-5.fc39.x86_64
pipewire0.2-libs-0.2.7-10.fc39.x86_64
 
Old 04-01-2024, 12:04 PM   #3
TB0ne
LQ Guru
 
Registered: Jul 2003
Location: Birmingham, Alabama
Distribution: SuSE, RedHat, Slack,CentOS
Posts: 26,636

Rep: Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965
Quote:
Originally Posted by shachter View Post
Esteemed Colleagues,
On my Fedora 39 system, the pipewire packages are installed, and the pulseaudio packages -- which are incompatible with the pipewire packages -- are not:
Code:
$ rpm -qa | grep pipewire
   pipewire-0.3.85-1.fc39.x86_64
   pipewire-libs-0.3.85-1.fc39.x86_64
   pipewire-gstreamer-0.3.85-1.fc39.x86_64
   pipewire-pulseaudio-0.3.85-1.fc39.x86_64
   qemu-audio-pipewire-8.1.1-1.fc39.x86_64
   pipewire-alsa-0.3.85-1.fc39.x86_64
   pipewire-utils-0.3.85-1.fc39.x86_64
The mpv command (which defaults, as it should, to "mpv -ao=pulse") fails, for failure to connect to a pulseaudio server. The pipewire-pulse command claims to start, in the words of its manual page, "a drop-in replacement for the PulseAudio daemon". It does not:
Code:
$ pipewire-pulse -v
[E][25431.837538] mod.protocol-pulse | [utils.c:   45 get_runtime_dir()] could not find a suitable runtime directory in$PULSE_RUNTIME_PATH and $XDG_RUNTIME_DIR
[W][25431.837628] mod.protocol-pulse | [server.c:  998 servers_create_and_start()] pulse-server 0x5630c09d25d0: failed to parse address 'unix:native': No such file or directory
[E][25431.837694] mod.protocol-pulse | [pulse-server.c: 5542 pw_protocol_pulse_new()] 0x5630c09d25d0: no servers could be started: No such file or directory
[E][25431.838072] pw.conf      | [conf.c:  573 load_module()] 0x5630c099fb60: could not load mandatory module "libpipewire-module-protocol-pulse": No such file or directory
[E][25431.839121] default      | [pipewire.c:  105 main()] failed to create context: No such file or directory
I can hear sound by invoking mpv with the "--audio-device=alsa/hdmi" argument, but that is bogus. The audio device should be configured in pulseaudio, not specified every time one needs to use audio. Moreover, there are programs like firefox (and perhaps others) in which the audio device cannot be specified, and pulseaudio is assumed. I can install the pulseaudio packages, but only by removing the pipewire packages. This is what I have done on many of my other systems, and it works. But, because pipewire is supposed to be so bloody wonderful, I want to figure out how to use it, starting with my Fedora 39 system on which it is installed by default. So how do I get pipewire-pulse to work?

As always, thank you in advance for any and all replies.
Did you read/think about what you posted?? You start by saying you don't have pulseaudio installed...and are surprised you can't play sound through pipewire-to-pulseaudio??? Some easily-found commands (did you do any research??)
Code:
Use pulseaudio:  sudo dnf swap --allowerasing pipewire-pulseaudio pulseaudio
Use pipewire:    sudo dnf swap --allowerasing pulseaudio pipewire-pulseaudio
You have to reboot to stop/start the services (did you do this??)

From the thread here:
https://superuser.com/questions/1822...Fbass%20volume.

Looks like you've been working on pulseaudio since last year, and you rarely even bother to follow up in the majority of your threads:
https://www.linuxquestions.org/quest...7/#post6438145

Last edited by TB0ne; 04-01-2024 at 12:06 PM.
 
Old 04-01-2024, 01:42 PM   #4
shachter
Member
 
Registered: Jul 2007
Posts: 101

Original Poster
Rep: Reputation: 2
You wrote:

I have both /usr/bin/pipewire and /usr/bin/pipewire-pulse started by systemd

from which I understand that pipewire-pulse is not, as its documentation
incorrectly states, a "drop-in replacement for the PulseAudio daemon",
inasmuch as pulseaudio is not started by systemd, one types "pulseaudio --start"
on the command line.

This led to a search for the systemd service that must be started in
order to invoke those commands. Thus:

Code:
$ locate pipewire | grep systemd
/etc/systemd/user/pipewire-session-manager.service
/etc/systemd/user/pipewire.service.wants
/etc/systemd/user/pipewire.service.wants/wireplumber.service
/etc/systemd/user/sockets.target.wants/pipewire-pulse.socket
/etc/systemd/user/sockets.target.wants/pipewire.socket
/usr/lib/systemd/user/pipewire-pulse.service
/usr/lib/systemd/user/pipewire-pulse.socket
/usr/lib/systemd/user/pipewire.service
/usr/lib/systemd/user/pipewire.service.d
/usr/lib/systemd/user/pipewire.socket
/usr/lib/systemd/user/pipewire.service.d/00-uresourced.conf
$
These files, instead of residing underneath the system subdirectory
of the systemd directory, reside underneath the user subdirectory,
which I did not know, until now, existed.

It appears from the documentation that one is expected to invoke
such services in the following 3-step procedure:

Code:
$ systemctl --user enable servicename.service
$ systemctl --user daemon-reload
$ systemctl --user start servicename.service
This does not, however, work, so I must be missing something:

Code:
$ systemctl --user enable pipewire
Failed to enable unit: Process org.freedesktop.systemd1 exited with status 1
$
As you can see, I did not get past the first step of the
3-step procedure. Also, before doing the above, I installed
all of the packages that you listed in your post (even ones
that I was sure I did not need, like kde-settings-pulseaudio).
Nonetheless, the command failed, as you can see from the above.

What is the correct way to obtain functionality from this
soi-disant "drop-in replacement for the PulseAudio daemon"?

As always, thank you in advance for any and all replies.
In particular, even replies containing personal attacks are welcome,
if they contain useful information.
 
Old 04-01-2024, 02:15 PM   #5
TB0ne
LQ Guru
 
Registered: Jul 2003
Location: Birmingham, Alabama
Distribution: SuSE, RedHat, Slack,CentOS
Posts: 26,636

Rep: Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965
Quote:
Originally Posted by shachter View Post
You wrote:
I have both /usr/bin/pipewire and /usr/bin/pipewire-pulse started by systemd

from which I understand that pipewire-pulse is not, as its documentation incorrectly states, a "drop-in replacement for the PulseAudio daemon", inasmuch as pulseaudio is not started by systemd, one types "pulseaudio --start" on the command line. This led to a search for the systemd service that must be started in order to invoke those commands. Thus:
Code:
$ locate pipewire | grep systemd
/etc/systemd/user/pipewire-session-manager.service
/etc/systemd/user/pipewire.service.wants
/etc/systemd/user/pipewire.service.wants/wireplumber.service
/etc/systemd/user/sockets.target.wants/pipewire-pulse.socket
/etc/systemd/user/sockets.target.wants/pipewire.socket
/usr/lib/systemd/user/pipewire-pulse.service
/usr/lib/systemd/user/pipewire-pulse.socket
/usr/lib/systemd/user/pipewire.service
/usr/lib/systemd/user/pipewire.service.d
/usr/lib/systemd/user/pipewire.socket
/usr/lib/systemd/user/pipewire.service.d/00-uresourced.conf
These files, instead of residing underneath the system subdirectory of the systemd directory, reside underneath the user subdirectory, which I did not know, until now, existed.
It appears from the documentation that one is expected to invoke such services in the following 3-step procedure:
Code:
$ systemctl --user enable servicename.service
$ systemctl --user daemon-reload
$ systemctl --user start servicename.service
This does not, however, work, so I must be missing something:
Code:
$ systemctl --user enable pipewire
Failed to enable unit: Process org.freedesktop.systemd1 exited with status 1
As you can see, I did not get past the first step of the 3-step procedure. Also, before doing the above, I installed all of the packages that you listed in your post (even ones
that I was sure I did not need, like kde-settings-pulseaudio). Nonetheless, the command failed, as you can see from the above. What is the correct way to obtain functionality from this soi-disant "drop-in replacement for the PulseAudio daemon"?

As always, thank you in advance for any and all replies. In particular, even replies containing personal attacks are welcome, if they contain useful information.
Apparently you are still ignoring things; you were handed two commands that perform things you want to do, along with a link with scripts to go back and forth. Did you read those things??? Try them?? You *STILL* don't answer the question of "did you reboot?" either. You seem to post things and ignore good bits of what you're told, on the rare occasions you follow up. The fact you've been asked things and not followed up many times, and seemingly don't do much research or pay attention to what you're told isn't a 'personal attack'...it's a fact, and it's plain rude.

You were given commands and seemingly ignored them; you were given a link with scripts and seemingly ignored IT too. If you don't install the packages, you can't start them.
 
Old 04-01-2024, 04:40 PM   #6
shachter
Member
 
Registered: Jul 2007
Posts: 101

Original Poster
Rep: Reputation: 2
It seems that the original poster ("OP") failed to make himself
clear, when he wrote:


I can install the pulseaudio packages, but only by removing the
pipewire packages. This is what I have done on many of my other
systems, and it works. But, because pipewire is supposed to be so
bloody wonderful, I want to figure out how to use it, starting with my
Fedora 39 system on which it is installed by default. So how do I get
pipewire-pulse to work?


The "dnf swap" command, which was recommended in response to the
above, installs the pulseaudio packages, and removes the pipewire
packages. It is thus hard to understand how it can be proposed
as an answer to the OP's question. The OP asked how to obtain
sound from the pipewire packages; he had already indicated his
awareness that one can obtain sound by uninstalling the pipewire
packages, and installing the pulseaudio packages. But apparently
he failed to express himself clearly.

Fedora 39, which presumably is intended to be functional after it
has been installed, comes with the pipewire packages by default.
The pipewire packages include a program called "pipeware-pulse"
which purports to be "a drop-in replacement for the PulseAudio
daemon". "Drop-in replacement" means that programs like mpv and
firefox which formerly obtained sound from pulseaudio can obtain
sound in the same way from pipewire-pulse instead. The OP's
question was: How does one successfully invoke the "pipewire-pulse"
command? Invoking it from the command line, as one invokes
"pulseaudio --start" from the command line, failed. Apparently
it must not be invoked from the command line, but, rather,
from systemd. How is that done? The "systemctl --user enable pipewire"
command fails. Also, although not explicitly stated in the
earlier post, the command "systemctl --user start pipewire",
the command "systemctl --user enable pipewire-pulse", and the
command "systemctl --user start pipewire-pulse", all fail, all
with the error message "Process org.freedesktop.systemd1 exited with status 1".
How does one successfully invoke the "pipewire-pulse" command
on Fedora 39? All replies will be greatly appreciated, and will
be carefully read.
 
Old 04-01-2024, 05:01 PM   #7
TB0ne
LQ Guru
 
Registered: Jul 2003
Location: Birmingham, Alabama
Distribution: SuSE, RedHat, Slack,CentOS
Posts: 26,636

Rep: Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965
Quote:
Originally Posted by shachter View Post
It seems that the original poster ("OP") failed to make himself clear, when he wrote:

I can install the pulseaudio packages, but only by removing the
pipewire packages. This is what I have done on many of my other
systems, and it works. But, because pipewire is supposed to be so
bloody wonderful, I want to figure out how to use it, starting with my
Fedora 39 system on which it is installed by default. So how do I get
pipewire-pulse to work?


The "dnf swap" command, which was recommended in response to the above, installs the pulseaudio packages, and removes the pipewire packages. It is thus hard to understand how it can be proposed as an answer to the OP's question. The OP asked how to obtain sound from the pipewire packages; he had already indicated his awareness that one can obtain sound by uninstalling the pipewire packages, and installing the pulseaudio packages. But apparently he failed to express himself clearly.

Fedora 39, which presumably is intended to be functional after it has been installed, comes with the pipewire packages by default. The pipewire packages include a program called "pipeware-pulse" which purports to be "a drop-in replacement for the PulseAudio daemon". "Drop-in replacement" means that programs like mpv and firefox which formerly obtained sound from pulseaudio can obtain sound in the same way from pipewire-pulse instead. The OP's question was: How does one successfully invoke the "pipewire-pulse" command? Invoking it from the command line, as one invokes

"pulseaudio --start" from the command line, failed. Apparently it must not be invoked from the command line, but, rather, from systemd. How is that done? The "systemctl --user enable pipewire" command fails. Also, although not explicitly stated in the earlier post, the command "systemctl --user start pipewire", the command "systemctl --user enable pipewire-pulse", and the command "systemctl --user start pipewire-pulse", all fail, all with the error message "Process org.freedesktop.systemd1 exited with status 1".
How does one successfully invoke the "pipewire-pulse" command on Fedora 39? All replies will be greatly appreciated, and will be carefully read.
Carefully read, perhaps...understood doesn't seem likely. And your condescending manner in responding with things like "the OP failed to make himself clear" certainly doesn't give many folks reason to want to try to help you, as you did before with your snark about removing your email address from your posts a while back.

You were asked to run two commands by smallpond: "pactl info" and "rpm -qa |grep -e pipe -e pulse"; if you 'carefully read' that post, you'd have run those commands and posted the output. You apparently did not, and smallpond even gave you a list of the relevant packages. Again, if you are missing packages, things *WILL NOT WORK* and *WILL NOT START*...can't be more clear than that, and your own errors that you posted indicate things are missing. Many threads deal with this exact issue...again, you appear to not bother looking despite your many years being here and using Linux:
Code:
List things necessary:
dnf list pipewire pipewire-alsa pipewire-jack-audio-connection-kit pipewire-pulseaudio wireplumber

Install things if needed:
dnf install pipewire pipewire-alsa pipewire-jack-audio-connection-kit pipewire-pulseaudio wireplumber  

dnf will either install any that aren't installed and skip any that are already installed. If you're missing any others from the list smallpond gave, install THEM too.
If you 'read carefully' the package list, you'll see "pipewire-pulseaudio"...now if you think carefully about your subject line of "...pipewire pulseaudio compatability to work...", you need BOTH.
 
Old 04-01-2024, 10:16 PM   #8
shachter
Member
 
Registered: Jul 2007
Posts: 101

Original Poster
Rep: Reputation: 2
Every one of those packages (except for pipewire-jack-audio-connection-kit,
of which more will be said later) was already installed. In particular,
the pipewire-pulseaudio package was already installed. I apologize that
that fact was (apparently) not obvious; but, inasmuch as the pipewire-pulse
command is part of the pipewire-pulseaudio package, the pipewire-pulseaudio
package would have to have been already installed, before the first article
in this thread was written, otherwise the invocation of "pipewire-pulse -v"
would have produced a "command not found" diagnostic, rather than the
5-line error message that was presented there.

The pipewire-jack-audio-connection-kit package was not installed, because
it was incompatible with the already-installed jack-audio-connection-kit
package. The "dnf install" command required a "--allowerasing" argument
to install it. I was skeptical that replacing the jack-audio-connection-kit
package with the pipewire-jack-audio-connection-kit package would make any
difference, but I replaced the jack-audio-connection-kit package with the
pipewire-jack-audio-connection-kit package, and it did not make any
difference. Invoking the "pipewire-pulse" command from the command line
still fails with the same error message as before, and the four "systemctl --user"
commands that failed before, still fail, with the same error message as before.

There was an implied request for the output of "rpm -qa |grep -e pipe -e pulse"
and of "pactl info". Here is the output of the former command:

Code:
$ rpm -qa |grep -e pipe -e pulse
pulseaudio-libs-16.1-5.fc39.x86_64
libpipeline-1.5.7-3.fc39.x86_64
pulseaudio-libs-glib2-16.1-5.fc39.x86_64
gvncpulse-1.3.1-3.fc39.x86_64
alsa-plugins-pulseaudio-1.2.7.1-7.fc39.x86_64
pulseaudio-utils-16.1-5.fc39.x86_64
pulseaudio-libs-devel-16.1-5.fc39.x86_64
vlc-plugin-pipewire-3-1.fc39.x86_64
pulseaudio-qt-1.4.0-2.fc39.x86_64
qemu-audio-pipewire-8.1.3-4.fc39.x86_64
kde-settings-pulseaudio-39.1-1.fc39.noarch
pipewire0.2-libs-0.2.7-10.fc39.x86_64
pipewire-libs-1.0.4-2.fc39.x86_64
pipewire-1.0.4-2.fc39.x86_64
pipewire-jack-audio-connection-kit-libs-1.0.4-2.fc39.x86_64
pipewire-jack-audio-connection-kit-1.0.4-2.fc39.x86_64
pipewire-alsa-1.0.4-2.fc39.x86_64
pipewire-gstreamer-1.0.4-2.fc39.x86_64
pipewire-pulseaudio-1.0.4-2.fc39.x86_64
pipewire-utils-1.0.4-2.fc39.x86_64
$
and here is the laconic output of the latter command:

Code:
$ pactl info
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
$
which is exactly what one would expect if there is no pipewire
command running with my user identification number -- and,
indeed, there is not; an invocation of that command from the
command line fails with an error message similar to the
error message produced by a command-line invocation of pipewire-pulse:

Code:
$ pipewire
[E][91949.442586] mod.protocol-native | [module-protocol-:  716 init_socket_name()] server 0x5555e7d53300: name pipewire-0 is not an absolute path and no runtime dir found. Set one of PIPEWIRE_RUNTIME_DIR, XDG_RUNTIME_DIR or USERPROFILE in the environment
[E][91949.443406] pw.conf      | [          conf.c:  577 load_module()] 0x5555e7d2db70: could not load mandatory module "libpipewire-module-protocol-native": No such file or directory
[E][91949.444726] default      | [      pipewire.c:  105 main()] failed to create context: No such file or directory
$
Clearly, a successful invocation of the pipewire program depends on
conditions beyond those required by the pulseaudio program, which
required no conditions at all, one could simply type "pulseaudio --start"
on the command line, and it would start. However, there is at least
one reader of this thread who has successfully run both pipewire and
pipewire-pulse "started by systemd". How is this done? As always, I
shall be grateful for any and all replies, and all replies will be read
carefully.
 
Old 04-02-2024, 06:32 AM   #9
smallpond
Senior Member
 
Registered: Feb 2011
Location: Massachusetts, USA
Distribution: Fedora
Posts: 4,143

Rep: Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264Reputation: 1264
I agree things used to be much simpler before systemd made our lives so wonderful. It turns out there are a bunch of services. The ones in /etc/systemd/user that you found pointed me to four more:

Code:
/usr/lib/systemd/user/pipewire-pulse.service
/usr/lib/systemd/user/pipewire-pulse.socket
/usr/lib/systemd/user/pipewire.service
/usr/lib/systemd/user/pipewire.socket
all of which are running because of:

Code:
WantedBy=default.target
See if that fails with

Code:
systemctl status --user default.target

It looks like the services are enabled by default in Fedora and started by entering the session. For me, that's X-Windows/KDE as not all my applications run in Wayland and I'm not a Gnome fan but that shouldn't matter to pipewire. The only dependencies I can see are that dbus works, pulseaudio is not enabled, and $XDG_RUNTIME_DIR is defined (for me it is /run/user/1000/).
 
Old 04-02-2024, 02:20 PM   #10
TB0ne
LQ Guru
 
Registered: Jul 2003
Location: Birmingham, Alabama
Distribution: SuSE, RedHat, Slack,CentOS
Posts: 26,636

Rep: Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965
Quote:
Originally Posted by shachter View Post
Every one of those packages (except for pipewire-jack-audio-connection-kit, of which more will be said later) was already installed. In particular, the pipewire-pulseaudio package was already installed. I apologize that that fact was (apparently) not obvious; but, inasmuch as the pipewire-pulse command is part of the pipewire-pulseaudio package, the pipewire-pulseaudio package would have to have been already installed, before the first article in this thread was written, otherwise the invocation of "pipewire-pulse -v" would have produced a "command not found" diagnostic, rather than the 5-line error message that was presented there.

The pipewire-jack-audio-connection-kit package was not installed, because it was incompatible with the already-installed jack-audio-connection-kit package. The "dnf install" command required a "--allowerasing" argument to install it. I was skeptical that replacing the jack-audio-connection-kit package with the pipewire-jack-audio-connection-kit package would make any difference, but I replaced the jack-audio-connection-kit package with the pipewire-jack-audio-connection-kit package, and it did not make any difference. Invoking the "pipewire-pulse" command from the command line still fails with the same error message as before, and the four "systemctl --user" commands that failed before, still fail, with the same error message as before.

There was an implied request for the output of "rpm -qa |grep -e pipe -e pulse" and of "pactl info". Here is the output of the former command:
Code:
$ rpm -qa |grep -e pipe -e pulse
pulseaudio-libs-16.1-5.fc39.x86_64
libpipeline-1.5.7-3.fc39.x86_64
pulseaudio-libs-glib2-16.1-5.fc39.x86_64
gvncpulse-1.3.1-3.fc39.x86_64
alsa-plugins-pulseaudio-1.2.7.1-7.fc39.x86_64
pulseaudio-utils-16.1-5.fc39.x86_64
pulseaudio-libs-devel-16.1-5.fc39.x86_64
vlc-plugin-pipewire-3-1.fc39.x86_64
pulseaudio-qt-1.4.0-2.fc39.x86_64
qemu-audio-pipewire-8.1.3-4.fc39.x86_64
kde-settings-pulseaudio-39.1-1.fc39.noarch
pipewire0.2-libs-0.2.7-10.fc39.x86_64
pipewire-libs-1.0.4-2.fc39.x86_64
pipewire-1.0.4-2.fc39.x86_64
pipewire-jack-audio-connection-kit-libs-1.0.4-2.fc39.x86_64
pipewire-jack-audio-connection-kit-1.0.4-2.fc39.x86_64
pipewire-alsa-1.0.4-2.fc39.x86_64
pipewire-gstreamer-1.0.4-2.fc39.x86_64
pipewire-pulseaudio-1.0.4-2.fc39.x86_64
pipewire-utils-1.0.4-2.fc39.x86_64
and here is the laconic output of the latter command:
Code:
$ pactl info
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
which is exactly what one would expect if there is no pipewire command running with my user identification number -- and, indeed, there is not; an invocation of that command from the command line fails with an error message similar to the error message produced by a command-line invocation of pipewire-pulse:
Code:
$ pipewire
[E][91949.442586] mod.protocol-native | [module-protocol-:  716 init_socket_name()] server 0x5555e7d53300: name pipewire-0 is not an absolute path and no runtime dir found. Set one of PIPEWIRE_RUNTIME_DIR, XDG_RUNTIME_DIR or USERPROFILE in the environment
[E][91949.443406] pw.conf      | [ conf.c:  577 load_module()] 0x5555e7d2db70: could not load mandatory module "libpipewire-module-protocol-native": No such file or directory
[E][91949.444726] default      | [ pipewire.c:  105 main()] failed to create context: No such file or directory
Clearly, a successful invocation of the pipewire program depends on conditions beyond those required by the pulseaudio program, which required no conditions at all, one could simply type "pulseaudio --start" on the command line, and it would start. However, there is at least one reader of this thread who has successfully run both pipewire and pipewire-pulse "started by systemd". How is this done? As always, I shall be grateful for any and all replies, and all replies will be read carefully.
The commands weren't 'implied'..they were given to you as diagnostic steps, so having to explicitly tell someone who 'reads carefully' to execute them seems superfluous. You're missing three packages from the list, if they escaped your notice: kpipewire, pulseaudio-qt, and pipewire-codec-aptx. May not make a difference, but cannot hurt to make sure things are the same, since someone else has this working and you do not. You were also asked specifically if you rebooted after doing such things, but have yet to answer. You were given commands (dnf swap), but don't bother posting the exact output of such things past a snotty "It is thus hard to understand how it can be proposed as an answer to the OP's question". If you're not going to post the results of commands, why bother asking people to try to help you???

How to start things by systemd is in the link you were given before...was it 'read carefully'??
https://superuser.com/questions/1822...Fbass%20volume

From that page:
Code:
systemctl --user restart pipewire.socket pipewire-pulse
...along with many other pages that can be found about how to start a service with systemd. Among many things that can be found with a simple search:
https://gist.github.com/AlexString/4...e8ea7c7a7a6032
https://forums.fedoraforum.org/showt...hout-rebooting
 
Old 04-03-2024, 04:16 PM   #11
shachter
Member
 
Registered: Jul 2007
Posts: 101

Original Poster
Rep: Reputation: 2
The "pulseaudio-qt" package was already installed, as shown earlier.
The "pipewire-codec-aptx" and "kpipewire" packages have now also been
installed.

I don't think that systemd, and the wonderful lives to which its
adoption has led, is to blame. Or if it is to blame, it is not
entirely to blame. On Linux distributions that have systemd -- which
is most of them -- the "pulseaudio --start" command works. The
adoption of systemd has not impaired its functionality. However, the
so-called "drop-in replacement" for pulseaudio is not working.

Presumably it can be made to work if certain unknown conditions --
upon which pulseaudio does not depend, but upon which its "drop-in
replacement" does, apparently, depend -- are met. One reader of this
thread has suggested that these conditions are: that dbus works,
pulseaudio is not enabled, and $XDG_RUNTIME_DIR is defined. I tested
that hypothesis: I launched dbus, and defined XDG_RUNTIME_DIR;
pulseaudio is certainly not enabled, it is not even installed. I then
invoked all of the systemctl commands that had recently been
suggested. Every single one still fails, in the same way as before:

Code:
$ eval `dbus-launch --auto-syntax`
$ mkdir /tmp/bogus
$ chmod 700 /tmp/bogus
$ export XDG_RUNTIME_DIR=/tmp/bogus
$ systemctl status --user default.target
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire.service
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire.socket 
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire-pulse.service
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire-pulse.socket 
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl --user restart pipewire.socket pipewire-pulse
Failed to restart pipewire.socket: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status pipewire.socket' for details.
Failed to restart pipewire-pulse.service: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status pipewire-pulse.service' for details.
However, some progress has been made. Or perhaps "progress" is the
wrong word. But there has been a change. The "pipewire" and
"pipewire-pulse" command can now be invoked manually, and they do not
immediately fail. But they still don't work. The "pactl" command has
no knowledge of any of the audio devices, even though the "id" command
clearly shows that the user is in the "audio" group and has access to
the audio devices (but this was already known when the first article
in this thread was posted, because the user is able to play sound with
"mpv -audio-device=alsa/hdmi", a command that is repeated below to
contrast its successful behavior with the unsuccessful behavior of
"mpv -ao=pulse"):

Code:
$ pipewire &
[1] 126374
$ pipewire-pulse &
[2] 126407
$ pactl list sinks
Sink #32
	State: SUSPENDED
	Name: auto_null
	Description: Dummy Output
	Driver: PipeWire
	Sample Specification: float32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor Source: auto_null.monitor
	Latency: 0 usec, configured 0 usec
	Flags: DECIBEL_VOLUME LATENCY 
	Properties:
		node.name = "auto_null"
		device.description = "Dummy Output"
		audio.rate = "48000"
		audio.channels = "2"
		audio.position = "FL,FR"
		media.class = "Audio/Sink"
		factory.name = "support.null-audio-sink"
		node.virtual = "true"
		monitor.channel-volumes = "true"
		factory.id = "18"
		clock.quantum-limit = "8192"
		client.id = "31"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "32"
		object.serial = "32"
	Formats:
		pcm
$ pactl list sources
Source #32
	State: SUSPENDED
	Name: auto_null.monitor
	Description: Monitor of Dummy Output
	Driver: PipeWire
	Sample Specification: float32le 2ch 48000Hz
	Channel Map: front-left,front-right
	Owner Module: 4294967295
	Mute: no
	Volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	Base Volume: 65536 / 100% / 0.00 dB
	Monitor of Sink: auto_null
	Latency: 0 usec, configured 0 usec
	Flags: DECIBEL_VOLUME LATENCY 
	Properties:
		node.name = "auto_null"
		device.description = "Dummy Output"
		audio.rate = "48000"
		audio.channels = "2"
		audio.position = "FL,FR"
		media.class = "Audio/Sink"
		factory.name = "support.null-audio-sink"
		node.virtual = "true"
		monitor.channel-volumes = "true"
		factory.id = "18"
		clock.quantum-limit = "8192"
		client.id = "31"
		node.driver = "true"
		factory.mode = "merge"
		audio.adapt.follower = ""
		library.name = "audioconvert/libspa-audioconvert"
		object.id = "32"
		object.serial = "32"
		device.class = "monitor"
	Formats:
		pcm
$ id
uid=42(jay) gid=42(jay) groups=42(jay),11(cdrom),39(video),63(audio) context=system_u:system_r:unconfined_service_t:s0
$ mpv -ao=pulse /mnt/zpool3/opt/multimedia/music/m5/FishHeads.mp3 
 (+) Audio --aid=1 (mp3 2ch 48000Hz)
[ao] Failed to initialize audio driver 'pulse'
Could not open/initialize audio device -> no sound.
Audio: no audio
Exiting... (Errors when loading file)
$ mpv -audio-device=alsa/hdmi /mnt/zpool3/opt/multimedia/music/m5/FishHeads.mp3 
 (+) Audio --aid=1 (mp3 2ch 48000Hz)
AO: [alsa] 48000Hz stereo 2ch s32
Exiting... (End of file)
$
So, the "pipewire" and "pipewire-pulse" commands can now be invoked.
How do we get them to work? As always, thank you in advance for any
and all replies.
 
Old 04-04-2024, 11:28 AM   #12
shachter
Member
 
Registered: Jul 2007
Posts: 101

Original Poster
Rep: Reputation: 2
Esteemed Colleagues:

The "mpv -ao=pulse" command now produces sound on my Fedora 39 system.
It is now also possible to get sound from firefox (which, as far as I
can tell, assumes PulseAudio output, and cannot be configured
otherwise -- please correct me if I am wrong). After posting this
message, I shall mark this thread as solved. However, I will still
appreciate any replies that will solve the "systemctl --user" problem.
Every single "systemctl --user" command that has been suggested here
continues to fail, with an error message that is a variation on the
theme of "Process org.freedesktop.systemd1 exited with status 1".

But it is possible to get pipewire-pulse to work without it. This is
what one must do: The XDG_RUNTIME_DIR environment variable (it is
possible that other environment variables will also work) must be set
in three programs: pipewire, pipewire-pulse, and wireplumber
("wireplumber" is the program that was missing in the previous
example, posted yesterday afternoon). Those three processes must have
the same user identification number ("uid"), and the value of the
XDG_RUNTIME_DIR variable must be the name of a directory that is owned
by the same uid, with 700 permissions. If these conditions are met,
then pipewire, pipewire-pulse, and wireplumber can be invoked
manually, otherwise they will fail. In particular, it does not appear
that dbus is necessary.

The selinux label of all three of those programs, after I invoked
them, was "system_u:system_r:unconfined_service_t", which allows
access to any directory. If anyone figures out how to invoke those
three programs with "systemctl --user", I do not know what their
selinux labels would be under those circumstances, and it is possible
that it would impose conditions on the directory named by the
XDG_RUNTIME_DIR variable.

The program requesting sound must also have the XDG_RUNTIME_DIR
environment variable set to the same value, and must have the same
uid. These conditions expose, as a lie, the assertion that
pipewire-pulse is a "drop-in replacement" for PulseAudio, as the
"pulseaudio" program does not impose those conditions on its clients.

The "pacmd" program is not available (but I had known that in
advance), so one must use the "pactl" program to obtain its
functionality, to the extent that one can. Thus instead of typing
"pacmd set-default-sink 1", one types "pactl set-default-sink 50"
(the sink and source numbers are different). Often the pactl options
are different from the corresponding pacmd options (e.g., one types
"pactl list sinks" instead of "pacmd list-sinks").

The functionality of "pipewire-pulse" as a network server has not been
tested. Here is what is known at this point: the three programs
"pipewire", "pipewire-pulse", and "wireplumber" do not bind to any
network sockets when they are first invoked, as evidence by a
subsequent invocation of "netstat -nap" (but there are an astonishing
number of Unix-domain sockets). If you type "pactl load-module
module-native-protocol-tcp" then the "netstat -nap" command will
report that "pipewire-pulse" is now listening on TCP port 4713, for
both IPv4 and IPv6. If we now assume, for purposes of this example,
that this program is running on a machine with IP address 1.2.3.4,
presumably a program running on another computer can set the
PULSE_SERVER environment variable to "1.2.3.4" to obtain sound from
the sound server. It might, however, be necessary to use syntax
similar to "tcp:1.2.3.4:4713", because presumably the port would not
be 4713, and would therefore have to be explicitly specified using
that alternate syntax in the PULSE_SERVER variable on the client
machine, if a "pipewire-pulse" program owned by a different user had
already bound a socket to port 4713. This might be problematic,
though, because on a Fedora system, after a typical installation, only
TCP port 4713, and UDP port 4713, have the "pulseaudio_port_t" label.
None of this has been tested; and I hope that there will be replies to
this posting (despite my having marked it as solved) that will report
on the success or failure of such tests. Presumably the readers of
this thread know that a Fedora system, after a typical installation,
has "firewalld" enabled, and therefore it might be necessary to invoke
"firewall-cmd --add-port=4713/tcp", depending on how the firewall has
been set up, before testing whether the system can function as a sound
server.
 
Old 04-05-2024, 08:20 AM   #13
TB0ne
LQ Guru
 
Registered: Jul 2003
Location: Birmingham, Alabama
Distribution: SuSE, RedHat, Slack,CentOS
Posts: 26,636

Rep: Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965
Quote:
Originally Posted by shachter View Post
Esteemed Colleagues:
The "mpv -ao=pulse" command now produces sound on my Fedora 39 system. It is now also possible to get sound from firefox (which, as far as I can tell, assumes PulseAudio output, and cannot be configured otherwise -- please correct me if I am wrong). After posting this message, I shall mark this thread as solved. However, I will still appreciate any replies that will solve the "systemctl --user" problem. Every single "systemctl --user" command that has been suggested here continues to fail, with an error message that is a variation on the theme of "Process org.freedesktop.systemd1 exited with status 1".
And again, you don't post exactly what you're typing in or what the exact error(s)/message(s) are, but somehow expect us to be able to help. From one of the links you were given that you said you were going to "carefully read":
Code:
systemctl --user daemon-reload; systemctl --user restart pipewire{,-pulse}.socket
systemctl --now --user enable pipewire-pulse wireplumber
..among others.
Quote:
But it is possible to get pipewire-pulse to work without it. This is what one must do: The XDG_RUNTIME_DIR environment variable (it is possible that other environment variables will also work) must be set in three programs: pipewire, pipewire-pulse, and wireplumber ("wireplumber" is the program that was missing in the previous example, posted yesterday afternoon). Those three processes must have the same user identification number ("uid"), and the value of the XDG_RUNTIME_DIR variable must be the name of a directory that is owned by the same uid, with 700 permissions. If these conditions are met, then pipewire, pipewire-pulse, and wireplumber can be invoked manually, otherwise they will fail. In particular, it does not appear that dbus is necessary.
So you mean the wireplumber package, that was *GIVEN TO YOU IN POST #7* (including a single command to INSTALL anything wasn't there), was missing??? The one you said in post #8 that was present when you stated, "Every one of those packages (except for pipewire-jack-audio-connection-kit, of which more will be said later) was already installed"??

Did you 'carefully read' post #7???
Quote:
The selinux label of all three of those programs, after I invoked them, was "system_u:system_r:unconfined_service_t", which allows access to any directory. If anyone figures out how to invoke those three programs with "systemctl --user", I do not know what their selinux labels would be under those circumstances, and it is possible that it would impose conditions on the directory named by the XDG_RUNTIME_DIR variable.

The program requesting sound must also have the XDG_RUNTIME_DIR environment variable set to the same value, and must have the same uid. These conditions expose, as a lie, the assertion that pipewire-pulse is a "drop-in replacement" for PulseAudio, as the "pulseaudio" program does not impose those conditions on its clients. The "pacmd" program is not available (but I had known that in advance), so one must use the "pactl" program to obtain its functionality, to the extent that one can. Thus instead of typing "pacmd set-default-sink 1", one types "pactl set-default-sink 50" (the sink and source numbers are different). Often the pactl options are different from the corresponding pacmd options (e.g., one types "pactl list sinks" instead of "pacmd list-sinks").

The functionality of "pipewire-pulse" as a network server has not been tested. Here is what is known at this point: the three programs "pipewire", "pipewire-pulse", and "wireplumber" do not bind to any network sockets when they are first invoked, as evidence by a subsequent invocation of "netstat -nap" (but there are an astonishing
number of Unix-domain sockets). If you type "pactl load-module module-native-protocol-tcp" then the "netstat -nap" command will report that "pipewire-pulse" is now listening on TCP port 4713, for both IPv4 and IPv6. If we now assume, for purposes of this example, that this program is running on a machine with IP address 1.2.3.4, presumably a program running on another computer can set the PULSE_SERVER environment variable to "1.2.3.4" to obtain sound from the sound server. It might, however, be necessary to use syntax
similar to "tcp:1.2.3.4:4713", because presumably the port would not be 4713, and would therefore have to be explicitly specified using that alternate syntax in the PULSE_SERVER variable on the client machine, if a "pipewire-pulse" program owned by a different user had already bound a socket to port 4713. This might be problematic, though, because on a Fedora system, after a typical installation, only TCP port 4713, and UDP port 4713, have the "pulseaudio_port_t" label. None of this has been tested; and I hope that there will be replies to this posting (despite my having marked it as solved) that will report on the success or failure of such tests. Presumably the readers of this thread know that a Fedora system, after a typical installation, has "firewalld" enabled, and therefore it might be necessary to invoke "firewall-cmd --add-port=4713/tcp", depending on how the firewall has been set up, before testing whether the system can function as a sound server.
Again, you fail to mention having selinux enabled, or your need/desire to use things as a network sound server, yet somehow expect us to be able to assist. When you're given commands to run and don't run them, don't give details, and change the story later on, it doesn't give most folks any desire to try to help.

You're getting the --user problems because of selinux, and adjusting the service and/or selinux to allow pipewire can be done (there are how-to guides you can look up yourself).

Last edited by TB0ne; 04-05-2024 at 01:54 PM.
 
Old 04-07-2024, 03:00 PM   #14
shachter
Member
 
Registered: Jul 2007
Posts: 101

Original Poster
Rep: Reputation: 2
The wireplumber package was installed, as stated earlier. The
installation of a program does not bring with it the knowledge that it
must be invoked, in order to provide sound to a PulseAudio client.
There are many programs that are installed. Probably over a hundred.
They do not all have to be invoked, in order to provide sound to a
PulseAudio client. Only pipewire, pipewire-pulse, and wireplumber
need to be invoked. This is only three, out of the hundred, or maybe
even more than a hundred, programs, that have been installed. The
belief expressed in the previous post, that not knowing that
wireplumber needed to be invoked, means that wireplumber was "missing",
is puzzling.

The belief that the failures of "systemctl --user" are attributable to
SELinux is also puzzling. The failures of "systemctl --user" are
demonstrably not attributable to SELinux. Or, more precisely, if the
failures of "systemctl --user" are attributable to SELinux, they are
demonstrably not solely attributable to SELinux, because when SELinux
enforcement is turned off, the "systemctl --user" commands continue to
fail exactly as before. The following terminal session shows every
"systemctl --user" command that has been recommended at some point
within this thread, failing; the exact same error messages that were
shown above, are (perhaps unnecessarily) repeated below:

Code:
# setenforce 0
# exit
logout
$ systemctl status --user default.target
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user               
Failed to read server status: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire.service
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire.socket 
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire-pulse.service 
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl status --user pipewire-pulse.socket 
Failed to get properties: Process org.freedesktop.systemd1 exited with status 1
$ systemctl start --user default.target         
Failed to start default.target: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status default.target' for details.
$ systemctl start --user pipewire.service      
Failed to start pipewire.service: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status pipewire.service' for details.
$ systemctl start --user pipewire.socket 
Failed to start pipewire.socket: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status pipewire.socket' for details.
$ systemctl start --user pipewire-pulse.service
Failed to start pipewire-pulse.service: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status pipewire-pulse.service' for details.
$ systemctl start --user pipewire-pulse.socket 
Failed to start pipewire-pulse.socket: Process org.freedesktop.systemd1 exited with status 1
See user logs and 'systemctl --user status pipewire-pulse.socket' for details.
$ systemctl --user daemon-reload              
Failed to reload daemon: Process org.freedesktop.systemd1 exited with status 1
$
More can now be reported about connecting to "pipewire-pulse" over TCP.
After the invocation of "pactl load-module module-native-protocol-tcp",
the "pipewire-pulse" program binds a socket to port 4713 in both IPv4
and IPv6 (presumably a different port would be used, if port 4713 were
in use, but this has not been tested). The "pipewire-pulse" program
can now accept connections from remote clients; but it has now lost
the ability to provide sound to local clients. A locally resident
"firefox" or "mpv -ao=pulse" (or any other program that requests sound
using the PulseAudio protocols) now fails, unless it is given a
PULSE_SERVER environment variable containing the name (e.g., "localhost")
or IP address (e.g., "127.0.0.1" or "[::1]") of the local machine.
This behavior further exposes, as a lie, the assertion that
pipewire-pulse is a "drop-in replacement" for the "pulseaudio" program,
as when a pulseaudio server is configured to accept TCP connections,
by inserting the lines


load-module module-esound-protocol-tcp auth-anonymous=1
load-module module-native-protocol-tcp auth-anonymous=1


into the "/etc/pulse/default.pa" file, locally resident PulseAudio
clients are still able to obtain sound without their having to define
a PULSE_SERVER environment variable. In this regard, the
"pipewire-pulse" program lacks important functionality that is
present in the "pulseaudio" program.

Moreover, the "pipewire", "pipewire-pulse", and "wireplumber" programs
must not have a PULSE_SERVER environment variable when they are
invoked. If any of them has a PULSE_SERVER environment variable, it
will fail immediately. Or perhaps -- this is an intriguing idea that
has not been tested -- these programs may have a PULSE_SERVER variable
whose value is the name or IP address of another computer where sound
is available thru a TCP connection to a PulseAudio-compatible server.
If this is true, it implies an intriguing possibility that sound may
be made available to clients who traverse a chain of sound servers,
connecting to a sound server, which then connects to another sound
server (perhaps not directly accessible to the client), and so on.
Perhaps readers of this thread will test this hypothesis, and report
whether it is correct.
 
Old 04-07-2024, 03:25 PM   #15
TB0ne
LQ Guru
 
Registered: Jul 2003
Location: Birmingham, Alabama
Distribution: SuSE, RedHat, Slack,CentOS
Posts: 26,636

Rep: Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965Reputation: 7965
Quote:
Originally Posted by shachter View Post
The wireplumber package was installed, as stated earlier.
Oh? An excerpt from your post #12:
Quote:
Originally Posted by shacter
....and wireplumber ("wireplumber" is the program that was missing in the previous example, posted yesterday afternoon).
I can see where we'd think wireplumber was installed.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Using Pipewire instead of Pulseaudio in Slackware 15 stormtracknole Slackware 576 04-22-2024 12:19 PM
LXer: PipeWire 1.0 -- An interview with PipeWire creator Wim Taymans LXer Syndicated Linux News 0 11-28-2023 04:50 AM
[SOLVED] [current] slackpkg-15.0.2-noarch-1 has /etc/pipewire/pipewire.conf.new j12i Slackware 3 04-27-2021 01:08 AM
Pipewire pulseaudio emulation without pulseaudio installed (works) adcdam Slackware 18 04-02-2021 01:34 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Fedora

All times are GMT -5. The time now is 02:47 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration