[Solved] Unable to fully remove Pipewire to go back to Pulseaudio

Greetings lovely community,

I installed EndeavourOS last year when pulseaudio was still the default, but around the Atlantis release, I decided to switch to pipewire. Over the last couple of months and various pipewire releases, I’ve come across issues like audio just stop working, audio working in one app, but not another app a handful of times in the last few months. I gotta be honest I’m tired to pipewire. I know it’s shiny and new, but quite frankly it doesn’t “just work” with my hardware like puleaudio does. So I attempted to go back to pulseaudio, but ran into some dependency problems and could use the communities help in the matter.

EndeavourOS wiki helps with this process: https://discovery.endeavouros.com/audio/pulseaudio/2021/12/

Here’s what I did first

[scott@endeavourOS ~]$ sudo pacman -S pulseaudio
resolving dependencies...
looking for conflicting packages...
:: pulseaudio and pipewire-pulse are in conflict. Remove pipewire-pulse? [y/N] y
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pipewire-pulse breaks dependency 'pulseaudio-bluetooth' required by gnome-bluetooth

That didn’t work, but no matter the wiki mentions including extra pulseaudio packages, so lets try that:

[scott@endeavourOS ~]$ sudo pacman -S pulseaudio pulseaudio-alsa pulseaudio-jack pulseaudio-bluetooth
resolving dependencies...
looking for conflicting packages...
:: pulseaudio and pipewire-pulse are in conflict. Remove pipewire-pulse? [y/N] y

Package (5)                 Old Version  New Version  Net Change  Download Size

pipewire-pulse              1:0.3.49-1                 -0.48 MiB               
extra/pulseaudio                         15.0-4         5.81 MiB       1.16 MiB
extra/pulseaudio-alsa                    1:1.2.6-3      0.00 MiB       0.00 MiB
extra/pulseaudio-bluetooth               15.0-4         0.27 MiB       0.08 MiB
extra/pulseaudio-jack                    15.0-4         0.08 MiB       0.02 MiB

Total Download Size:   1.27 MiB
Total Installed Size:  6.17 MiB
Net Upgrade Size:      5.69 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 pulseaudio-alsa-...     3.2 KiB  24.5 KiB/s 00:00 [-----------------------] 100%
 pulseaudio-jack-...    18.9 KiB  83.2 KiB/s 00:00 [-----------------------] 100%
 pulseaudio-bluet...    86.0 KiB   256 KiB/s 00:00 [-----------------------] 100%
 pulseaudio-15.0-...  1192.6 KiB   815 KiB/s 00:01 [-----------------------] 100%
 Total (4/4)          1300.6 KiB   822 KiB/s 00:02 [-----------------------] 100%
(4/4) checking keys in keyring                     [-----------------------] 100%
(4/4) checking package integrity                   [-----------------------] 100%
(4/4) loading package files                        [-----------------------] 100%
(4/4) checking for file conflicts                  [-----------------------] 100%
(5/5) checking available disk space                [-----------------------] 100%
:: Processing package changes...
Removed /etc/systemd/user/sockets.target.wants/pipewire-pulse.socket.
(1/1) removing pipewire-pulse                      [-----------------------] 100%
(1/4) installing pulseaudio                        [-----------------------] 100%
Created symlink /etc/systemd/user/sockets.target.wants/pulseaudio.socket → /usr/lib/systemd/user/pulseaudio.socket.
Optional dependencies for pulseaudio
    pulseaudio-alsa: ALSA configuration (recommended) [installed]
    pulseaudio-zeroconf: Zeroconf support
    pulseaudio-lirc: IR (lirc) support
    pulseaudio-jack: Jack support [pending]
    pulseaudio-bluetooth: Bluetooth support [pending]
    pulseaudio-equalizer: Graphical equalizer
    pulseaudio-rtp: RTP and RAOP support
(2/4) installing pulseaudio-alsa                   [-----------------------] 100%
(3/4) installing pulseaudio-jack                   [-----------------------] 100%
(4/4) installing pulseaudio-bluetooth              [-----------------------] 100%
Optional dependencies for pulseaudio-bluetooth
    gst-plugins-bad: AptX and LDAC support [installed]
:: Running post-transaction hooks...
(1/3) Reloading device manager configuration...
(2/3) Arming ConditionNeedsUpdate...
(3/3) Compiling GSettings XML schema files...
[scott@endeavourOS ~]

I found it a bit odd that installing pulseaudio didn’t remove any other pipewire packages other than pipewire-pulse, but at least now I have all the pulseaudio packages installed. Problem is, now I basically have all the pusleaudio packages I need installed AND I have a bunch of pipewire packages installed too. However, when I try to removed the pipewire packages:

[scott@endeavourOS ~]$ sudo pacman -R pipewire-alsa pipewire-jack pipewire-media-session
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by ardour
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by aubio
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by audacity
:: removing pipewire-jack breaks dependency 'jack' required by ffmpeg
:: removing pipewire-jack breaks dependency 'jack' required by ffmpeg4.4
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by fluidsynth
:: removing pipewire-media-session breaks dependency 'pipewire-session-manager' required by gst-plugin-pipewire
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by gst-plugins-good
:: removing pipewire-jack breaks dependency 'jack' required by mpv
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by mpv
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by portaudio
:: removing pipewire-jack breaks dependency 'jack' required by pulseaudio-jack
:: removing pipewire-jack breaks dependency 'jack' required by qemu
:: removing pipewire-jack breaks dependency 'libjack.so=0-64' required by qemu
:: removing pipewire-jack breaks dependency 'jack' required by simplescreenrecorder
[scott@endeavourOS ~]$ 

And that’s where I’m at right now. Any thoughts?

You need something that provides jack, e.g. jack2.

