PipeWire RTP network audio streaming - data is not accepted at sender RTP sink?

I’m interested in streaming audio from a sender system to a target system over a network connection. The ArchWiki mentions that PipeWire ROC and PipeWire RTP can achieve this.

https://wiki.archlinux.org/title/PipeWire#Sharing_audio_devices_with_computers_on_the_network

I successfully configured PipeWire ROC to stream audio, but I’m now interested in streaming “HiRes” audio, which doesn’t seem possible with PipeWire ROC [1].

Therefore, I’m now testing PipeWire RTP. I’d like to first test streaming for “LoRes” audio and then move on to test it for “HiRes” audio.

Based on the PipeWire RTP docs, I configured a sink on the sender and a source on the target. At the sender, if sone is used to play audio, then pw-top shows data for both sone and for the sink :

pw-top
S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR FORMAT           NAME                            
R   30    256  48000 189.5us   1.2us  0.04  0.00    0                  Dummy-Driver
R   36    310  48000  15.1us  54.4us  0.00  0.01    0    S16BE 2 48000  + rtp-sink
R  106   3969  44100  53.4us  61.9us  0.01  0.01    0    S16LE 2 44100  + sone
S   31      0      0    ---     ---   ---   ---     0                  Freewheel-Driver
S   51      0      0    ---     ---   ---   ---     0                  Midi-Bridge
S   54      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-pla
S   55      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-pla
S   56      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-pla
S   57      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-pla
S   58      0      0    ---     ---   ---   ---     0                  alsa_input.pci-0000_00_1f.3-plat
S   59      0      0    ---     ---   ---   ---     0                  alsa_input.pci-0000_00_1f.3-plat
S   60      0      0    ---     ---   ---   ---     0                  bluez_midi.server
S   92      0      0    ---     ---   ---   ---     0                  v4l2_input.pci-0000_00_14.0-usb-
S   94      0      0    ---     ---   ---   ---     0                  v4l2_input.pci-0000_00_14.0-usb-

That said, it seems that the data is not accepted at the sender sink ?

❯ systemctl --user status pipewire
* pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
     Active: active (running) since Mon 2026-09-28 22:56:46 NZDT; 15min ago
 Invocation: 805cc03a78f74881980f06d330f1a8eb
