Yesterday I started implementing pipewire here on my system and apparently everything worked out. I would love to thank everyone involved on this.
I gave it a general read but basically followed what the OP posted with some basic differences: 1- I made the implementation using Alsa, Pulse, Jack and Pipewire 2- Compiled webrtc audio processing (pulseaudio and pipewire dependency), libldac and libopenaptx (for bluetooth compatible, pipewire dependency) 3- As I need to recompile pulseaudio due to Jack, i already took the opportunity and made the necessary modifications in the pulseaudio .slackbuild as: Code:
sed -i 's/autospawn = yes/autospawn = no/g' $PKG/etc/pulse/client.conf Code:
-Dffmpeg=enabled \ Code:
install -Dm644 $CWD/$PRGNAM.desktop $PKG/etc/xdg/autostart/$PRGNAM.desktop pipewire-jack.conf content Code:
/usr/lib64/pipewire-0.3/jack Code:
install -Dm644 $CWD/pipewire-jack.conf -t $PKG/etc/ld.so.conf.d Code:
sed -i 's/#bluez5.msbc-support = false/bluez5.msbc-support = true/g' $PKG/usr/share/pipewire/media-session.d/bluez-monitor.conf Code:
ldd /usr/bin/qjackctl | grep -i libjack Code:
eric@slackware ~ ps -ef | grep pipewire Code:
eric@slackware ~ inxi -F - I use startx to boot my system and after starting those 3 executables in xdg/autostart my X only goes up after about 10 seconds. Its normal? - My Redmi AirDots bluetooth headset have a good quality but is only good when there is no crash/acceleration during playback and also when i enable the airdots MIC the quality drops immensely. (Fixed changing my connection to WiFi 5ghz) |
My apologies for being so late to the party but some may find this useful.....
https://venam.nixers.net/blog/unix/2...-the-hood.html |
So you also read r/linux?
|
Quote:
|
Maybe I should have been able to extract the answer from this awesome thread, but here are three questions I have to understand a little better what the inclusion of PipeWire actually means for people like me, who are more or less pure end-users, loving and using Slackware for its stability and low maintenance effort:
In short: 1. Is Pipewire actually used, already, by default in a standard install? 2. What about latencies, if applications use PulseAudio APIs instead of native PipeWire APIs? 3. What applications are actually using PipeWire native APIs already? In detail:
Thanks! gargamel |
Quote:
Without the PipeWire daemons running on a Wayland/Plasma5 session, various issues appear starting with no taskbar thumbnails and ending with failures on Chrome/Chromium/Firefox desktop sharing over WebRTC and even TeamViewer or VNCs not working. Unfortunately, there still missing a software to complete this stack for desktop sharing: xdg-desktop-portal which is frontend of already present xdg-desktop-portal-kde Regarding the audio latencies, the PipeWire can work realtime, and in fact it was designed being a realtime Audio/Video server, capable to replace both PulseAudio and JACK. BUT, there still missing a software for this to happen: RtKit, a little daemon invented by no one other than Mr. Poettering. Yeah, the very author of systemd and PulseAudio also written RtKit, which fortunately is a little software which can be installed stand-alone. With a special note on "I don't detect any traces of it in /etc/rc.d, which is probably because it is not a server in the same sense as pulseaudio is. Also, there are (of course) no desktop files." The PipeWire daemons aren't supposed to run system-wide, then there never will be something like a /etc/rc.d script for it. There also are no desktop files on Slackware -current because the Slackware Team looks that considers PipeWire just a hard dependency of the Cinderella Wayland/Plasma5, which of course "is not ready yet for Prime Time" whichever meaning has this. Yeah, being blunt: they just dumped the PipeWire package on the tree. From orbit. ;) |
Greetings!
So, something I just noticed that the desktop files are not set up to work with XFCE. You will need to add the following: Code:
OnlyShowIn=XFCE; Code:
/etc/xdg/autostart |
xdg-desktop-portal would be a much welcomed addition for us non KDE wayland users :D
|
About rtKit written by (i dont want to mention him) from pípewire 0.3.29 it say A new module-rt was added to acquire real-time scheduling priviledges without using RTKit.
you can see in releases https://gitlab.freedesktop.org/pipew...ire/-/releases |
Quote:
So, they will not work anymore on Plasma5 no mater if Wayland or X11. As they are today, they will be executed no matter what DE session will run. Also this is verified practically by myself. |
Quote:
In practice, when an application wants to do screen recording on Wayland/Plasma5, the things works like this: - the application asks xdg-desktop-portal for a video stream for screen recording - the xdg-desktop-portal looks for a frontend, and finds running xdg-desktop-portal-kde, so asks it for the video stream - the xdg-desktop-portal-kde show to user a confirmation dialog (if accepts or not) then asks KWin for the video stream. - the Kwin setups a new PipeWire video stream and sends the handle to xdg-desktop-portal-kde - the xdg-desktop-portal-kde sends the handle of video stream (and that information that the user accepted) to xdg-desktop-portal - the xdg-desktop-portal sends the handle of video stream to application, which then do its job. All communication is done via DBUS. Even sounds complicated, this logic ensure that the applications talks always with xdg-desktop-portal no matter which desktop session and implementation runs on the desktop. So, those who uses different desktop session on Wayland - non Plasma5, will need to run also particular implementations, like xdg-desktop-portal-wlr for WLROOTS based DEs or xdg-desktop-portal-gtk for Wayland/Gnome3. |
Quote:
|
Thanks @LuckyCyborg This is very interesting. Yes, -wlr is the drone I'm looking for. While I compiled and installed it manually I have virtually no idea how to properly set it up. :)
But I suppose we're getting off topic |
Quote:
I am quite sure that, months ago, I had no issues to start the PipeWire daemons on XFCE with those stock XDG autostart files. |
Quote:
|
1 Attachment(s)
Quote:
|
Quote:
|
Quote:
|
LuckyCybord,
Do you mind sharing one of your pipewire desktop files here? Just want to make sure I am not missing something. Thanks! |
Quote:
Also myself I use them and if you want a second confirmation, I would like to inform you that the PipeWire daemons runs properly on XFCE also on my mini-PC MinisForum Z83-F. I've tested this after upgrading to "Tue Jul 6 20:44:20 UTC 2021" updates. |
Quote:
|
Quote:
/etc/xdg/autostart/pipewire.desktop Code:
[Desktop Entry] I for one, I suspect that you modified the options of starting services on xfce4-session https://docs.xfce.org/xfce/xfce4-session/preferences Let's say that you disabled both the startup of Gnome and KDE services for whatever reasons, because looks like that the XFCE uses "OnlyShowIn" to identify its own services on XDG autostart. ;) |
Quote:
|
Another data point, but XFCE, pipewire, and SuperCollider started right up. Latency was kind of ass, but I haven't really tuned my laptop for latency. (That is, just default jackdrc, no kernel params yet.)
ETA: I'm not using wayland. Just X. :) |
I tried out Pipewire on one of my Test Current installs and thought it might have shown me a way to simplify and improve ALSA interaction with JACK in a Pulse environment. turned out to not work. :( I suppose it was likely just a case of Premature Jack Elation ;)
|
Quote:
Quote:
Has there been a change in the procedures? Thanks. |
Quote:
Code:
#pipewire setup |
Quote:
I use with no issues since beginning the "daemon" method of starting the PipeWire daemons from XDG autostart. Please note that for debugging, you can even execute the commands described on the desktop files on different console tabs, then you can get the messages sent by the PipeWire daemons, which are rather regular programs, with no clues to daemonize themselves. The proper order of launching their execution is: pipewire, pipewire-media-session, pipewire-pulse BUT, you should ensure that the PulseAudio server is not (auto-)started. And of course, you should NOT remove PulseAudio package, because its client libraries and tools are still needed, as usual. |
Quote:
- The 3 pipewire .desktop files in /etc/xdg/autostart/ - autospawn = no in /etc/pulse/client.conf And in /etc/xdg/autostart/ - mv pulseaudio.desktop pulseaudio.disabled And everything works as expected |
Quote:
With the note that I remembered that I read somewhere that XFCE should be configured to load GNOME/KDE services otherwise it's very picky on executing the XDG files - it loads only those with the following Code:
OnlyShowIn=XFCE; Code:
OnlyShowIn=KDE;XFCE; With the note that OnlyShowIn is not needed on Plasma5 or XFCE with relaxed KDE/GNOME services loading. |
Quote:
|
Quote:
But until now looks like my proposal wasn't accepted. |
Quote:
That's why you shouldn't forget to rename the .desktop after each update. As long as pulseaudio will be the default sound server ... |
Quote:
|
Quote:
|
Quote:
Is obvious that that PulseAudio file for XDG autostart would be reinstalled on package upgrade, even is not stated "clearly" if you have a vague idea what PulseAudio package contains. |
Quote:
|
Personally, regarding pulseaudio.desktop file, I just copied /etc/xdg/autostart/pulseaudio.desktop to ~/.config/autostart/pulseaudio.desktop then added "Hidden=true" to it. That way, I don't have to remember editing /etc/xdg/autostart/pulseaudio.desktop after upgrading the pulseaudio package. Seems to be working so far for a couple of months here on my system.
|
Quote:
Like I said many times, probably the best way is to have the PulseAudio server (and its related files) put in a split package, which can be eventually uninstalled or blacklisted. |
Quote:
|
Quote:
Your use of "we" is very contradictory in this case. Remember that not everyone lives and breathes this stuff to the same level/intensity that you appear to do. |
Quote:
I spent a couple hours two weeks ago working on this project, another two or three hours again yesterday and all this morning today and pipewire does not work. There must be something so fundamental that it is obvious to others with more knowledge and experience, but I don't see it. Are they there any dependencies that are not included with -current? :scratch: |
Quote:
This is where pipewire puts its .pid files |
Quote:
The PipeWire "daemons" are just ordinary programs, which has no ideas regarding PID files and other daemon-like things. They do not put PID files anywhere. The one which puts PID files there is our daemon supervisor - the little program which controls the PipeWire "daemons" and executes/stops them as instructed. However, even for the daemon supervisor those PipeWire daemons are just ordinary programs too and it has nothing to do with PipeWire itself. It's a generic daemon supervisor, capable to supervise things even on init system - in fact for this purpose it was created years ago. For example, I have a friend who uses the daemon supervisor to automatically start and stop a VPN client executed on user side. |
Quote:
|
Quote:
And IF you use the solution described on OP of this thread and the XFCE as I suspect, did you read my comments regarding XFCE and running its desktop services? |
Quote:
You should see the following processes and files in ~/.daemon or ~/.run (depending on pidfile location specified) Code:
# ps -eaf|egrep "pipew|pulse|jack" Does your audio work without pipewire configured? I had to reinstall alsa-lib and pulseaudio-15 after a recent update (if you haven't been following that recent audio not working thread). |
Quote:
Pulseaudio works just fine. |
Quote:
You did see the 6 daemon/pipewire processes running? |
Quote:
|
All times are GMT -5. The time now is 08:16 PM. |