You are not logged in.

#1 Yesterday 20:06:35

aksdb
Member
Registered: 2007-10-07
Posts: 42

Pipewire: suddenly no duplex profiles anymore

The problem

So I have a weird issue. I suddenly am no longer able to use my mic and speaker at the same time. Upon looking in pavucontrol, I see, that I can no longer select duplex profiles; I can only choose input or output.

What I tried
  • Delete ~/.config/pipewire ~/.config/wireplumber ~/.local/state/pipewire ~/.local/state/wireplumber

  • Restart

  • Switch between LTS and latest kernel

Further analysis

Hardware problems might be the first guess, but I have a second machine on my desk which also runs arch and I switch between them with a USB KVM. So I can simply switch over ... and there it works. Same setup (same kernel, also pipewire, also wireplumber).

On my current machine (where it doesn't work), I can see this:

> wpctl inspect 58
id 58, type PipeWire:Interface:Device
    alsa.card = "1"
    alsa.card_name = "fifine SC3"
    alsa.components = "USB3142:0c33"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "SC3"
    alsa.long_card_name = "MV-SILICON fifine SC3 at usb-0000:00:14.0-7.2, full speed"
    alsa.mixer_name = "USB Mixer"
    api.acp.auto-port = "false"
    api.acp.auto-profile = "false"
    api.alsa.card = "1"
    api.alsa.card.longname = "MV-SILICON fifine SC3 at usb-0000:00:14.0-7.2, full speed"
    api.alsa.card.name = "fifine SC3"
    api.alsa.path = "hw:1"
    api.alsa.split-enable = "true"
    api.alsa.use-acp = "true"
    api.dbus.ReserveDevice1 = "Audio1"
    api.dbus.ReserveDevice1.Priority = "-20"
  * client.id = "40"
  * device.api = "alsa"
    device.bus = "usb"
    device.bus-id = "usb-MV-SILICON_fifine_SC3_20190808-00"
    device.bus-path = "pci-0000:00:14.0-usb-0:7.2:1.0"
  * device.description = "fifine SC3"
    device.enum.api = "udev"
    device.icon-name = "audio-card-analog-usb"
  * device.name = "alsa_card.usb-MV-SILICON_fifine_SC3_20190808-00"
  * device.nick = "fifine SC3"
    device.plugged.usec = "338365026"
    device.product.id = "0x0c33"
    device.product.name = "fifine SC3"
    device.serial = "MV-SILICON_fifine_SC3_20190808"
    device.string = "1"
    device.subsystem = "sound"
    device.sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.2/1-7.2:1.0/sound/card1"
    device.vendor.id = "0x3142"
    device.vendor.name = "MV-SILICON"
  * factory.id = "15"
  * media.class = "Audio/Device"
  * object.path = "alsa:acp:SC3"
  * object.serial = "130"
    spa.object.id = "4"

> pactl list
...
Card #130
        Name: alsa_card.usb-MV-SILICON_fifine_SC3_20190808-00
        Driver: alsa
        Owner Module: n/a
        Properties:
                device.enum.api = "udev"
                device.api = "alsa"
                media.class = "Audio/Device"
                api.alsa.path = "hw:1"
                api.alsa.card = "1"
                api.alsa.card.name = "fifine SC3"
                api.alsa.card.longname = "MV-SILICON fifine SC3 at usb-0000:00:14.0-7.2, full speed"
                device.plugged.usec = "338365026"
                device.bus_path = "pci-0000:00:14.0-usb-0:7.2:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-7/1-7.2/1-7.2:1.0/sound/card1"
                device.bus-id = "usb-MV-SILICON_fifine_SC3_20190808-00"
                device.bus = "usb"
                device.subsystem = "sound"
                device.vendor.id = "0x3142"
                device.vendor.name = "MV-SILICON"
                device.product.id = "0x0c33"
                device.product.name = "fifine SC3"
                device.serial = "MV-SILICON_fifine_SC3_20190808"
                device.name = "alsa_card.usb-MV-SILICON_fifine_SC3_20190808-00"
                device.description = "fifine SC3"
                device.nick = "fifine SC3"
                device.icon_name = "audio-card-analog-usb"
                api.alsa.use-acp = "true"
                api.acp.auto-profile = "false"
                api.acp.auto-port = "false"
                api.dbus.ReserveDevice1.Priority = "-20"
                api.alsa.split-enable = "true"
                api.dbus.ReserveDevice1 = "Audio1"
                spa.object.id = "4"
                factory.id = "15"
                client.id = "40"
                object.id = "58"
                object.serial = "130"
                object.path = "alsa:acp:SC3"
                alsa.card = "1"
                alsa.card_name = "fifine SC3"
                alsa.long_card_name = "MV-SILICON fifine SC3 at usb-0000:00:14.0-7.2, full speed"
                alsa.driver_name = "snd_usb_audio"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB3142:0c33"
                alsa.id = "SC3"
                device.string = "1"
        Profiles:
                off: Aus (sinks: 0, sources: 0, priority: 0, available: yes)
                output:analog-stereo: Analoges Stereo-Ausgabe (sinks: 1, sources: 0, priority: 6500, available: yes)
                output:iec958-stereo: Digitales Stereo (IEC958)-Ausgabe (sinks: 1, sources: 0, priority: 5500, available: yes)
                output:iec958-ac3-surround-51: Digital Surround 5.1 (IEC958/AC3)-Ausgabe (sinks: 1, sources: 0, priority: 300, available: yes)
                input:analog-stereo: Analoges Stereo-Eingang (sinks: 0, sources: 1, priority: 65, available: yes)
                input:iec958-stereo: Digitales Stereo (IEC958)-Eingang (sinks: 0, sources: 1, priority: 55, available: yes)
                pro-audio: Pro Audio (sinks: 1, sources: 1, priority: 1, available: yes)
        Active Profile: output:analog-stereo
        Ports:
                analog-input-mic: Mikrofon (type: Mic, priority: 8700, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "mic"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "0"
                        Part of profile(s): input:analog-stereo
                iec958-stereo-input: Digitaleingang (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "spdif"
                                card.profile.port = "1"
                        Part of profile(s): input:iec958-stereo
                analog-output: Analoge Ausgabe (type: Analog, priority: 9900, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "analog"
                                card.profile.port = "2"
                        Part of profile(s): output:analog-stereo
                iec958-stereo-output: Digitalausgang (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "spdif"
                                card.profile.port = "3"
                        Part of profile(s): output:iec958-stereo

(as you can see: no duplex profiles)

Same commands on the other machine:

> wpctl inspect 231
id 231, type PipeWire:Interface:Device
    alsa.card = "0"
    alsa.card_name = "fifine SC3"
    alsa.components = "USB3142:0c33"
    alsa.driver_name = "snd_usb_audio"
    alsa.id = "SC3"
    alsa.long_card_name = "MV-SILICON fifine SC3 at usb-0000:00:14.0-6.2, full speed"
    alsa.mixer_name = "USB Mixer"
    api.acp.auto-port = "false"
    api.acp.auto-profile = "false"
    api.alsa.card = "0"
    api.alsa.card.longname = "MV-SILICON fifine SC3 at usb-0000:00:14.0-6.2, full speed"
    api.alsa.card.name = "fifine SC3"
    api.alsa.path = "hw:0"
    api.alsa.split-enable = "true"
    api.alsa.use-acp = "true"
    api.dbus.ReserveDevice1 = "Audio0"
    api.dbus.ReserveDevice1.Priority = "-20"
  * client.id = "41"
  * device.api = "alsa"
    device.bus = "usb"
    device.bus-id = "usb-MV-SILICON_fifine_SC3_20190808-00"
    device.bus-path = "pci-0000:00:14.0-usb-0:6.2:1.0"
  * device.description = "fifine SC3"
    device.enum.api = "udev"
    device.icon-name = "audio-card-analog-usb"
  * device.name = "alsa_card.usb-MV-SILICON_fifine_SC3_20190808-00"
  * device.nick = "fifine SC3"
    device.plugged.usec = "282430922673"
    device.product.id = "0x0c33"
    device.product.name = "fifine SC3"
    device.serial = "MV-SILICON_fifine_SC3_20190808"
    device.string = "0"
    device.subsystem = "sound"
    device.sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6.2/3-6.2:1.0/sound/card0"
    device.vendor.id = "0x3142"
    device.vendor.name = "MV-SILICON"
  * factory.id = "15"
  * media.class = "Audio/Device"
  * object.path = "alsa:acp:SC3"
  * object.serial = "26676"
    spa.object.id = "2"

> pactl list
...
Card #26676
        Name: alsa_card.usb-MV-SILICON_fifine_SC3_20190808-00
        Driver: alsa
        Owner Module: n/a
        Properties:
                device.enum.api = "udev"
                device.api = "alsa"
                media.class = "Audio/Device"
                api.alsa.path = "hw:0"
                api.alsa.card = "0"
                api.alsa.card.name = "fifine SC3"
                api.alsa.card.longname = "MV-SILICON fifine SC3 at usb-0000:00:14.0-6.2, full speed"
                device.plugged.usec = "282430922673"
                device.bus_path = "pci-0000:00:14.0-usb-0:6.2:1.0"
                sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb3/3-6/3-6.2/3-6.2:1.0/sound/card0"
                device.bus-id = "usb-MV-SILICON_fifine_SC3_20190808-00"
                device.bus = "usb"
                device.subsystem = "sound"
                device.vendor.id = "0x3142"
                device.vendor.name = "MV-SILICON"
                device.product.id = "0x0c33"
                device.product.name = "fifine SC3"
                device.serial = "MV-SILICON_fifine_SC3_20190808"
                device.name = "alsa_card.usb-MV-SILICON_fifine_SC3_20190808-00"
                device.description = "fifine SC3"
                device.nick = "fifine SC3"
                device.icon_name = "audio-card-analog-usb"
                api.alsa.use-acp = "true"
                api.acp.auto-profile = "false"
                api.acp.auto-port = "false"
                api.dbus.ReserveDevice1.Priority = "-20"
                api.alsa.split-enable = "true"
                api.dbus.ReserveDevice1 = "Audio0"
                spa.object.id = "2"
                factory.id = "15"
                client.id = "41"
                object.id = "231"
                object.serial = "26676"
                object.path = "alsa:acp:SC3"
                alsa.card = "0"
                alsa.card_name = "fifine SC3"
                alsa.long_card_name = "MV-SILICON fifine SC3 at usb-0000:00:14.0-6.2, full speed"
                alsa.driver_name = "snd_usb_audio"
                alsa.mixer_name = "USB Mixer"
                alsa.components = "USB3142:0c33"
                alsa.id = "SC3"
                device.string = "0"
        Profiles:
                off: Aus (sinks: 0, sources: 0, priority: 0, available: yes)
                output:analog-stereo+input:analog-stereo: Analoges Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: yes)
                output:analog-stereo+input:iec958-stereo: Analoges Stereo-Ausgabe + Digitales Stereo (IEC958)-Eingang (sinks: 1, sources: 1, priority: 6555, available: yes)
                output:analog-stereo: Analoges Stereo-Ausgabe (sinks: 1, sources: 0, priority: 6500, available: yes)
                output:iec958-stereo+input:analog-stereo: Digitales Stereo (IEC958)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 5565, available: yes)
                output:iec958-stereo+input:iec958-stereo: Digitales Stereo Duplex (IEC958) (sinks: 1, sources: 1, priority: 5555, available: yes)
                output:iec958-stereo: Digitales Stereo (IEC958)-Ausgabe (sinks: 1, sources: 0, priority: 5500, available: yes)
                output:iec958-ac3-surround-51+input:analog-stereo: Digital Surround 5.1 (IEC958/AC3)-Ausgabe + Analoges Stereo-Eingang (sinks: 1, sources: 1, priority: 365, available: yes)
                output:iec958-ac3-surround-51+input:iec958-stereo: Digital Surround 5.1 (IEC958/AC3)-Ausgabe + Digitales Stereo (IEC958)-Eingang (sinks: 1, sources: 1, priority: 355, available: yes)
                output:iec958-ac3-surround-51: Digital Surround 5.1 (IEC958/AC3)-Ausgabe (sinks: 1, sources: 0, priority: 300, available: yes)
                input:analog-stereo: Analoges Stereo-Eingang (sinks: 0, sources: 1, priority: 65, available: yes)
                input:iec958-stereo: Digitales Stereo (IEC958)-Eingang (sinks: 0, sources: 1, priority: 55, available: yes)
                pro-audio: Pro Audio (sinks: 1, sources: 1, priority: 1, available: yes)
        Active Profile: output:analog-stereo+input:analog-stereo
        Ports:
                analog-input-mic: Mikrofon (type: Mic, priority: 8700, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "mic"
                                device.icon_name = "audio-input-microphone"
                                card.profile.port = "0"
                        Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-ac3-surround-51+input:analog-stereo
                iec958-stereo-input: Digitaleingang (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "spdif"
                                card.profile.port = "1"
                        Part of profile(s): input:iec958-stereo, output:analog-stereo+input:iec958-stereo, output:iec958-stereo+input:iec958-stereo, output:iec958-ac3-surround-51+input:iec958-stereo
                analog-output: Analoge Ausgabe (type: Analog, priority: 9900, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "analog"
                                card.profile.port = "2"
                        Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-stereo+input:iec958-stereo
                iec958-stereo-output: Digitalausgang (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown)
                        Properties:
                                port.type = "spdif"
                                card.profile.port = "3"
                        Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-stereo+input:iec958-stereo
The question

WTF? That doesn't make any sense. I am bit out of ideas where to look at next or what to try. So ... erm ... does anyone have any ideas here?

Offline

#2 Yesterday 21:17:07

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 74,754

Re: Pipewire: suddenly no duplex profiles anymore

card0 ./. card1  - interference from the other device?

x-ref, https://bbs.archlinux.org/viewtopic.php?id=313047 (in case this is specific to some kernel or pipwire/wireplumber update)

Offline

#3 Today 00:49:29

cryptearth
Member
Registered: 2024-02-03
Posts: 2,068

Re: Pipewire: suddenly no duplex profiles anymore

i remember such issue years ago with an update to the usb_audio driver causing several usb interfaces losing duplex
back then my roland tri capture was affected while my behringer x802 kept working
have you updated kernel? give previous/lts a try

Offline

#4 Today 06:38:24

aksdb
Member
Registered: 2007-10-07
Posts: 42

Re: Pipewire: suddenly no duplex profiles anymore

Both machines are (or rather were, when I noticed the issue) on roughly the same package versions (I updated them within 24h). Both run kernel 7.0.0. The machine with the problem is now updated to 7.0.1; same issue. Kernel 6.18.24 also shows the issue.

I can't get rid of card0, since that's the HDMI exposed by the graphics card. For fun I enabled the onboard soundcard, and that shows duplex entries; so it's only this one USB device and also only on this one machine. I also connected another USB soundcard which also has duplex devices.

There must be some other soft-rule somewhere that interferes here, and I have no clue which and where.

Offline

#5 Today 08:18:52

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 74,754

Re: Pipewire: suddenly no duplex profiles anymore

I can't get rid of card0, since that's the HDMI exposed by the graphics card

https://wiki.archlinux.org/title/Kernel_parameters

module_blacklist=snd-hda-codec-hdmi

Does it work if you get rid of the kvm switch and attach the usb directly?

Offline

#6 Today 09:58:46

Lone_Wolf
Administrator
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 14,925

Re: Pipewire: suddenly no duplex profiles anymore

Both machines are (or rather were, when I noticed the issue) on roughly the same package versions (I updated them within 24h). Both run kernel 7.0.0. The machine with the problem is now updated to 7.0.1; same issue. Kernel 6.18.24 also shows the issue.

linux 7.x.y hasn't entered archlinux repos yet, where did you get it from ?

Is the 6.18.24 kernel linux-lts from arch repos or does it come from somewhere else ?


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.

clean chroot building not flexible enough ?
Try clean chroot manager by graysky

Online

#7 Today 12:02:06

aksdb
Member
Registered: 2007-10-07
Posts: 42

Re: Pipewire: suddenly no duplex profiles anymore

Lone_Wolf wrote:

Both machines are (or rather were, when I noticed the issue) on roughly the same package versions (I updated them within 24h). Both run kernel 7.0.0. The machine with the problem is now updated to 7.0.1; same issue. Kernel 6.18.24 also shows the issue.

linux 7.x.y hasn't entered archlinux repos yet, where did you get it from ?

Is the 6.18.24 kernel linux-lts from arch repos or does it come from somewhere else ?

The non-lts kernel is from CachyOS repos so I don't need zfs-dkms. Everything else (including the LTS kernel I tried) is Arch.

Offline

#8 Today 12:19:44

aksdb
Member
Registered: 2007-10-07
Posts: 42

Re: Pipewire: suddenly no duplex profiles anymore

seth wrote:

I can't get rid of card0, since that's the HDMI exposed by the graphics card

https://wiki.archlinux.org/title/Kernel_parameters

module_blacklist=snd-hda-codec-hdmi

Ah of course, I could have thought of checking the loaded modules. I didn't consider (although it's obvious) that has a dedicated module I can block.
Didn't change the symptom, though.

seth wrote:

Does it work if you get rid of the kvm switch and attach the usb directly?

Ah dang, that was too simple and obvious *facepalm*
Indeed it works without the KVM. It doesn't work on a different port on the same KVM (so it doesn't seem to be related to the adressing of the device). What did help was removing the Logitech Bolt Receiver. So basically: disconnecting the receiver, reconnecting the sound device, then reconnecting the receiver works.

At least another path for further investigation. It shouldn't be a power issue (the kvm is powered separately and the same devices work on the second machine). It also doesn't seem to be general conflict, otherwise it shouldn't depend on the order I connect the devices in.

Thanks for pushing me in the right direction. I'll dig a bit deeper and report back when I find something (in case someone else stumbles on such an issue in the future).

Last edited by aksdb (Today 12:25:11)

Offline

#9 Today 13:04:59

cryptearth
Member
Registered: 2024-02-03
Posts: 2,068

Re: Pipewire: suddenly no duplex profiles anymore

got the kvm a firmware update recently?
also: "power" in these terms doesn't mean "where come the amps from" but rather the logical power state the ports are set to
the power requirement and state are handeled in protocol - it could be that the kvm filters out some of them to set its own port but doesn't forward them to the host - cofusing the driver on it side like "how does a device which requires high power work properly when it never requests this mode?"
btw: ZFS upstream has not released 2.4.2 (or 2.3.7) yet - so there's no official support for zfs on 7.0 yet

Last edited by cryptearth (Today 13:06:14)

Offline

#10 Today 14:12:20

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 74,754

Re: Pipewire: suddenly no duplex profiles anymore

What did help was removing the Logitech Bolt Receiver. So basically: disconnecting the receiver, reconnecting the sound device, then reconnecting the receiver works.

Does it still work when (permanently) connecting bolt receiver and DAC directly to the host?
("Is it the KVM or the bolt?")

Any errors in the journal? Do bolt recevier and DAC initialize in reversed order between the good and the bad system?

Offline

Board footer

Powered by FluxBB