mdickers47 / pkg-pipewire-headless

Arch package for a headless/"system" pipewire server

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pipewire-headless: This is an arch package that will drop in all the (many) configuration files that have to be modified to get pipewire working as a system service, disassociated from a session belonging to a logged-in user.

This will configure the system-wide pipewire the way I want it to work, which is:

  • local ALSA fakery is set up so that any naive process opening ALSA for output will go to pipewire
  • local pipewire socket in /run/pipewire is owned by pipewire:audio with mode 0660, such that any pw-cli process (etc) run in group 'audio' should work
  • pipewire-pulse takes unrestricted commands from tcp port 4713 on all interfaces, such that 'pactl -s servername' (etc) from anywhere works
  • pipewire has a RTP receiver listening on port 46000 on all interfaces

This should be a reasonable scheme for the use case that is "having a DSP on the LAN that can be used or controlled from anywhere on the LAN." You would not want to connect it to the internet.

If you want a slightly different configuration, have fun figuring out the dozens of configuration files, in a mishmash of lua and pidgin JSON, that pipewire scatters across no fewer than 9 directories (3 each for pipewire, pipewire-pulse, and wireplumber). Don't forget the 5 systemd units might have to be modified too!

After installing you will need to:

  • systemctl enable pipewire
  • systemctl enable pipewire-pulse
  • systemctl enable wireplumber

If you want everything showing up at the RTP receiver to come directly out the speakers, then somewhere you will have to also do this:

  • pw-link -Ilio # should see a bunch of things
  • pw-link 37 49 # patch thing 37 -> 49

2023-12-06 mikeyd

About

Arch package for a headless/"system" pipewire server


Languages

Language:Lua 87.0%Language:Shell 13.0%