TriggeredBy: * pipewire.socket
   Main PID: 1139 (pipewire)
      Tasks: 3 (limit: 18708)
     Memory: 19.5M (peak: 26.2M)
        CPU: 10.105s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             `-1139 /usr/bin/pipewire

Sep 28 23:05:03 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:05 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:07 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:10 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:12 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:15 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:17 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:42 laptop pipewire[1139]: mod.rtp-sink: (0 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:44 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:46 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e

At the target, pw-top shows neither data for the source, nor for the stream, nor for the sink (a USB-connected DAC) :

pw-top
S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR FORMAT           NAME                            
S   30      0      0    ---     ---   ---   ---     0                  Dummy-Driver
S   31      0      0    ---     ---   ---   ---     0                  Freewheel-Driver
S   36      0      0    ---     ---   ---   ---     0                  rtp-source
S   53      0      0    ---     ---   ---   ---     0                  Midi-Bridge
S   60      0      0    ---     ---   ---   ---     0                  alsa_output.usb-NuPrime_NuPrime_IDA-8-00.iec958-stereo
S   37      0      0    ---     ---   ---   ---     0                  bluez_midi.server
S   57      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_04_00.6.analog-stereo
S   56      0      0    ---     ---   ---   ---     0                  alsa_input.pci-0000_04_00.6.analog-stereo

Is there something missing ?

Does anyone know how to successfully stream with PipeWire RTP ?

Sender system - PipeWire config
❯ ls ~/.config/pipewire/pipewire.conf.d
roc-sink.conf.bak  rtp-sink.conf  sample-rates.conf
❯ cat ~/.config/pipewire/pipewire.conf.d/rtp-sink.conf
context.modules = [
{   name = libpipewire-module-rtp-sink
    args = {
        destination.ip = "notebook.lan"
        destination.port = 46000
        sess.name = "RTP Sink Notebook"
        #audio.format = "S24LE"
        #audio.rate = 96000
        stream.props = {
            media.class = "Audio/Sink"
            node.name = "rtp-sink"
        }
    }
}
]
❯ cat ~/.config/pipewire/pipewire.conf.d/sample-rates.conf
context.properties = {
    default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 ]
}
Target system - PipeWire config
❯ ls ~/.config/pipewire/pipewire.conf.d
roc-source.conf.bak  rtp-source.conf  sample-rates.conf
❯ cat ~/.config/pipewire/pipewire.conf.d/rtp-source.conf
context.modules = [
{   name = libpipewire-module-rtp-source
    args = {
        local.ifname = "wlo1"
        source.ip = "0.0.0.0"
        source.port = 46000
        node.always-process = false
        stream.props = {
            media.class = "Audio/Source"
            node.name = "rtp-source"
	    node.description = "RTP Source"
        }
    }
}
]
❯ cat ~/.config/pipewire/pipewire.conf.d/sample-rates.conf
context.properties = {
    default.clock.allowed-rates = [ 44100 48000 88200 96000 176400 192000 352800 384000 ]
}

I have to admit that PipeWire and streaming are all very new to me.

If there is anything that I have misunderstood, please let me know. Thank you.

Sender system - details
❯ inxi --filter --verbosity 8
System:
  Kernel: 7.2.8-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 16.2.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-7.2-x86_64
    root=UUID=d8ccb9f9-1a49-48cd-8028-ab53dbac245a rw rootflags=subvol=@
    quiet rd.luks.uuid=ae3bd9c5-2194-4777-84cc-36cc9b70e330
    rd.luks.key=/crypto_keyfile.bin splash udev.log_priority=3
  Desktop: KDE Plasma v: 6.7.5 tk: Qt v: N/A info: frameworks v: 6.30.0
    wm: kwin_wayland vt: 2 dm: N/A Distro: Manjaro base: Arch Linux
Machine:
  Type: Laptop System: LENOVO product: 20UAS13N00 v: ThinkPad X1 Carbon Gen 8
    serial: <superuser required> Chassis: type: 10 serial: <superuser required>
  Mobo: LENOVO model: 20UAS13N00 v: SDK0J40697 WIN
    serial: <superuser required> part-nu: LENOVO_MT_20UA_BU_Think_FM_ThinkPad
    X1 Carbon Gen 8 uuid: <superuser required> Firmware: UEFI vendor: LENOVO
    v: N2WET52W (1.42 ) date: 04/09/2026
Battery:
  ID-1: BAT0 charge: 58.9 Wh (100%) condition: 58.9/54 Wh (109.1%)
    volts: 17.49 min: 15.4 model: LGC 02DL004 type: Li-poly serial: <filter>
    charging: status: full control: start: 0% end: 100% cycles: 34
Memory:
  System RAM: total: 16 GiB available: 15.28 GiB used: 3.25 GiB (21.3%)
  Message: For most reliable report, use superuser + dmidecode.
  Array-1: capacity: 16 GiB slots: 2 modules: 2 EC: None
    max-module-size: 8 GiB note: est.
  Device-1: ChannelA-DIMM0 type: LPDDR3 detail: synchronous size: 8 GiB
    speed: 2133 MT/s volts: curr: 1 width (bits): data: 64 total: 64
    manufacturer: Samsung part-no: N/A serial: N/A
  Device-2: ChannelB-DIMM0 type: LPDDR3 detail: synchronous size: 8 GiB
    speed: 2133 MT/s volts: curr: 1 width (bits): data: 64 total: 64
    manufacturer: Samsung part-no: N/A serial: N/A
PCI Slots:
  Permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: Intel Core i5-10210U bits: 64 type: MT MCP
    arch: Comet/Whiskey Lake note: check gen: core 10 level: v3 note: check
    built: 2018 process: Intel 14nm family: 6 model-id: 0x8E (142)
    stepping: 0xC (12) microcode: 0x100
  Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 threads: 8 tpc: 2
    smt: enabled cache: L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB
    desc: 4x256 KiB L3: 6 MiB desc: 1x6 MiB
  Speed (MHz): avg: 400 min/max: 400/4200 scaling: driver: intel_pstate
    governor: powersave cores: 1: 400 2: 400 3: 400 4: 400 5: 400 6: 400 7: 400
    8: 400 bogomips: 33599
  Flags: 3dnowprefetch abm acpi adx aes aperfmperf apic arat
    arch_capabilities arch_perfmon art avx avx2 bmi1 bmi2 bts clflush
    clflushopt cmov constant_tsc cpuid cpuid_fault cx16 cx8 de ds_cpl dtes64
    dtherm dts epb ept ept_ad erms est f16c flexpriority flush_l1d fma fpu
    fsgsbase fxsr ht hwp hwp_act_window hwp_epp hwp_notify ibpb ibrs
    ibrs_enhanced ida intel_pt invpcid lahf_lm lm mca mce md_clear mmx
    monitor movbe mpx msr mtrr nonstop_tsc nopl nx pae pat pbe pcid pclmulqdq
    pdcm pdpe1gb pebs pge pln pni popcnt pse pse36 pts rdrand rdseed rdtscp
    rep_good sdbg sep sgx smap smep ss ssbd sse sse2 sse4_1 sse4_2 ssse3
    stibp syscall tm tm2 tpr_shadow tsc tsc_adjust tsc_deadline_timer vme vmx
    vnmi vpid x2apic xgetbv1 xsave xsavec xsaveopt xsaves xtopology xtpr
  Vulnerabilities:
  Type: gather_data_sampling mitigation: Microcode
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection mitigation: Aligned branch/return thunks
  Type: itlb_multihit status: KVM: Split huge pages
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data mitigation: Clear CPU buffers; SMT vulnerable
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: Enhanced IBRS
  Type: spec_rstack_overflow status: Not affected
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Enhanced / Automatic IBRS; IBPB:
    conditional; PBRSB-eIBRS: SW sequence; BHI: SW loop, KVM: SW loop
  Type: srbds mitigation: Microcode
  Type: tsa status: Not affected
  Type: tsx_async_abort status: Not affected
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: Intel CometLake-U GT2 [UHD Graphics] vendor: Lenovo driver: i915
    v: kernel arch: Gen-9.5 process: Intel 14nm built: 2016-20 ports:
    active: eDP-1 empty: DP-1,DP-2,HDMI-A-1 bus-ID: 00:02.0 chip-ID: 8086:9b41
    class-ID: 0300
  Device-2: Chicony Integrated Camera driver: uvcvideo type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-8:3 chip-ID: 04f2:b6cb
    class-ID: fe01 serial: <filter>
  Display: wayland server: X.org v: 1.21.1.24 with: Xwayland v: 24.1.13
    compositor: kwin_wayland driver: X: loaded: modesetting
    alternate: fbdev,vesa dri: iris gpu: i915 display-ID: 0
  Monitor-1: eDP-1 model: LG Display 0x0608 built: 2018 res: mode: 1920x1080
    hz: 60 scale: 100% (1) dpi: 158 gamma: 1.2 chroma: red: x: 0.639 y: 0.329
    green: x: 0.306 y: 0.608 blue: x: 0.149 y: 0.055 white: x: 0.314 y: 0.329
    size: 309x174mm (12.17x6.85") diag: 355mm (14") ratio: 16:9
    modes: 1920x1080
  API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
    device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
    drv: iris x11: drv: iris
  API: OpenGL v: 4.6 vendor: intel mesa v: 26.2.3-arch1.1 glx-v: 1.4
    direct-render: yes renderer: Mesa Intel UHD Graphics (CML GT2)
    device-ID: 8086:9b41 memory: 14.92 GiB unified: yes display-ID: :0.0
  API: Vulkan v: 1.4.357 layers: 6 device: 0 type: integrated-gpu name: Intel
    UHD Graphics (CML GT2) driver: mesa intel v: 26.2.3-arch1.1
    device-ID: 8086:9b41 surfaces: N/A
  Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
    de: kscreen-console,kscreen-doctor wl: wayland-info
    x11: xdpyinfo, xprop, xrandr
Audio:
  Device-1: Intel 400 Series Family On-Package HD Audio vendor: Lenovo
    driver: sof-audio-pci-intel-cnl alternate: snd_soc_avs,
    snd_sof_pci_intel_cnl, snd_hda_intel bus-ID: 00:1f.3 chip-ID: 8086:02c8
    class-ID: 0403
  API: ALSA v: k7.2.8-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: JACK v: 1.9.22 status: off tools: N/A
  Server-3: PipeWire v: 1.6.9 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel 400 Series Family On-Package CNVi WiFi driver: iwlwifi
    v: kernel bus-ID: 00:14.3 chip-ID: 8086:02f0 class-ID: 0280
  IF: wlp0s20f3 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  Device-2: Intel 400 Series Family On-Package GbE vendor: Lenovo
    driver: e1000e v: kernel port: N/A bus-ID: 00:1f.6 chip-ID: 8086:0d4f
    class-ID: 0200
  IF: enp0s31f6 state: down mac: <filter>
  IF-ID-1: virbr0 state: down mac: <filter>
  IP v4: <filter> scope: global broadcast: <filter>
  IF-ID-2: wwan0 state: down mac: N/A
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>
Bluetooth:
  Message: No bluetooth data found.
Logical:
  Message: No logical block device data found.
  Device-1: luks-ae3bd9c5-2194-4777-84cc-36cc9b70e330 maj-min: 253:0
    type: LUKS dm: dm-0 size: 238.18 GiB
  Components:
  p-1: nvme0n1p2 maj-min: 259:2 size: 238.18 GiB
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 238.47 GiB used: 60.44 GiB (25.3%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung
    model: MZVLB256HBHQ-000L7 size: 238.47 GiB block-size: physical: 512 B
    logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 5M2QEXH7 temp: 40.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 60.44 GiB (25.4%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-ae3bd9c5-2194-4777-84cc-36cc9b70e330 label: N/A
    uuid: d8ccb9f9-1a49-48cd-8028-ab53dbac245a
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 984 KiB (0.3%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A
    uuid: 77DA-EE9B
  ID-3: /home raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 60.44 GiB (25.4%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-ae3bd9c5-2194-4777-84cc-36cc9b70e330 label: N/A
    uuid: d8ccb9f9-1a49-48cd-8028-ab53dbac245a
  ID-4: /swap raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 60.44 GiB (25.4%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-ae3bd9c5-2194-4777-84cc-36cc9b70e330 label: N/A
    uuid: d8ccb9f9-1a49-48cd-8028-ab53dbac245a
  ID-5: /var/cache raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 60.44 GiB (25.4%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-ae3bd9c5-2194-4777-84cc-36cc9b70e330 label: N/A
    uuid: d8ccb9f9-1a49-48cd-8028-ab53dbac245a
  ID-6: /var/log raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 60.44 GiB (25.4%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-ae3bd9c5-2194-4777-84cc-36cc9b70e330 label: N/A
    uuid: d8ccb9f9-1a49-48cd-8028-ab53dbac245a
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: file size: 4 GiB used: 0 KiB (0.0%) priority: -1
    file: /swap/swapfile
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 12 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 1-3:2 info: Lenovo 300 Wireless Compact Mouse type: mouse
    driver: hid-generic,usbhid interfaces: 1 rev: 1.1 speed: 12 Mb/s (1.4 MiB/s)
    lanes: 1 mode: 1.1 power: 98mA chip-ID: 17ef:60ac class-ID: 0301
  Device-2: 1-8:3 info: Chicony Integrated Camera type: video
    driver: uvcvideo interfaces: 5 rev: 2.0 speed: 480 Mb/s (57.2 MiB/s)
    lanes: 1 mode: 2.0 power: 500mA chip-ID: 04f2:b6cb class-ID: fe01
    serial: <filter>
  Device-3: 1-9:4 info: Synaptics Prometheus MIS Touch Fingerprint Reader
    type: <vendor specific> driver: N/A interfaces: 1 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 100mA
    chip-ID: 06cb:00bd class-ID: ff00 serial: <filter>
  Hub-2: 2-0:1 info: super-speed hub ports: 6 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Hub-4: 4-0:1 info: super-speed hub ports: 2 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 50.0 C pch: 51.0 C mobo: N/A
  Fan Speeds (rpm): fan-1: 0
Repos:
  Packages: pm: pacman pkgs: 1467 libs: 405 tools: pamac pm: flatpak pkgs: 0
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://mirrors.cicku.me/manjaro/unstable/$repo/$arch
    2: https://mirrors2.manjaro.org/unstable/$repo/$arch
    3: https://mirrors.manjaro.org/repo/unstable/$repo/$arch
Processes:
  CPU top: 5 of 279
  1: cpu: 12.4% command: WebKitWebProcess pid: 1667 mem: 384.6 MiB (2.4%)
  2: cpu: 12.3% command: konsole pid: 4028 mem: 129.6 MiB (0.8%)
  3: cpu: 11.7% command: kwin_wayland pid: 1094 mem: 248.6 MiB (1.5%)
  4: cpu: 9.6% command: sone pid: 1637 mem: 254.0 MiB (1.6%)
  5: cpu: 9.4% command: firefox pid: 1964 mem: 493.6 MiB (3.1%)
  Memory top: 5 of 279
  1: mem: 493.6 MiB (3.1%) command: firefox pid: 1964 cpu: 9.4%
  2: mem: 384.6 MiB (2.4%) command: WebKitWebProcess pid: 1667 cpu: 12.4%
  3: mem: 354.1 MiB (2.2%) command: plasmashell pid: 1235 cpu: 1.2%
  4: mem: 312.6 MiB (1.9%) command: firefox pid: 2278 cpu: 1.6%
  5: mem: 309.9 MiB (1.9%) command: firefox pid: 2354 cpu: 6.1%
Info:
  Processes: 279 Power: uptime: 15m states: freeze,mem,disk suspend: s2idle
    avail: deep wakeups: 0 hibernate: platform avail: shutdown, reboot,
    suspend, test_resume image: 6.07 GiB services: org_kde_powerdevil,
    power-profiles-daemon, upowerd Init: systemd v: 261 default: graphical
    tool: systemctl
  Compilers: gcc: 16.2.1 Shell: Zsh v: 5.9.2 running-in: konsole
    inxi: 3.3.41
❯ systemctl --user status pipewire
* pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
     Active: active (running) since Mon 2026-09-28 22:56:46 NZDT; 15min ago
 Invocation: 805cc03a78f74881980f06d330f1a8eb
TriggeredBy: * pipewire.socket
   Main PID: 1139 (pipewire)
      Tasks: 3 (limit: 18708)
     Memory: 19.5M (peak: 26.2M)
        CPU: 10.105s
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             `-1139 /usr/bin/pipewire

