Pipewire setup nightmare and device not recognized

I’m seriously getting mad with this, pipewire is so cursed, OMG!

My system hard drive got bad, didn’t boot anymore (after almost 10 years, R.I.P. brave little guy) so I had to get a new one, got a fresh installation of Kubuntu 24.04 and now since yesterday I’m trying to get my audio setup back up and running.
After hours on end setting up pipewire-jack with ChatGPT it still doesn’t seem to work propertly.
What I did so far:

  • install pipewire-jack, pipewire-audio
  • linked the libjack.so.0 from the pipewire-jack package to be used instead of of the one from the jackd2 package with
sudo update-alternatives --install \
  /usr/lib/x86_64-linux-gnu/libjack.so.0 \
  libjack.so.0 \
  /usr/lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0 \
  50

I can’t recall that I ever needed to do this in the past so this might just be ChatGPT hallucinating.

  • I added my user to the audio group

When I start Ardour I get presented with the Audio/MIDI Setup dialog.
I set:

  • Audio System to JACK/Pipewire
  • Driver to ALSA (Jack is not available in the list)
  • Device to my Scarlett 2i4
    I click start and it doesn’t work.
  1. Ardour doesn’t run with Jack so inside Jack appliications like Carla it doesn’t show up
  2. It doesn’t use the specified Device

Please!
Can someone tell me how to set up Pipewire on Kubuntu 24.04 with Jack and make it automatically use my Scarlett 2i4 by default?

Maybe I’m missing something, but is there a reason not to just use ALSA? I have a Focusrite Scarlett 4i4 (3rd gen) and I’ve always found it easiest to just use ALSA.

You mention that you tried using it with ALSA and “It doesn’t work”. What exactly does that mean? Do you get errors? Do you just not get sound input/output? Let’s debug that first, since that’s literally the simplest case.

[Edit] Sorry, I realized you used the ALSA driver within Pipewire-Jack. Have you tried just using straight-up ALSA first to make sure basic stuff is working?

The fact that this is even visible means that there is no JACK server running at present (JACK1, JACK2 or Pipewire).

Hah good point! At some point I had setup pipewire-jack and it automatically picked it up and didn’t ask at all, so something got messed up with pipewire-jack setup for OP.

Probably the first mistake.

Why did you have pipewire-jack and jackd2 installed at the same time? That will almost surely cause problems. Typically the pipewire-jack and jackd2 packages should be marked mutually exclusive so that you cannot install both simultaneously without jumping through some hoops.

You should not if the distribution is reasonably competent in setting up the packages. I assume that Kubuntu just uses the main Ubuntu 24.04 packages, so I would expect reasonably trustworthy.
You should also be able to install the Ubuntu Studio repositories to get better support of recent audio software.

Have you tried just default install then apt get pipewire-jack? I don’t usually run Ubuntu, but it isn’t usually that complicated. Did you start with ChatGPT, or have some kind of problem and then try to get help with ChatGPT? If you started with ChatGPT first you may be better off reformatting your drive and reinstalling without that “help.”

4 Likes

On Debian, which I know isn’t Ubuntu, it literally took me doing this:

  1. sudo aptitude install pipewire-jack
  2. sudo cp /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-x86_64-linux-gnu.conf /etc/ld.so.conf.d/
  3. sudo ldconfig
  4. ardour

Ardour automatically picked up on pipewire-jack and used it. So yeah, should definitely not be that complicated.

1 Like

It does.

I use Kubuntu 24.04 on my main system and it mainly “just works”. I did add the Ubuntu Studio stuff, and I also added a repo that gives me a more up-to-date version of Pipewire.

But I didn’t mess around with libraries, installing different versions of jack, etc.

But, then again, I understand that ChatGPT cosplays at being an expert.

Indeed!

For me, it mostly just worked out of the box.

Cheers,

Keith

1 Like

@foobuntu You can try the above steps, but I would also like to know if pure ALSA works for you (instead of PipeWire/Jack, select ALSA in the Audio System drop-down and then select your Scarlett 2i4 in the input and output boxes). If it doesn’t work, please tell us what isn’t working, since stuff can break in many different ways!

First of all thanks for all the quick replies.

I need Jack because I need to route audio between applications before getting into Ardour (and sometimes even after leaving Ardour). That is, for example guitar amp sims or effect racks on the way in with an LV2/VST3 plugin host, I use Carla most of the time.

How do I start it?

Understandable but the problem is, prior to asking ChatGPT I tried going for an old school internet search, trying to find resources explaining the process. Unfortunatelly for Linux audio and Pipewire in specific there is no definitive way, there is no single source of truth. You ask 3 people, you get 5 answers. Some tell you to install this and that package, others tell you to set whatever environment variables and even others tell you to start Ardour with pw-jack ardour.
As someone who isn’t as Pipewire savvy and someone who struggles making sense of the Linux audio environment, I’m scared everytime I have to set this up.
I’m into Linux because I like community, freedom and dignity, not because I like setting things up.
Since I already made very good experiences with ChatGPT, especially regarding Linux/technical problems, I was hoping that modern technology can sum up this mess for me.

