You are not logged in.

#1 2026-03-15 11:58:12

tomsk
Member
Registered: 2016-12-17
Posts: 224

Cannot update pipewire to 1.6.1-1

Hello, right now I have 1.4.10-2 version of pipewire (I tried to upgrade to 1.6.1-1, but I had to downgrade), because after upgrade I got no sound on my virtual sound device.

Here https://media.discordapp.net/attachment … y=lossless you can see my patchbay for current pipewire, as you can see I use Virtual device (I need to because Im streaming sound to another devices using HDMI + I have some exceptions).

So my goal is to have "virtual" device as main output device (it works in 1.4.10-2, but stopped working after upgrade to 1.6.1-1).

I create it using systemd on every start of PC like this:

/home/tomsk/.config/systemd/user/pipewire-virtual-sink.service

[Unit]
Description=Create Virtual Sink after PipeWire starts
After=pipewire.service wireplumber.service
Requires=pipewire.service

[Service]
Type=oneshot
ExecStart=/usr/bin/pactl load-module module-null-sink sink_name=moj-hlavny-mix device.description="Virtual Sound Card"
RemainAfterExit=yes

[Install]
WantedBy=default.target

(I need this too, its for streaming audio from my Windows machine into Linux)
/home/tomsk/.config/systemd/user/windows-audio-stream.service

[Unit]
Description=Windows Audio Stream Receiver (ffplay UDP)
After=pipewire.service
BindsTo=pipewire.service

[Service]
ExecStart=/bin/sh -c "PULSE_LATENCY_MSEC=20 /usr/bin/ffplay -fflags nobuffer -probesize 32 -analyzeduration 0 -nodisp -autoexit udp://0.0.0.0:5502"
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

So I wonder what is correct way to create that virtual device and windows listener on version 1.6.1.-1 which works.

Thank you


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

#2 2026-03-16 16:43:50

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 25,115

Re: Cannot update pipewire to 1.6.1-1

You probably want to After= both of these on pipewire-pulse service instead of just pipewire. Also can you quantify "doesn't work"? do you get an error running this command? There's also 1.6.2 in the meantime whose changelog looks like it might have a relation to issues in this space.

Offline

#3 2026-03-16 17:58:45

tomsk
Member
Registered: 2016-12-17
Posts: 224

Re: Cannot update pipewire to 1.6.1-1

Current situation

Yesterday, I tried to solve it using ClaudeAI, so what I did is... I made full update to newest version whole system (no partial update), I removed my original service `/home/tomsk/.config/systemd/user/pipewire-virtual-sink.service` and added:

`~/.config/pipewire/pipewire.conf.d/10-virtual-sink.conf`

context.objects = [
    {
        factory = adapter
        args = {
            factory.name     = support.null-audio-sink
            node.name        = "moj-hlavny-mix"
            node.description = "Virtual Sound Card"
            media.class      = Audio/Sink
            audio.position   = [ FL FR ]
            node.virtual     = true
            priority.session = 2000
        }
    }
]

`~/.config/wireplumber/wireplumber.conf.d/50-default-sink.conf`

wireplumber.settings = {
    default.audio.sink   = "moj-hlavny-mix"
    default.audio.source = "alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo"
}

`/etc/pipewire/pipewire-pulse.conf.d/99-custom.conf` (this is for bigger audio latency - eliminates cracking)

pulse.properties = {
    pulse.min.req      = 1024/48000
    pulse.min.frag     = 1024/48000
    pulse.min.quantum  = 1024/48000
}

`/etc/pipewire/pipewire.conf.d/10-custom.conf`

context.properties = {
    default.clock.allowed-rates = [ 44100 48000 ]
}

`~/.config/wireplumber/wireplumber.conf.d/51-usb-audio-fix.conf` (disable split-enable, idk what it is)

monitor.alsa.rules = [
  {
    matches = [
      { device.name = "alsa_card.usb-0c76_USB_AUDIO_DEVICE-00" }
    ]
    actions = {
      update-props = {
        api.alsa.split-enable = false
      }
    }
  }
]

`~/.config/wireplumber/wireplumber.conf.d/52-alsa-capture-fix.conf` (ALSA buffer parameters)

monitor.alsa.rules = [
  {
    matches = [ { node.name = "alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo" } ]
    actions = {
      update-props = {
        api.alsa.period-size   = 1024
        api.alsa.period-num    = 2
        api.alsa.headroom      = 0
        resample.quality       = 4
        channelmix.normalize   = false
      }
    }
  }
]

so this is all.. with this setup I have two issues, I will explain them in log below, basically first issue is that no application have access to my microphone I see no "input" boxes in qpwgraph for applications like GNOME settings, Mumble, Discord etc.. (I know how to solve it, explained below), and second issue is that all I hear is going to my microphone input, even when there is no such connection in qpwgraph.