Sep 28 23:05:03 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:05 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:07 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:10 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:12 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:15 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:17 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:42 laptop pipewire[1139]: mod.rtp-sink: (0 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:44 laptop pipewire[1139]: mod.rtp-sink: (2 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
Sep 28 23:05:46 laptop pipewire[1139]: mod.rtp-sink: (1 suppressed) sendmsg() failed: Connexion refus<C3><A9>e
❯ wpctl status
PipeWire 'pipewire-0' [1.6.9, rousseau@laptop, cookie:1561044537]
 └─ Clients:
        33. kwin_wayland                        [1.6.9, rousseau@laptop, pid:1094]
        34. WirePlumber                         [1.6.9, rousseau@laptop, pid:1141]
        35. pipewire                            [1.6.9, rousseau@laptop, pid:1139]
        45. WirePlumber [client]                [1.6.9, rousseau@laptop, pid:1141]
        89. pipewire                            [1.6.9, rousseau@laptop, pid:1346]
        90. libcanberra                         [1.6.9, rousseau@laptop, pid:1215]
        91.                                     [1.6.9, rousseau@laptop, pid:1215]
        96. xdg-desktop-portal                  [1.6.9, rousseau@laptop, pid:1465]
        97. plasmashell                         [1.6.9, rousseau@laptop, pid:1235]
        98. libcanberra                         [1.6.9, rousseau@laptop, pid:1235]
        99.                                     [1.6.9, rousseau@laptop, pid:1235]
       100. sone                                [1.6.9, rousseau@laptop, pid:1637]
       101. Firefox                             [1.6.9, rousseau@laptop, pid:1964]
       106. Firefox                             [1.6.9, rousseau@laptop, pid:1964]
       109. wpctl                               [1.6.9, rousseau@laptop, pid:4743]

Audio
 ├─ Devices:
 │      50. 400 Series Chipset Family On-Package HD Audio [alsa]
 │  
 ├─ Sinks:
 │  *   36. RTP Sink Notebook                   [vol: 1.00]
 │      54. 400 Series Chipset Family On-Package HD Audio HDMI / DisplayPort 3 Output [vol: 1.00]
 │      55. 400 Series Chipset Family On-Package HD Audio HDMI / DisplayPort 2 Output [vol: 1.00]
 │      56. 400 Series Chipset Family On-Package HD Audio HDMI / DisplayPort 1 Output [vol: 1.00]
 │      57. 400 Series Chipset Family On-Package HD Audio Speaker [vol: 0.40]
 │  
 ├─ Sources:
 │      58. 400 Series Chipset Family On-Package HD Audio Stereo Microphone [vol: 1.00]
 │  *   59. 400 Series Chipset Family On-Package HD Audio Digital Microphone [vol: 1.00 MUTED]
 │  
 ├─ Filters:
 │  
 └─ Streams:
       112. sone                                                        
            102. output_FL       > RTP Sink Notebook:send_FL    [init]
            104. output_FR       > RTP Sink Notebook:send_FR    [init]

Video
 ├─ Devices:
 │      63. Integrated Camera                   [v4l2]
 │      64. Integrated Camera                   [v4l2]
 │      65. Integrated Camera                   [v4l2]
 │      66. Integrated Camera                   [v4l2]
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  *   92. Integrated Camera (V4L2)           
 │      94. Integrated Camera (V4L2)           
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    rtp-sink
         1. Audio/Source  alsa_input.usb-Sony_Interactive_Entertainment_Wireless_Controller-00.mono-fallback
❯ sudo ufw status
[sudo] password for rousseau: 
Status: active

To                         Action      From
--                         ------      ----
46000                      ALLOW       192.168.5.0/24 
❯ ping notebook.lan
PING notebook.lan (192.168.5.111) 56(84) bytes of data.
64 bytes from notebook.lan (192.168.5.111): icmp_seq=1 ttl=64 time=500 ms
64 bytes from notebook.lan (192.168.5.111): icmp_seq=2 ttl=64 time=39.8 ms
64 bytes from notebook.lan (192.168.5.111): icmp_seq=3 ttl=64 time=338 ms
64 bytes from notebook.lan (192.168.5.111): icmp_seq=4 ttl=64 time=20.8 ms
64 bytes from notebook.lan (192.168.5.111): icmp_seq=5 ttl=64 time=385 ms
^C
--- notebook.lan ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 20.799/256.695/500.114/192.307 ms
❯ journalctl --boot --reverse --grep=pipewire
Sep 28 23:16:46 laptop wireplumber[1141]: wp-event-dispatcher: <WpAsyncEventHook:0x555a06f0abe0> failed: <WpSiStandardLink:0x555a071bec80> link failed: 1 of 1 PipeWire links failed to activate
Sep 28 23:14:50 laptop wireplumber[1141]: wp-event-dispatcher: <WpAsyncEventHook:0x555a06f0abe0> failed: <WpSiStandardLink:0x555a071c8d80> link failed: 1 of 1 PipeWire links failed to activate
Sep 28 23:13:34 laptop wireplumber[1141]: wp-event-dispatcher: <WpAsyncEventHook:0x555a06f0abe0> failed: <WpSiStandardLink:0x555a071c2350> link failed: 1 of 1 PipeWire links failed to activate
Sep 28 23:09:09 laptop wireplumber[1141]: wp-event-dispatcher: <WpAsyncEventHook:0x555a06f0abe0> failed: <WpSiStandardLink:0x555a071bc4e0> link failed: 1 of 1 PipeWire links failed to activate
Sep 28 22:57:01 laptop systemd[845]: Closed PipeWire Multimedia System Sockets.
Sep 28 22:57:01 laptop systemd[845]: Closed PipeWire PulseAudio.
Sep 28 22:57:01 laptop systemd[845]: Stopped PipeWire Multimedia Service.
Sep 28 22:57:01 laptop systemd[845]: Stopping PipeWire Multimedia Service...
Sep 28 22:56:47 laptop systemd[999]: Started PipeWire PulseAudio.
Sep 28 22:56:46 laptop wireplumber[1141]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
Sep 28 22:56:46 laptop systemd[999]: Started PipeWire Multimedia Service.
Sep 28 22:56:45 laptop systemd[999]: Listening on PipeWire Multimedia System Sockets.
Sep 28 22:56:45 laptop systemd[999]: Listening on PipeWire PulseAudio.
Sep 28 22:54:11 laptop wireplumber[901]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
Sep 28 22:54:11 laptop systemd[845]: Started PipeWire Multimedia Service.
Sep 28 22:54:10 laptop systemd[845]: Listening on PipeWire Multimedia System Sockets.
Sep 28 22:54:10 laptop systemd[845]: Listening on PipeWire PulseAudio.
Target system - details
❯ inxi --filter --verbosity 8
System:
  Kernel: 7.2.8-1-MANJARO arch: x86_64 bits: 64 compiler: gcc v: 16.2.1
    clocksource: tsc avail: acpi_pm
    parameters: BOOT_IMAGE=/@/boot/vmlinuz-7.2-x86_64
    root=UUID=06be9f90-0220-41fe-8631-9371896925b2 rw rootflags=subvol=@
    quiet rd.luks.uuid=1752e6c0-7af4-4ad9-a06c-a700ec520f48
    rd.luks.key=/crypto_keyfile.bin splash apparmor=1 security=apparmor
    udev.log_priority=3
  Desktop: GNOME v: 50.5 tk: GTK v: 3.24.52 wm: gnome-shell
    tools: gsd-screensaver-proxy dm: GDM v: 50.3 Distro: Manjaro
    base: Arch Linux
Machine:
  Type: Convertible System: HP product: HP ENVY x360 Convertible 13-ar0xxx
    v: N/A serial: <superuser required> Chassis: type: 31
    serial: <superuser required>
  Mobo: HP model: 85DE v: 41.36 serial: <superuser required>
    part-nu: 6YD71PA#ABG uuid: <superuser required> Firmware: UEFI vendor: AMI
    v: F.30 date: 10/19/2023
Battery:
  ID-1: BAT0 charge: 22.2 Wh (48.9%) condition: 45.4/45.4 Wh (100%)
    volts: 16.73 min: 15.4 model: 333-1C-52-A KC04053XL type: Li-ion
    serial: <filter> charging: status: charging cycles: N/A
  Device-1: hid-0018:04F3:23AF.0004-battery-7 model: ELAN2514:00 04F3:23AF
    serial: N/A charge: N/A status: N/A
  Device-2: hidpp_battery_0 model: Logitech Wireless Mouse serial: <filter>
    charge: 55% (should be ignored) rechargeable: yes status: discharging
Memory:
  System RAM: total: 8 GiB available: 5.65 GiB used: 1.94 GiB (34.3%)
  Message: For most reliable report, use superuser + dmidecode.
  Array-1: capacity: 32 GiB slots: 2 modules: 2 EC: None
    max-module-size: 16 GiB note: est.
  Device-1: Bottom - on board type: DDR4 detail: synchronous unbuffered
    (unregistered) size: 4 GiB speed: 2400 MT/s volts: note: check curr: 1
    min: 1 max: 1 width (bits): data: 64 total: 64 manufacturer: Hynix
    part-no: HMA851S6CJR6N-VK serial: N/A
  Device-2: Bottom - on board type: DDR4 detail: synchronous unbuffered
    (unregistered) size: 4 GiB speed: 2400 MT/s volts: note: check curr: 1
    min: 1 max: 1 width (bits): data: 64 total: 64 manufacturer: Hynix
    part-no: HMA851S6CJR6N-VK serial: N/A
PCI Slots:
  Permissions: Unable to run dmidecode. Root privileges required.
CPU:
  Info: model: AMD Ryzen 3 3300U with Radeon Vega Mobile Gfx bits: 64
    type: MCP arch: Zen/Zen+ note: check gen: 1 level: v3 note: check
    built: 2019 process: GF 12nm family: 0x17 (23) model-id: 0x18 (24)
    stepping: 1 microcode: 0x8108109
  Topology: cpus: 1x dies: 1 clusters: 1 cores: 4 smt: <unsupported> cache:
    L1: 384 KiB desc: d-4x32 KiB; i-4x64 KiB L2: 2 MiB desc: 4x512 KiB L3: 4 MiB
    desc: 1x4 MiB
  Speed (MHz): avg: 1223 min/max: 1400/3500 boost: enabled scaling:
    driver: acpi-cpufreq governor: schedutil cores: 1: 1223 2: 1223 3: 1223
    4: 1223 bogomips: 16768
  Flags: 3dnowprefetch abm adx aes aperfmperf apic arat avic avx avx2 bmi1
    bmi2 bpext clflush clflushopt clzero cmov cmp_legacy constant_tsc cpb
    cpuid cr8_legacy cx16 cx8 de decodeassists extapic extd_apicid f16c
    flushbyasid fma fpu fsgsbase fxsr fxsr_opt ht hw_pstate ibpb lahf_lm lbrv
    lm mca mce misalignsse mmx mmxext monitor movbe msr mtrr mwaitx
    nonstop_tsc nopl npt nrip_save nx osvw overflow_recov pae pat pausefilter
    pclmulqdq pdpe1gb perfctr_core perfctr_llc perfctr_nb pfthreshold pge pni
    popcnt pse pse36 rapl rdrand rdseed rdtscp rep_good sep sev sev_es sha_ni
    skinit smap smca smep ssbd sse sse2 sse4_1 sse4_2 sse4a ssse3 succor svm
    svm_lock syscall tce topoext tsc tsc_scale v_vmsave_vmload vgif
    vmcb_clean vme vmmcall wdt xgetbv1 xsave xsavec xsaveerptr xsaveopt
  Vulnerabilities:
  Type: gather_data_sampling status: Not affected
  Type: ghostwrite status: Not affected
  Type: indirect_target_selection status: Not affected
  Type: itlb_multihit status: Not affected
  Type: l1tf status: Not affected
  Type: mds status: Not affected
  Type: meltdown status: Not affected
  Type: mmio_stale_data status: Not affected
  Type: old_microcode status: Not affected
  Type: reg_file_data_sampling status: Not affected
  Type: retbleed mitigation: untrained return thunk; SMT disabled
  Type: spec_rstack_overflow mitigation: SMT disabled
  Type: spec_store_bypass mitigation: Speculative Store Bypass disabled via
    prctl
  Type: spectre_v1 mitigation: usercopy/swapgs barriers and __user pointer
    sanitization
  Type: spectre_v2 mitigation: Retpolines; IBPB: conditional; STIBP:
    disabled; RSB filling; PBRSB-eIBRS: Not affected; BHI: Not affected
  Type: srbds status: Not affected
  Type: tsa status: Not affected
  Type: tsx_async_abort status: Not affected
  Type: vmscape mitigation: IBPB before exit to userspace
Graphics:
  Device-1: Advanced Micro Devices [AMD/ATI] Picasso/Raven 2 [Radeon Vega
    Series / Radeon Mobile Series] vendor: Hewlett-Packard driver: amdgpu
    v: kernel arch: GCN-5 code: Vega process: GF 14nm built: 2017-20 pcie:
    gen: 3 speed: 8 GT/s lanes: 16 ports: active: eDP-1 empty: DP-1
    bus-ID: 04:00.0 chip-ID: 1002:15d8 class-ID: 0300 temp: 50.0 C
  Display: wayland server: Xwayland v: 24.1.13 compositor: gnome-shell
    driver: gpu: amdgpu display-ID: 0
  Monitor-1: eDP-1 model: AU Optronics 0x572d built: 2018 res: 1920x1080
    dpi: 166 gamma: 1.2 chroma: red: x: 0.647 y: 0.329 green: x: 0.290 y: 0.608
    blue: x: 0.153 y: 0.055 white: x: 0.314 y: 0.329
    size: 293x165mm (11.54x6.5") diag: 336mm (13.2") ratio: 16:9
    modes: 1920x1080, 1680x1050, 1280x1024, 1440x900, 1280x800, 1280x720,
    1024x768, 800x600, 640x480
  EDID-Warnings: 1: parse_edid: unknown flag 2
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: radeonsi surfaceless: drv: radeonsi wayland:
    drv: radeonsi x11: drv: radeonsi
  API: OpenGL v: 4.6 vendor: amd mesa v: 26.2.3-arch1.1 glx-v: 1.4
    direct-render: yes renderer: AMD Radeon Vega 6 Graphics (radeonsi raven ACO
    DRM 3.64 7.2.8-1-MANJARO) device-ID: 1002:15d8 memory: 1.95 GiB
    unified: yes display-ID: :0.0
  Info: Tools: api: eglinfo,glxinfo x11: xprop,xrandr
Audio:
  Device-1: Advanced Micro Devices [AMD/ATI] Raven/Raven2/Fenghuang HDMI/DP
    Audio vendor: Hewlett-Packard driver: snd_hda_intel v: kernel pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 04:00.1 chip-ID: 1002:15de class-ID: 0403
  Device-2: Advanced Micro Devices [AMD] Audio Coprocessor
    vendor: Hewlett-Packard driver: snd_pci_acp3x v: kernel
    alternate: snd_rn_pci_acp3x, snd_pci_acp5x, snd_pci_acp6x, snd_acp_pci,
    snd_pci_ps, snd_sof_amd_renoir, snd_sof_amd_rembrandt,
    snd_sof_amd_vangogh, snd_sof_amd_acp63, snd_sof_amd_acp70 pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 04:00.5 chip-ID: 1022:15e2 class-ID: 0480
  Device-3: Advanced Micro Devices [AMD] Ryzen HD Audio
    vendor: Hewlett-Packard driver: snd_hda_intel v: kernel pcie: gen: 3
    speed: 8 GT/s lanes: 16 bus-ID: 04:00.6 chip-ID: 1022:15e3 class-ID: 0403
  Device-4: MCS NuPrime IDA-8 driver: snd-usb-audio type: USB rev: 2.0
    speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 1-3:2 chip-ID: 16d0:09d8
    class-ID: fe01
  API: ALSA v: k7.2.8-1-MANJARO status: kernel-api with: aoss
    type: oss-emulator tools: alsactl,alsamixer,amixer
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: JACK v: 1.9.22 status: off tools: N/A
  Server-3: PipeWire v: 1.6.9 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Realtek RTL8822BE 802.11a/b/g/n/ac WiFi adapter
    vendor: Hewlett-Packard driver: rtw88_8822be v: kernel pcie: gen: 1
    speed: 2.5 GT/s lanes: 1 port: f000 bus-ID: 02:00.0 chip-ID: 10ec:b822
    class-ID: 0280
  IF: wlo1 state: up mac: <filter>
  IP v4: <filter> type: dynamic noprefixroute scope: global
    broadcast: <filter>
  IP v6: <filter> type: noprefixroute scope: link
  Info: services: NetworkManager, systemd-timesyncd, wpa_supplicant
  WAN IP: <filter>
Bluetooth:
  Device-1: Realtek Bluetooth 4.2 Adapter driver: btusb v: 0.8 type: USB
    rev: 1.1 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-2:2 chip-ID: 0bda:b00b
    class-ID: e001 serial: <filter>
  Report: rfkill ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
    rfk-block: hardware: no software: yes address: see --recommends
Logical:
  Message: No logical block device data found.
  Device-1: luks-1752e6c0-7af4-4ad9-a06c-a700ec520f48 maj-min: 253:0
    type: LUKS dm: dm-0 size: 238.18 GiB
  Components:
  p-1: nvme0n1p2 maj-min: 259:2 size: 238.18 GiB
RAID:
  Message: No RAID data found.
Drives:
  Local Storage: total: 238.47 GiB used: 22.83 GiB (9.6%)
  SMART Message: Required tool smartctl not installed. Check --recommends
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: LITE-ON model: CA3-8D256-HP
    size: 238.47 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: A381 temp: 28.9 C scheme: GPT
  Message: No optical or floppy data found.
Partition:
  ID-1: / raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 22.83 GiB (9.6%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-1752e6c0-7af4-4ad9-a06c-a700ec520f48 label: N/A
    uuid: 06be9f90-0220-41fe-8631-9371896925b2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 984 KiB (0.3%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1 label: N/A
    uuid: FE9F-41AD
  ID-3: /home raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 22.83 GiB (9.6%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-1752e6c0-7af4-4ad9-a06c-a700ec520f48 label: N/A
    uuid: 06be9f90-0220-41fe-8631-9371896925b2
  ID-4: /swap raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 22.83 GiB (9.6%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-1752e6c0-7af4-4ad9-a06c-a700ec520f48 label: N/A
    uuid: 06be9f90-0220-41fe-8631-9371896925b2
  ID-5: /var/cache raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 22.83 GiB (9.6%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-1752e6c0-7af4-4ad9-a06c-a700ec520f48 label: N/A
    uuid: 06be9f90-0220-41fe-8631-9371896925b2
  ID-6: /var/log raw-size: 238.18 GiB size: 238.18 GiB (100.00%)
    used: 22.83 GiB (9.6%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
    mapped: luks-1752e6c0-7af4-4ad9-a06c-a700ec520f48 label: N/A
    uuid: 06be9f90-0220-41fe-8631-9371896925b2
Swap:
  Kernel: swappiness: 60 (default) cache-pressure: 100 (default) zswap: yes
    compressor: zstd max-pool: 20%
  ID-1: swap-1 type: file size: 3 GiB used: 0 KiB (0.0%) priority: -1
    file: /swap/swapfile
Unmounted:
  Message: No unmounted partitions found.
USB:
  Hub-1: 1-0:1 info: hi-speed hub with single TT ports: 4 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 1-2:4 info: Logitech Nano Receiver type: keyboard,mouse
    driver: logitech-djreceiver,usbhid interfaces: 2 rev: 2.0
    speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1 power: 98mA
    chip-ID: 046d:c534 class-ID: 0301
  Device-2: 1-3:2 info: MCS NuPrime IDA-8 type: audio driver: snd-usb-audio
    interfaces: 3 rev: 2.0 speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0
    chip-ID: 16d0:09d8 class-ID: fe01
  Device-3: 1-4:3 info: Synaptics type: <vendor specific> driver: N/A
    interfaces: 1 rev: 2.0 speed: 12 Mb/s (1.4 MiB/s) lanes: 1 mode: 1.1
    power: 100mA chip-ID: 06cb:00c9 class-ID: ff00 serial: <filter>
  Hub-2: 2-0:1 info: super-speed hub ports: 4 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
  Hub-3: 3-0:1 info: hi-speed hub with single TT ports: 2 rev: 2.0
    speed: 480 Mb/s (57.2 MiB/s) lanes: 1 mode: 2.0 chip-ID: 1d6b:0002
    class-ID: 0900
  Device-1: 3-2:2 info: Realtek Bluetooth 4.2 Adapter type: bluetooth
    driver: btusb interfaces: 2 rev: 1.1 speed: 12 Mb/s (1.4 MiB/s) lanes: 1
    mode: 1.1 power: 500mA chip-ID: 0bda:b00b class-ID: e001 serial: <filter>
  Hub-4: 4-0:1 info: super-speed hub ports: 1 rev: 3.1
    speed: 10 Gb/s (1.16 GiB/s) lanes: 1 mode: 3.2 gen-2x1 chip-ID: 1d6b:0003
    class-ID: 0900
Sensors:
  System Temperatures: cpu: 50.1 C mobo: N/A gpu: amdgpu temp: 50.0 C
  Fan Speeds (rpm): N/A
Repos:
  Packages: pm: pacman pkgs: 1276 libs: 377 tools: gnome-software,pamac
    pm: flatpak pkgs: 0
  Active pacman repo servers in: /etc/pacman.d/mirrorlist
    1: https://mirrors.cicku.me/manjaro/unstable/$repo/$arch
    2: https://mirrors2.manjaro.org/unstable/$repo/$arch
    3: https://mirrors.manjaro.org/repo/unstable/$repo/$arch
Processes:
  CPU top: 5 of 294
  1: cpu: 23.2% command: kgx pid: 4766 mem: 109.9 MiB (1.8%)
  2: cpu: 13.8% command: firefox pid: 4085 mem: 525.1 MiB (9.0%)
  3: cpu: 8.2% command: firefox pid: 4482 mem: 310.7 MiB (5.3%)
  4: cpu: 5.8% command: firefox pid: 4401 mem: 352.7 MiB (6.0%)
  5: cpu: 3.5% command: zsh pid: 4775 mem: 8.93 MiB (0.1%)
  Memory top: 5 of 294
  1: mem: 525.1 MiB (9.0%) command: firefox pid: 4085 cpu: 13.8%
  2: mem: 352.7 MiB (6.0%) command: firefox pid: 4401 cpu: 5.8%
  3: mem: 313.7 MiB (5.4%) command: gnome-shell pid: 1865 cpu: 0.8%
  4: mem: 310.7 MiB (5.3%) command: firefox pid: 4482 cpu: 8.2%
  5: mem: 109.9 MiB (1.8%) command: kgx pid: 4766 cpu: 23.2%
Info:
  Processes: 294 Power: uptime: 52m states: freeze,mem,disk suspend: s2idle
    wakeups: 0 hibernate: shutdown avail: reboot,suspend,test_resume
    image: 1.8 GiB services: gsd-power, power-profiles-daemon, upowerd
    Init: systemd v: 261 default: graphical tool: systemctl
  Compilers: gcc: 16.2.1 Shell: Zsh v: 5.9.2 running-in: kgx inxi: 3.3.41
❯ systemctl --user status pipewire
* pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
     Active: active (running) since Mon 2026-09-28 22:56:29 NZDT; 53min ago
 Invocation: 3ebe67134ffc419c90447fb7491a9514
TriggeredBy: * pipewire.socket
   Main PID: 2209 (pipewire)
      Tasks: 3 (limit: 6850)
     Memory: 6.6M (peak: 8.4M)
        CPU: 56ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             `-2209 /usr/bin/pipewire

Sep 28 22:56:29 notebook systemd[1715]: Started PipeWire Multimedia Service.
Sep 28 22:56:29 notebook pipewire[2209]: mod.rtp-source: sess.latency.msec 100.000000 should be an integer multiple of rtp.ptime 6.458333
❯  wpctl status
PipeWire 'pipewire-0' [1.6.9, rousseau@notebook, cookie:2771941719]
 └─ Clients:
        33. pipewire                            [1.6.9, rousseau@notebook, pid:2213]
        34. WirePlumber                         [1.6.9, rousseau@notebook, pid:2211]
        35. pipewire                            [1.6.9, rousseau@notebook, pid:2209]
        46. WirePlumber [client]                [1.6.9, rousseau@notebook, pid:2211]
        49. GNOME Volume Control Media Keys     [1.6.9, rousseau@notebook, pid:1987]
        71. gnome-shell                         [1.6.9, rousseau@notebook, pid:1865]
        72. GNOME Shell Volume Control          [1.6.9, rousseau@notebook, pid:1865]
        73. xdg-desktop-portal                  [1.6.9, rousseau@notebook, pid:2192]
        74. Firefox                             [1.6.9, rousseau@notebook, pid:4085]
        75. Firefox                             [1.6.9, rousseau@notebook, pid:4085]
        76. wpctl                               [1.6.9, rousseau@notebook, pid:6689]

Audio
 ├─ Devices:
 │      50. Raven/Raven2/Fenghuang HDMI/DP Audio Controller [alsa]
 │      51. NuPrime IDA-8                       [alsa]
 │      52. Ryzen HD Audio Controller           [alsa]
 │  
 ├─ Sinks:
 │      57. Ryzen HD Audio Controller Stéréo analogique [vol: 0.42]
 │  *   60. NuPrime IDA-8 Stéréo numérique (IEC958) [vol: 1.00]
 │  
 ├─ Sources:
 │  *   36. RTP Source                          [vol: 1.00]
 │      56. Ryzen HD Audio Controller Stéréo analogique [vol: 1.00]
 │  
 ├─ Filters:
 │  
 └─ Streams:

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.usb-NuPrime_NuPrime_IDA-8-00.iec958-stereo
         1. Audio/Source  rtp-source
❯ sudo ufw status
[sudo] password for rousseau: 
Status: active

To                         Action      From
--                         ------      ----           
46000                      ALLOW       192.168.5.0/24 
❯ ping laptop.lan
PING laptop.lan (192.168.5.163) 56(84) bytes of data.
64 bytes from laptop.lan (192.168.5.163): icmp_seq=1 ttl=64 time=1.91 ms
64 bytes from laptop.lan (192.168.5.163): icmp_seq=2 ttl=64 time=1.50 ms
64 bytes from laptop.lan (192.168.5.163): icmp_seq=3 ttl=64 time=3.44 ms
64 bytes from laptop.lan (192.168.5.163): icmp_seq=4 ttl=64 time=1.66 ms
64 bytes from laptop.lan (192.168.5.163): icmp_seq=5 ttl=64 time=1.59 ms
^C
--- laptop.lan ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 1.499/2.018/3.441/0.723 ms
❯ journalctl --boot --reverse --grep=pipewire
Sep 28 22:56:40 notebook systemd[795]: Closed PipeWire Multimedia System Sockets.
Sep 28 22:56:40 notebook systemd[795]: Closed PipeWire PulseAudio.
Sep 28 22:56:30 notebook systemd[795]: Stopped PipeWire Multimedia Service.
Sep 28 22:56:30 notebook systemd[795]: Stopping PipeWire Multimedia Service...
Sep 28 22:56:30 notebook systemd[795]: Stopped PipeWire PulseAudio.
Sep 28 22:56:30 notebook systemd[795]: Stopping PipeWire PulseAudio...
Sep 28 22:56:29 notebook wireplumber[2211]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
Sep 28 22:56:29 notebook systemd[1715]: Started PipeWire PulseAudio.
Sep 28 22:56:29 notebook systemd[1715]: Started PipeWire Multimedia Service.
Sep 28 22:56:26 notebook systemd[1715]: Listening on PipeWire Multimedia System Sockets.
Sep 28 22:56:26 notebook systemd[1715]: Listening on PipeWire PulseAudio.
Sep 28 22:56:17 notebook wireplumber[1070]: s-monitors-libcamera: PipeWire's libcamera SPA plugin is missing or broken. Some camera types may not be supported.
Sep 28 22:56:17 notebook systemd[795]: Started PipeWire PulseAudio.
Sep 28 22:56:17 notebook systemd[795]: Started PipeWire Multimedia Service.
Sep 28 22:56:14 notebook systemd[795]: Listening on PipeWire Multimedia System Sockets.
Sep 28 22:56:14 notebook systemd[795]: Listening on PipeWire PulseAudio.

References :

https://docs.pipewire.org/page_module_rtp_sink.html
https://docs.pipewire.org/page_module_rtp_source.html
https://github.com/PipeWire/pipewire/blob/master/src/modules/module-rtp-sink.c
https://github.com/PipeWire/pipewire/blob/master/src/modules/module-rtp-source.c
https://github.com/lullabyX/sone


  1. From personal testing, PipeWire ROC works really well, but it doesn’t appear to allow streams at higher bit and sample rates than 16 / 44.1. If I am mistaken, then please let me know. ↩︎

I think @nikgnomic is the resident guru on audio stuff. You should ping him for advice

Thanks, I think I might be missing a configuration for the PipeWire rtp-sap module. I’ll do more reading and testing on this, as it’s not clear to me how it all fits together.

https://docs.pipewire.org/page_module_rtp_sap.html
https://github.com/PipeWire/pipewire/blob/master/src/modules/module-rtp-sap.c

The RTP sink destination.ip address is not consistent with PipeWire Wiki Guide

Guide Network RTP – Point-to-point RTP · PipeWire Wiki · GitLab

To set up a point-to-point connection between a sender and a receiver you need to dedicate a port, let’s say 46000. You also need the IP address of the receiver, say 192.168.1.39

On the sender side (sink), make a file ~/.config/pipewire/pipewire.conf.d/20-rtp-sink.conf with the content:

context.modules = [
{   name = libpipewire-module-rtp-sink
    args = {
        destination.ip = "192.168.1.39"
        destination.port = 46000
        stream.props = {
            media.class = "Audio/Sink"
            node.name = "rtp-sink"
        }
    }
}
]

On the receiver side (source), make a file ~/.config/pipewire/pipewire.conf.d/20-rtp-source.conf with the content:

context.modules = [
{   name = libpipewire-module-rtp-source
    args = {
        source.ip = "0.0.0.0"
        source.port = 46000
        sess.ignore-ssrc = true         # so that we can restart the sender
        stream.props = {
            media.class = "Audio/Source"
            node.name = "rtp-source"
        }
    }
}

I suggest edit the sink configuration to use destination.ip = "192.168.5.163"

module-rtp-sap is only needed for streaming to more than one device - Multicast RTP/SAP

Thanks for taking the time to look into this, @nikgnomic, and for the info.

I made the suggested changes and issued systemctl --user restart pipewire at both the sender and the receiver.

At the sender, the mod.rtp-sink: (x suppressed) sendmsg() failed messages that were previously reported at the bottom of the output of systemctl --user status pipewire have now disappeared.

However, at the receiver, the data still does not appear (no data visible, no audio output at receiver speakers).

Details below :

Sender system
❯ systemctl --user status pipewire
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
     Active: active (running) since Sat 2026-10-03 23:39:19 NZDT; 8s ago
 Invocation: 66632371ca564502ac20a54a80911570
TriggeredBy: ● pipewire.socket
   Main PID: 25082 (pipewire)
      Tasks: 3 (limit: 18708)
     Memory: 8.2M (peak: 8.3M)
        CPU: 202ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─25082 /usr/bin/pipewire

Oct 03 23:39:19 laptop systemd[1002]: Started PipeWire Multimedia Service.
❯ pw-top
S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR FORMAT           NAME                                                                                                                                       
R   30    256  48000 281.2us   2.8us  0.05  0.00    0                  Dummy-Driver
R   42    310  48000  31.7us 102.7us  0.01  0.02    0    S16BE 2 48000  + rtp-sink
R  102   3969  44100  40.8us  95.7us  0.01  0.02    0    S16LE 2 44100  + sone
S   31      0      0    ---     ---   ---   ---     0                  Freewheel-Driver
S   58      0      0    ---     ---   ---   ---     0                  Midi-Bridge
S   61      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI3__sink
S   62      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI2__sink
S   63      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__HDMI1__sink
S   64      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Speaker__sink
S   65      0      0    ---     ---   ---   ---     0                  alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic2__source
S   66      0      0    ---     ---   ---   ---     0                  alsa_input.pci-0000_00_1f.3-platform-skl_hda_dsp_generic.HiFi__Mic1__source
S   67      0      0    ---     ---   ---   ---     0                  bluez_midi.server
S   96      0      0    ---     ---   ---   ---     0                  v4l2_input.pci-0000_00_14.0-usb-0_8_1.0
S   98      0      0    ---     ---   ---   ---     0                  v4l2_input.pci-0000_00_14.0-usb-0_8_1.2
❯ wpctl status
PipeWire 'pipewire-0' [1.6.9, rousseau@laptop, cookie:828067997]
 └─ Clients:
        33. plasmashell                         [1.6.9, rousseau@laptop, pid:1236]
        34. xdg-desktop-portal                  [1.6.9, rousseau@laptop, pid:1457]
        35. pipewire                            [1.6.9, rousseau@laptop, pid:21273]
        36. Firefox                             [1.6.9, rousseau@laptop, pid:16992]
        37.                                     [1.6.9, rousseau@laptop, pid:1236]
        38. libcanberra                         [1.6.9, rousseau@laptop, pid:1224]
        39. libcanberra                         [1.6.9, rousseau@laptop, pid:1236]
        40.                                     [1.6.9, rousseau@laptop, pid:1224]
        41. pipewire                            [1.6.9, rousseau@laptop, pid:21269]
        43. WirePlumber                         [1.6.9, rousseau@laptop, pid:21270]
        56. WirePlumber [client]                [1.6.9, rousseau@laptop, pid:21270]
       100. kwin_wayland                        [1.6.9, rousseau@laptop, pid:1096]
       101. sone                                [1.6.9, rousseau@laptop, pid:21446]
       107. pw-top                              [1.6.9, rousseau@laptop, pid:21874]
       108. wpctl                               [1.6.9, rousseau@laptop, pid:23218]

Audio
 ├─ Devices:
 │      57. 400 Series Chipset Family On-Package HD Audio [alsa]
 │  
 ├─ Sinks:
 │  *   42. laptop                              [vol: 1.00]
 │      61. 400 Series Chipset Family On-Package HD Audio HDMI / DisplayPort 3 Output (Stereo) [vol: 1.00]
 │      62. 400 Series Chipset Family On-Package HD Audio HDMI / DisplayPort 2 Output (Stereo) [vol: 1.00]
 │      63. 400 Series Chipset Family On-Package HD Audio HDMI / DisplayPort 1 Output (Stereo) [vol: 1.00]
 │      64. 400 Series Chipset Family On-Package HD Audio Speaker [vol: 0.40]
 │  
 ├─ Sources:
 │      65. 400 Series Chipset Family On-Package HD Audio Stereo Microphone [vol: 1.00]
 │  *   66. 400 Series Chipset Family On-Package HD Audio Digital Microphone [vol: 1.00 MUTED]
 │  
 ├─ Filters:
 │  
 └─ Streams:
       102. sone                                                        
            105. output_FR       > laptop:send_FR       [active]
            106. output_FL       > laptop:send_FL       [active]

Video
 ├─ Devices:
 │      70. Integrated Camera                   [v4l2]
 │      71. Integrated Camera                   [v4l2]
 │      72. Integrated Camera                   [v4l2]
 │      73. Integrated Camera                   [v4l2]
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  *   96. Integrated Camera (V4L2)           
 │      98. Integrated Camera (V4L2)           
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    rtp-sink
❯ ls ~/.config/pipewire/pipewire.conf.d
20-rtp-sink.conf  roc-sink.conf.bak  sample-rates.conf
❯ cat ~/.config/pipewire/pipewire.conf.d/20-rtp-sink.conf
context.modules = [
{   name = libpipewire-module-rtp-sink
    args = {
        destination.ip = "192.168.5.111"  # same result if destination.ip = "192.168.5.0"
        destination.port = 46000
        stream.props = {
            media.class = "Audio/Sink"
            node.name = "rtp-sink"
        }
    }
}
]
❯ LANG=C ping notebook
PING notebook.lan (192.168.5.111) 56(84) bytes of data.
64 bytes from notebook.local (192.168.5.111): icmp_seq=1 ttl=64 time=2.37 ms
64 bytes from notebook.local (192.168.5.111): icmp_seq=2 ttl=64 time=2.29 ms
64 bytes from notebook.local (192.168.5.111): icmp_seq=3 ttl=64 time=1.96 ms
64 bytes from notebook.local (192.168.5.111): icmp_seq=4 ttl=64 time=1.42 ms
64 bytes from notebook.local (192.168.5.111): icmp_seq=5 ttl=64 time=1.44 ms
^C
--- notebook.lan ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 1.424/1.896/2.371/0.403 ms
Receiver system
❯ systemctl --user status pipewire
● pipewire.service - PipeWire Multimedia Service
     Loaded: loaded (/usr/lib/systemd/user/pipewire.service; disabled; preset: enabled)
     Active: active (running) since Sun 2026-10-04 00:06:53 NZDT; 6s ago
 Invocation: c37097730b394a27baddd340fc0b6970
TriggeredBy: ● pipewire.socket
   Main PID: 7516 (pipewire)
      Tasks: 3 (limit: 6850)
     Memory: 6M (peak: 6.4M)
        CPU: 55ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/pipewire.service
             └─7516 /usr/bin/pipewire

Oct 04 00:06:53 notebook systemd[1701]: Started PipeWire Multimedia Service.
Oct 04 00:06:53 notebook pipewire[7516]: mod.rtp-source: sess.latency.msec 100.000000 should be an integer multiple of rtp.ptime 6.458333
❯ pw-top
S   ID  QUANT   RATE    WAIT    BUSY   W/Q   B/Q  ERR FORMAT           NAME                                                                                                                                         
S   30      0      0    ---     ---   ---   ---     0                  Dummy-Driver
S   31      0      0    ---     ---   ---   ---     0                  Freewheel-Driver
S   35      0      0    ---     ---   ---   ---     0                  rtp-source
S   53      0      0    ---     ---   ---   ---     0                  Midi-Bridge
S   60      0      0    ---     ---   ---   ---     0                  alsa_output.pci-0000_04_00.6.analog-stereo
S   61      0      0    ---     ---   ---   ---     0                  alsa_input.pci-0000_04_00.6.analog-stereo
S   38      0      0    ---     ---   ---   ---     0                  bluez_midi.server
❯ wpctl status
PipeWire 'pipewire-0' [1.6.9, rousseau@notebook, cookie:3669951838]
 └─ Clients:
        33. xdg-desktop-portal                  [1.6.9, rousseau@notebook, pid:2155]
        34. pipewire                            [1.6.9, rousseau@notebook, pid:7516]
        36. WirePlumber                         [1.6.9, rousseau@notebook, pid:7519]
        37. pipewire                            [1.6.9, rousseau@notebook, pid:7524]
        39. Firefox                             [1.6.9, rousseau@notebook, pid:3480]
        50. WirePlumber [client]                [1.6.9, rousseau@notebook, pid:7519]
        66. gnome-shell                         [1.6.9, rousseau@notebook, pid:1858]
        67. GNOME Volume Control Media Keys     [1.6.9, rousseau@notebook, pid:1966]
        68. GNOME Shell Volume Control          [1.6.9, rousseau@notebook, pid:1858]
        69. pw-top                              [1.6.9, rousseau@notebook, pid:7698]
        70. wpctl                               [1.6.9, rousseau@notebook, pid:7730]

Audio
 ├─ Devices:
 │      51. Raven/Raven2/Fenghuang HDMI/DP Audio Controller [alsa]
 │      52. Ryzen HD Audio Controller           [alsa]
 │  
 ├─ Sinks:
 │  *   60. Ryzen HD Audio Controller Stéréo analogique [vol: 0.65]
 │  
 ├─ Sources:
 │  *   35. notebook                            [vol: 1.00]
 │      61. Ryzen HD Audio Controller Stéréo analogique [vol: 1.00]
 │  
 ├─ Filters:
 │  
 └─ Streams:

Video
 ├─ Devices:
 │  
 ├─ Sinks:
 │  
 ├─ Sources:
 │  
 ├─ Filters:
 │  
 └─ Streams:

Settings
 └─ Default Configured Devices:
         0. Audio/Sink    alsa_output.pci-0000_04_00.6.analog-stereo
         1. Audio/Source  rtp-source
❯ ls ~/.config/pipewire/pipewire.conf.d
20-rtp-source.conf  roc-source.conf.bak  sample-rates.conf
❯ cat ~/.config/pipewire/pipewire.conf.d/20-rtp-source.conf
context.modules = [
{   name = libpipewire-module-rtp-source
    args = {
        source.ip = "0.0.0.0"
        source.port = 46000
        sess.ignore-sess = true
        stream.props = {
            media.class = "Audio/Source"
            node.name = "rtp-source"
        }
    }
}
]
❯ LANG=C ping laptop
PING laptop.lan (192.168.5.163) 56(84) bytes of data.
64 bytes from laptop.local (192.168.5.163): icmp_seq=1 ttl=64 time=303 ms
64 bytes from laptop.local (192.168.5.163): icmp_seq=2 ttl=64 time=295 ms
64 bytes from laptop.local (192.168.5.163): icmp_seq=3 ttl=64 time=283 ms
64 bytes from laptop.local (192.168.5.163): icmp_seq=4 ttl=64 time=340 ms
64 bytes from laptop.local (192.168.5.163): icmp_seq=5 ttl=64 time=329 ms
^C
--- laptop.lan ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 283.435/310.127/340.404/21.365 ms

As an aside, I removed the USB-connected DAC from the receiver to simplify debugging.

Latest data is showing different destination.ip address to original data

❯ cat ~/.config/pipewire/pipewire.conf.d/20-rtp-sink.conf
 
        destination.ip = "192.168.5.111"

For RTP point-to-point streaming the destination.ip should be manually configured to a static IP address instead of using DHCP

Address in screenshot is the static IP address of my system
Gateway is the IP address of my router


If the network connection is configured correctly, there should be an audio input stream from rtp-source in the destination system.

To listen to the input stream, add a loopback in PipeWire to convert the input stream to an output stream

PipeWire: Loopback

This loopback links a source node to a sink node. You can change the target.object properties to match your source/sink node.name.

# ~/.config/pipewire/pipewire.conf.d/my-loopback-0.conf
 
context.modules = [
{   name = libpipewire-module-loopback
    args = {
        capture.props = {
            #  if you want to capture sink monitor ports,
            #  uncomment the next line and set the target.object
            #  to the sink name.
            #stream.capture.sink = true
            target.object = "alsa_input.usb-C-Media_Electronics_Inc._TONOR_TC-777_Audio_Device-00.mono-fallback"
            node.passive = true
            node.dont-reconnect = true
        }
        playback.props = {
            target.object = "alsa_output.usb-0d8c_USB_Sound_Device-00.analog-surround-71"
            node.dont-reconnect = true
            node.passive = true
        }
    }
}
]

Thanks, I have now set a static IP address at the receiver to eliminate possible DHCP issues.

Previously, I manually verified that destination.ip in the sender 20-rtp-sink.conf file matched the DCHP-assigned receiver IP address.

After disabling DHCP at the receiver, pw-top still shows the output stream at the sender (same as before). However, pw-top still doesn’t show the input stream at the receiver (same as before).

Also, ping still shows that the sender can reach the receiver (same as before) and that the receiver can reach the sender (same as before) :

Sender to receiver
❯ LANG=C ping 192.168.5.111
PING 192.168.5.111 (192.168.5.111) 56(84) bytes of data.
64 bytes from 192.168.5.111: icmp_seq=1 ttl=64 time=2.01 ms
64 bytes from 192.168.5.111: icmp_seq=2 ttl=64 time=2.37 ms
64 bytes from 192.168.5.111: icmp_seq=3 ttl=64 time=1.93 ms
64 bytes from 192.168.5.111: icmp_seq=4 ttl=64 time=22.4 ms
64 bytes from 192.168.5.111: icmp_seq=5 ttl=64 time=61.2 ms
^C
--- 192.168.5.111 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4004ms
rtt min/avg/max/mdev = 1.930/17.977/61.172/22.985 ms
Receiver to sender
❯ LANG=C ping 192.168.5.163
PING 192.168.5.163 (192.168.5.163) 56(84) bytes of data.
64 bytes from 192.168.5.163: icmp_seq=1 ttl=64 time=36.6 ms
64 bytes from 192.168.5.163: icmp_seq=2 ttl=64 time=73.8 ms
64 bytes from 192.168.5.163: icmp_seq=3 ttl=64 time=105 ms
64 bytes from 192.168.5.163: icmp_seq=4 ttl=64 time=140 ms
64 bytes from 192.168.5.163: icmp_seq=5 ttl=64 time=6.16 ms
^C
--- 192.168.5.163 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 6.156/72.278/139.531/47.461 ms

To confirm, is the loopback configuration only needed at the receiver ?

Also, I may be misunderstanding the docs, but should target.object of capture.props be for the input stream node itself (not visible from wpctl status at the receiver) ?

Interestingly, wpctl status does show (same as before) :

  • at the sender, a sink with a node name / description of laptop (sender hostname).
  • at the receiver, a source with a node name / description of notebook (receiver hostname).

The hostnames are neither set in the sender 20-rtp-sink.conf file nor the receiver 20-rtp-source.conf file, so PipeWire / WirePlumber appears to be automatically detecting the hostnames from elsewhere.

Thanks again, I appreciate all the help as even the ArchWiki itself doesn’t discuss PipeWire RTP configuration.

ADDENDUM :

Adding the receiver loopback config below and issuing systemctl --user restart pipewire at both the receiver and the sender have no effect : pw-top and wpctl status show the same output as before at both the receiver and the sender.

Receiver loopback config
❯ cat ~/.config/pipewire/pipewire.conf.d/30-loopback.conf
context.modules = [
{   name = libpipewire-module-loopback
    args = {
        capture.props = {
            #  if you want to capture sink monitor ports,
            #  uncomment the next line and set the target.object
            #  to the sink name.
            stream.capture.sink = true
            target.object = "rtp-source"    # no change if target.object = "notebook"
            node.passive = true
            node.dont-reconnect = true
        }
        playback.props = {
            target.object = "alsa_output.pci-0000_04_00.6.analog-stereo"
            node.dont-reconnect = true
            node.passive = true
        }
    }
}
]