jackd2 was running by default, I didn’t install it. I initially just installed pipewire-jack but since the system didn’t pick that up, because the default jackd2 packages seems to have higher priority, ChatGPT told me to create a symlink basically that points to the pipewire jack module instead of the jackd jack module, if that makes sense.
That’s what the

sudo update-alternatives --install \
  /usr/lib/x86_64-linux-gnu/libjack.so.0 \
  libjack.so.0 \
  /usr/lib/x86_64-linux-gnu/pipewire-0.3/jack/libjack.so.0 \
  50

command did.

I’m sorry that I’m completly lost in this but Pipewire is just huge mess to me. It was supposed to be the new great thing that makes audio setups on Linux easier and more straight forward but I have much more problems with it, than I ever had with Jack on its own.
I consider making a fresh installation and setting it up from scratch if just only knew how to cleanly set this up, once and for all.

Interesting, what kind of problems did you experience? JACKD2 will be simply sitting there if not used, aka you (or some package) have enabled the PW-JACK dropin replacement.

I have machines with 3 different setups all with different Debian Sid machines, all with different combinations of JACK and PW:

  • Main machine I use to make audio/music work where I have JACKD2 + Pulse Audio + some Pipewire packages (but no PW stuff enabled)
  • Mini PC 1 where I have JACKD2 + Pipewire-pulse enabled, no PW-JACK dropin replacement enabled. Pipewire Pulse does PulseAudio duties, when I launch JACKD2 through jackdbus PW becomes a client of JACK. Look at: PipeWire (0.38.1+) as a JACK client
  • Mini PC 2 where I have Pipewire-Pulse and PipeWire JACK dropin replacement (contained in pipewire-jack) enabled, as follow:
sudo ln -fs /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-*.conf /etc/ld.so.conf.d/pipewire-jack.conf
sudo ldconfig

Source: Debian Wiki and ubuntustudio-pwjack-config (but you can find similar instructions in several places depending on the distro)

Plus I have JACKD2 installed there on the MINI PC 2 but it’s simply not used, because apps needing JACK are using the PW-JACK dropin replacement.

When using Pipewire one thing to check is that WirePlumber is installed and enabled.

This is the first time I see this “solution”. I would suggest to try the “classic” method of enabling the PW-JACK dropin replacement, previously mentioned by @chiraag-nataraj and me.

Understood. At the same time, if you can confirm that everything works with ALSA, then we know it’s a routing/PipeWire/JACK/etc problem. If even that doesn’t work, debugging ALSA issues is just way simpler because there are fewer layers.

I think you made things worse by relying on a bullshit generator to give you accurate information. PipeWire is largely plug-and-play, even for JACK-related stuff. Instead, you relied on an unreliable tool that spews misinformation half the time and then insist that the “instructions” it gave you are equivalent to the instructions we provided (when we know ours works and you currently have a non-working system). It’s been a long time since I had to manually create an alternative, and that’s not the supported way to setup PipeWire-JACK.

Do other JACK clients see PipeWire-JACK?

I am now on a completly fresh installation again, nothing done to the system.
I would be really happy if someone could explain me how this is supposed to be set up now?

Where did you get this “classic” method from. I seems like every distribution handles pipewire differently. How do I know that theses steps also apply on Kubuntu?
It’s pretty difficult for me in this vast jungle of methods, approaches, packages and recommendations online to get a clear sense of how the setup is supposed to be done:
What?
Why?
How?

There are only two ways of enabling Pipewire-as-a-JACK server:

  1. invoke applications with the pw-jack utility command
  2. set up ld.so so that at runtime, all JACK apps will find the pipewire version of the JACK libraries

That’s it. You can even do both.

1 Like

Install the pipewire-jack package, and then:

Enjoy PW acting as JACK server.

1 Like

I think i’d copy the files rather than link them, but otherwise … yeah.

I cannot recall ever doing a setup that involved ld, in fact I hear about this the first time.
The setup @chiraag-nataraj proposed doesn’t work on my because a directory /usr/share/doc/pipewire/examples doesn’t exist, so there’s obviously also no /usr/share/doc/pipewire/examples/ld.so.conf.d/pipewire-jack-x86_64-linux-gnu.conf. This seems to be a Debian thing … or it is somewhere else, has a different name or something, I don’t know.

EDIT:
Ah, ok. the examples folder only exists after installing pipewire-jack

Cool, does Ardour still prompt for audio setup? It should automatically use PipeWire’s JACK implementation with those steps.

If the backend last time was Pipewire/JACK and there is a JACK server running, Ardour will not ask this time (we assume that you have your JACK server setup dialed in, and there’s no reason to ask you). You can get to it via Window > Audio/MIDI setup" if you need it.

1 Like