1 Like

Hmm I didn’t see jack2 anywhere in the wiki so I had no idea, perhaps that can be added to the wiki as an optional dependency maybe?

[scott@endeavourOS ~]$ sudo pacman -S jack2
resolving dependencies...
looking for conflicting packages...
:: jack2 and pipewire-jack are in conflict (jack). Remove pipewire-jack? [y/N] y

Package (2)    Old Version  New Version  Net Change  Download Size

pipewire-jack  1:0.3.49-1                 -0.66 MiB               
extra/jack2                 1.9.20-4       1.89 MiB       0.46 MiB

Total Download Size:   0.46 MiB
Total Installed Size:  1.89 MiB
Net Upgrade Size:      1.24 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 jack2-1.9.20-4-x86_64                                                                 473.5 KiB   502 KiB/s 00:01 [---------------------------------------------------------------------] 100%
(1/1) checking keys in keyring                                                                                     [---------------------------------------------------------------------] 100%
(1/1) checking package integrity                                                                                   [---------------------------------------------------------------------] 100%
(1/1) loading package files                                                                                        [---------------------------------------------------------------------] 100%
(1/1) checking for file conflicts                                                                                  [---------------------------------------------------------------------] 100%
(2/2) checking available disk space                                                                                [---------------------------------------------------------------------] 100%
:: Processing package changes...
(1/1) removing pipewire-jack                                                                                       [---------------------------------------------------------------------] 100%
(1/1) installing jack2                                                                                             [---------------------------------------------------------------------] 100%
Optional dependencies for jack2
    a2jmidid: for ALSA MIDI to JACK MIDI bridging
    libffado: for firewire support using FFADO
    jack-example-tools: for official JACK example-clients and tools
    jack2-dbus: for dbus integration
    jack2-docs: for developer documentation
    realtime-privileges: for realtime privileges
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
[scott@endeavourOS ~]

So now I’m left with these pipewire packages still on my system. I think one or two of them are supposed to still be installed, but I can’t remember which ones I can keep and which ones I can safely remove, do you know what I mean? Also thanks for the help and the quick reponse!

Screenshot from 2022-03-30 14-43-03

You should just be able to remove them now - if anything has them as a dependency then pacman will let you know.

1 Like

The only one you probably can’t remove is pipewire

1 Like

Hmm, maybe I just have to keep these 4 files left over then?

[scott@endeavourOS ~]$ sudo pacman -R pipewire pipewire-alsa pipewire-media-session gst-plugin-pipewire
[sudo] password for scott: 
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pipewire breaks dependency 'pipewire' required by gnome-remote-desktop
:: removing gst-plugin-pipewire breaks dependency 'gst-plugin-pipewire' required by gnome-shell
:: removing gst-plugin-pipewire breaks dependency 'gst-plugin-pipewire' required by kooha
:: removing pipewire breaks dependency 'pipewire' required by mutter
:: removing pipewire breaks dependency 'pipewire' required by telegram-desktop
:: removing pipewire breaks dependency 'pipewire' required by xdg-desktop-portal
[scott@endeavourOS ~]$ 

As above, you can probably remove the 3 that aren’t pipewire

1 Like

You might be able to remove these, they’re not listed as dependencies.

[scott@endeavourOS ~]$ sudo pacman -R  pipewire-alsa pipewire-media-session gst-plugin-pipewire
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing gst-plugin-pipewire breaks dependency 'gst-plugin-pipewire' required by gnome-shell
:: removing gst-plugin-pipewire breaks dependency 'gst-plugin-pipewire' required by kooha
[scott@endeavourOS ~]
[scott@endeavourOS ~]$ sudo pacman -R  pipewire-alsa pipewire-media-session
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing pipewire-media-session breaks dependency 'pipewire-session-manager' required by gst-plugin-pipewire
[scott@endeavourOS ~]$ 

It’s like it doesn’t want to leave me :sweat_smile:

sudo pacman -R  pipewire-alsa pipewire-media-session
1 Like

Maybe just pipewire-alsa then? Seems like gnome has more pipewire requirements than the other DEs

2 Likes

Pipewire is fast becoming the primary audio subsystem.

[scott@endeavourOS ~]$ sudo pacman -R pipewire-alsa
checking dependencies...
:: pipewire optionally requires pipewire-alsa: ALSA configuration
:: pulseaudio optionally requires pulseaudio-alsa: ALSA configuration (recommended)

Package (1)    Old Version  Net Change

pipewire-alsa  1:0.3.49-1     0.00 MiB

Total Removed Size:  0.00 MiB

:: Do you want to remove these packages? [Y/n] 
:: Processing package changes...
(1/1) removing pipewire-alsa                                                                                       [---------------------------------------------------------------------] 100%
:: Running post-transaction hooks...
(1/1) Arming ConditionNeedsUpdate...
[scott@endeavourOS ~]$ 

Yup that one was the only one able to remove. I knew one or two packages would have to stay, but I wasn’t sure which ones. But it looks like I actually need to keep the remaining 3 packages:

pipewire pipewire-media-session gst-plugin-pipewire

pipewire is required by mutter, gnome-remote-desktop and a few others, so can’t remove that without breaking Gnome.

pipewire-media-session is required by gst-plugin-pipewire

gst-plugin-pipewire is required by gnome-shell, so that’s gotta stay unless I want to break Gnome

So it looks like that’s it to go back to pulseaudio from pipewire. Odd I’ve done the switch a few times before many months ago and never ran into these issues, but I think forgetting about jack2 was part of that problem, so thanks again @jonathon for mentioning that.

Should we mention jack2 in the EndeavourOS wiki link y’all think? And many thanks for the help and assistance provided by you guys. I’m going to do a quick reboot now!

1 Like