There is log:

╭─ ~                                                                                                                                     ✔  18:55:18 ─╮
╰─ journalctl --user -u pipewire -n 20 --no-pager
─╯
Mar 15 18:40:42 tomsk-PC pipewire[16439]: pw.link: (33.1.2 -> 134.1.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:53:30 tomsk-PC pipewire[16439]: mod.rtp-sink: timestamp: expected 70707456 != actual 2048
Mar 15 18:53:35 tomsk-PC systemd[3009]: Stopping PipeWire Multimedia Service...
Mar 15 18:53:35 tomsk-PC systemd[3009]: Stopped PipeWire Multimedia Service.
Mar 15 18:53:35 tomsk-PC systemd[3009]: pipewire.service: Consumed 34.617s CPU time over 24min 41.752s wall clock time, 48.6M memory peak.
-- Boot 9e0801c5b7804c658cb2657d248b1567 --
Mar 15 18:54:15 tomsk-PC systemd[3019]: Started PipeWire Multimedia Service.
Mar 15 18:54:15 tomsk-PC pipewire[3043]: mod.rtp-source: sess.latency.msec 100.000000 should be an integer multiple of rtp.ptime 6.458333
Mar 15 18:54:23 tomsk-PC systemd[3019]: Stopping PipeWire Multimedia Service...
Mar 15 18:54:23 tomsk-PC systemd[3019]: Stopped PipeWire Multimedia Service.
Mar 15 18:54:23 tomsk-PC systemd[3019]: Started PipeWire Multimedia Service.
Mar 15 18:54:24 tomsk-PC pipewire[7139]: mod.rtp-source: sess.latency.msec 100.000000 should be an integer multiple of rtp.ptime 6.458333
Mar 15 18:54:33 tomsk-PC pipewire[7139]: spa.alsa: front:3p: follower avail:253 delay:253 target:512 thr:512, resync (0 suppressed)
Mar 15 18:54:37 tomsk-PC pipewire[7139]: spa.alsa: front:3p: follower avail:251 delay:251 target:512 thr:512, resync (10 suppressed)
Mar 15 18:54:38 tomsk-PC pipewire[7139]: spa.alsa: hdmi:1p: follower avail:514 delay:514 target:256 thr:256, resync (0 suppressed)
Mar 15 18:54:39 tomsk-PC pipewire[7139]: spa.alsa: front:3p: follower avail:255 delay:255 target:512 thr:512, resync (7 suppressed)
Mar 15 18:54:48 tomsk-PC pipewire[7139]: spa.alsa: hdmi:1p: follower avail:513 delay:513 target:256 thr:256, resync (2 suppressed)
Mar 15 18:54:50 tomsk-PC pipewire[7139]: pw.port: 0x563439934bd0: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:54:50 tomsk-PC pipewire[7139]: pw.link: (74.0.1 -> 132.0.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:54:50 tomsk-PC pipewire[7139]: pw.port: 0x5634399369b0: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:54:50 tomsk-PC pipewire[7139]: pw.link: (74.1.1 -> 132.1.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
╭─ ~                                                                                                                                     ✔  18:55:22 ─╮
╰─ systemctl --user restart pipewire wireplumber pipewire-pulse
─╯
╭─ ~                                                                                                                                     ✔  18:55:41 ─╮
╰─ pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo /tmp/test.wav &
─╯
sleep 5; kill %1
aplay /tmp/test.wav
[1] 10523
/tmp/test.wav
stream node 121 error: error use input buffers: -22 (Invalid argument)
remote error: id=2 seq:39 res:-32 (Broken pipe): error use input buffers: -22 (Invalid argument)
stream node 121 error: error use input buffers: -22 (Invalid argument)
remote error: id=2 seq:39 res:-32 (Broken pipe): error use input buffers: -22 (Invalid argument)
[1]  + 10523 exit 1     pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo 
kill: %1: no such job
Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
╭─ ~                                                                                                                                ✔  5s  18:56:16 ─╮
╰─ pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo /tmp/test.wav &
─╯
sleep 5; kill %1
aplay /tmp/test.wav
[1] 10582
/tmp/test.wav
stream node 121 error: error use input buffers: -22 (Invalid argument)
remote error: id=2 seq:39 res:-32 (Broken pipe): error use input buffers: -22 (Invalid argument)
stream node 121 error: error use input buffers: -22 (Invalid argument)
remote error: id=2 seq:39 res:-32 (Broken pipe): error use input buffers: -22 (Invalid argument)
[1]  + 10582 exit 1     pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo 
kill: %1: no such job
Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
╭─ ~                                                                                                                                ✔  5s  18:56:25 ─╮
╰─ systemctl --user restart pipewire wireplumber pipewire-pulse
─╯
╭─ ~                                                                                                                                     ✔  18:56:27 ─╮
╰─ pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo /tmp/test.wav &
─╯
sleep 5; kill %1
aplay /tmp/test.wav
[1] 10789
/tmp/test.wav
[1]  + 10789 exit 1     pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo 
Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
╭─ ~                                                                                                                               ✔  10s  18:56:39 ─╮
╰─ pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo /tmp/test.wav &
─╯
sleep 5; kill %1
aplay /tmp/test.wav
[1] 10863
/tmp/test.wav
Playing WAVE '/tmp/test.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo
[1]  + 10863 exit 1     pw-record --target alsa_input.usb-0c76_USB_AUDIO_DEVICE-00.analog-stereo 
╭─ ~                                                                                                                               ✔  10s  18:56:52 ─╮
╰─ journalctl --user -u pipewire -n 20 --no-pager
─╯
Mar 15 18:55:41 tomsk-PC systemd[3019]: pipewire.service: Consumed 2.988s CPU time over 1min 17.913s wall clock time, 21.1M memory peak.
Mar 15 18:55:41 tomsk-PC systemd[3019]: Started PipeWire Multimedia Service.
Mar 15 18:55:41 tomsk-PC pipewire[10232]: mod.rtp-source: sess.latency.msec 100.000000 should be an integer multiple of rtp.ptime 6.458333
Mar 15 18:55:53 tomsk-PC pipewire[10232]: pw.port: 0x561589f806f0: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:55:53 tomsk-PC pipewire[10232]: pw.link: (75.0.1 -> 118.0.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:55:53 tomsk-PC pipewire[10232]: pw.port: 0x561589f82ba0: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:55:53 tomsk-PC pipewire[10232]: pw.link: (75.1.1 -> 118.1.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:56:11 tomsk-PC pipewire[10232]: pw.port: 0x56158a256bc0: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:56:11 tomsk-PC pipewire[10232]: pw.link: (75.0.1 -> 121.0.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:56:11 tomsk-PC pipewire[10232]: pw.port: 0x56158a2fbd90: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:56:11 tomsk-PC pipewire[10232]: pw.link: (75.1.1 -> 121.1.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:56:20 tomsk-PC pipewire[10232]: pw.port: 0x56158a24a7b0: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:56:20 tomsk-PC pipewire[10232]: pw.link: (75.0.1 -> 121.0.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:56:20 tomsk-PC pipewire[10232]: pw.port: 0x56158a24b270: mix use buffers failed: -22 (Invalid argument)
Mar 15 18:56:20 tomsk-PC pipewire[10232]: pw.link: (75.1.1 -> 121.1.0) allocating -> error error use input buffers: -22 (Invalid argument) (-22) (paused-paused)
Mar 15 18:56:27 tomsk-PC systemd[3019]: Stopping PipeWire Multimedia Service...
Mar 15 18:56:27 tomsk-PC systemd[3019]: Stopped PipeWire Multimedia Service.
Mar 15 18:56:27 tomsk-PC systemd[3019]: pipewire.service: Consumed 1.425s CPU time over 45.375s wall clock time, 23.7M memory peak.
Mar 15 18:56:27 tomsk-PC systemd[3019]: Started PipeWire Multimedia Service.
Mar 15 18:56:27 tomsk-PC pipewire[10717]: mod.rtp-source: sess.latency.msec 100.000000 should be an integer multiple of rtp.ptime 6.458333

So... firstly you can see errors, I have no working microphone, so I need to run multiple `systemctl --user restart pipewire wireplumber pipewire-pulse` and `pw-record` in a row as you can see on 60th line of log when I called `pw-record` again it worked and I heard my voice and my microphone was accessible, and I started to see "input" boxes in qpwgraph at applications like Mumble, Discord, GNOME settings etc...

So I wonder why it is happening and how to fix this issue, and second issue is as I said that everything I hear goes into my microphone.

What is my goal at the end of day?

ALL I WANT is this: https://i.imgur.com/XdJXmBa.jpeg

As you can see on screenshot, I want virtual sink which would be my default output device, everything would go there, except "UDP stream from Windows" that would go only to my headphones. Why? Because everything what goes to virtual sink I send to HDMI and my headphones as you can see, HDMI goes into capture card on second computer, so because of that second computer catches everything what I hear except "UDP stream from Windows", I want that UDP stream to stay on my machine and don't be "cought" by that capture card if you understand me smile


I use several linux distros like: Archlinux, Ubuntu, Fedora, Linux Mint

Offline

Board footer

Powered by FluxBB