Score:1

No sound output from USB headsets on Ubuntu 21.04

jp flag

I just upgraded from Ubuntu 20.04 to 21.04. Since the upgrade, I'm unable to get any sound output to USB headsets. The microphone on the headsets works. Output to the built-in speakers or headset jack also works.

This worked perfectly on Ubuntu 20.04.

In Sound settings, if I try to test the headphones, no speakers are displayed. This happens for the two USB headsets I tested (Sennheiser PC 8 and Plantronics 5200)

From what I understand, the audio implementation was changed from Pulseaudio to Pipewire. Anything I find via Google still refers to Pulseaudio. So I'm a bit lost.

Any advice on how to debug this issue would be greatly appreciated.

No speakers shown on test popup

Update:

pactl list cards

Shows the headset. I believe this looks ok... but I'm not an expert.

Card #71
Name: alsa_card.usb-Sennheiser_Communications_Sennheiser_USB_headset-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 = "Sennheiser USB headset"
    api.alsa.card.longname = "Sennheiser Communications Sennheiser USB headset at usb-0000:00:14.0-2, full sp"
    device.plugged.usec = "998216405"
    device.bus_path = "pci-0000:00:14.0-usb-0:2:1.0"
    device.sysfs.path = "/sys/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/sound/card1"
    device.bus-id = "usb-Sennheiser_Communications_Sennheiser_USB_headset-00"
    device.bus = "usb"
    device.subsystem = "sound"
    device.vendor.id = "5013"
    device.vendor.name = "Sennheiser Communications"
    device.product.id = "37"
    device.product.name = "Headset [PC 8]"
    device.serial = "Sennheiser_Communications_Sennheiser_USB_headset"
    device.form_factor = "headset"
    device.name = "alsa_card.usb-Sennheiser_Communications_Sennheiser_USB_headset-00"
    device.description = "Headset [PC 8]"
    device.nick = "Sennheiser USB headset"
    device.icon_name = "audio-headset-usb"
    api.alsa.use-acp = "true"
    api.acp.auto-profile = "false"
    api.acp.auto-port = "false"
    api.dbus.ReserveDevice1 = "Audio1"
    factory.id = "14"
    client.id = "31"
    object.id = "71"
    object.path = "alsa:pcm:1"
    alsa.card = "1"
    alsa.card_name = "Sennheiser USB headset"
    alsa.long_card_name = "Sennheiser Communications Sennheiser USB headset at usb-0000:00:14.0-2, full sp"
    alsa.driver_name = "snd_usb_audio"
    device.string = "1"
Profiles:
    off: Off (sinks: 0, sources: 0, priority: 0, available: yes)
    output:analog-stereo+input:mono-fallback: Analog Stereo Output + Mono Input (sinks: 1, sources: 1, priority: 6501, available: yes)
    output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes)
    pro-audio: Pro Audio (sinks: 1, sources: 1, priority: 1, available: yes)
    input:mono-fallback: Mono Input (sinks: 0, sources: 1, priority: 1, available: yes)
Active Profile: output:analog-stereo+input:mono-fallback
Ports:
    analog-input-mic: Microphone (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:mono-fallback, output:analog-stereo+input:mono-fallback
    analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, availability unknown)
        Properties:
            port.type = "headphones"
            device.icon_name = "audio-headphones"
            card.profile.port = "1"
        Part of profile(s): output:analog-stereo, output:analog-stereo+input:mono-fallback

However, pactl list sinks short does not show it, only the built-in speakers that are working:

43  alsa_output.pci-0000_00_1f.3.analog-stereo  PipeWire    s32le 2ch 48000Hz   SUSPENDED

Continuing my research, I eventually found the issue in journalctl --user -u pipewire:

Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: ALSA lib confmisc.c:1281:(snd_func_refer) Unable to find definition 'cards.USB-Audio.pcm.front.0:CARD=1'
Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: ALSA lib conf.c:4745:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: ALSA lib conf.c:5233:(snd_config_expand) Evaluate error: No such file or directory
Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: ALSA lib pcm.c:2660:(snd_pcm_open_noupdate) Unknown PCM front:1
Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: 'front:1': playback open failed: No such file or directory
Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: adapter 0x55c2e968c8b0: can't get format: No such file or directory
Aug 02 10:46:32 backxp-HP-EliteBook-840-G5 pipewire[2007]: usage: node.name=<string>

This lead me to the following bug report: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/332

I have pipewire 0.3.32, so I don't understand why this did not fix my issue.

Score:1
jp flag

Until the bug mentioned at the end of my question is properly resolved, the correct answer (and workaround) to my question seems to be to manually restart all Pipewire related services:

systemctl --user restart pipewire-media-session pipewire-pulse pipewire

Update: I have filed a new Pipewire issue for this, as I do not seem to be able to re-open the previous one: https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/1478

mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.