Running Pipewire server without X11 or Wayland
Hi there,
I need to lauch several libSDL2 programs at the same time against the same audio device, on a system where ALSA's DMIX isn't going to work (Pi4 vc4hdmi audio device, if you are curious).
I am trying to bring up pipewire on this system, after I rebuild libSDL2 with pipewire support of course, so several SDL2 programs can connect to the pipewire server at the same time.
So far, I launch DBUS daemon like this:
dbus-daemon --system --fork
And then I got this when launching the pipewire server:
~/src/pipewire-0.3.39/b4# pipewire
[W][07900.486686] mod.rtkit | [ module-rtkit.c: 205 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
[W][07900.486895] mod.rtkit | [ module-rtkit.c: 465 set_nice()] could not set nice-level to -11: No such file or directory
[W][07900.487391] mod.rtkit | [ module-rtkit.c: 205 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
[E][07900.489333] spa.dbus | [ dbus.c: 349 impl_connection_get()] Failed to connect to session bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[E][07900.489383] mod.portal | [ module-portal.c: 346 pipewire__module_init()] Failed to connect to session bus: Input/output error
[W][07900.491251] mod.rtkit | [ module-rtkit.c: 205 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
[W][07900.491615] mod.rtkit | [ module-rtkit.c: 205 translate_error()] RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
[W][07900.491647] mod.rtkit | [ module-rtkit.c: 625 impl_acquire_rt()] could not make thread realtime: No such file or directory
...what seems to be really preventing SDL2 programs to run against pipewire is this part:
[E][07900.489333] spa.dbus | [ dbus.c: 349 impl_connection_get()] Failed to connect to session bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
[E][07900.489383] mod.portal | [ module-portal.c: 346 pipewire__module_init()] Failed to connect to session bus: Input/output error
This system has no X11 or Wayland sessions running, and SDL2 programs use KMS/DRM for video. So, does pipewire work at all without X11/Wayland? Also, is there something I can do about the DBUS i/o error?
Thanks!