| Summary: | Audio device profiles can remove the audio device from the applet and system settings | ||
|---|---|---|---|
| Product: | [Plasma] plasmashell | Reporter: | mashkal2000 <mashkal2000> |
| Component: | Audio in general | Assignee: | Plasma Bugs List <plasma-bugs-null> |
| Status: | ASSIGNED --- | ||
| Severity: | minor | CC: | dezzadk, dns_hmpf, isma.af, nate, nowrep |
| Priority: | NOR | Keywords: | usability |
| Version First Reported In: | 6.2.4 | ||
| Target Milestone: | 1.0 | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
| Attachments: | change of wireplumber state files when profile switched to off | ||
|
Description
mashkal2000@gmail.com
2024-03-06 05:47:09 UTC
The current code (used to) avoid this situation by filtering out the profiles that would remove all inputs and outputs. Then, on the applet we don't offer that option to select, and on the KCM we show it under the "Inactive Cards" list. These profiles are detected because the profile name is "off", which has been working for pulseaudio (and also pipewire-pulse so far). It seems there there are some profiles that do not follow this convention, which might be a change on pipewire or a new situation. We might need a better way to detect those profiles. I cannot reproduce with the cards/devices I've been trying, so a few questions: - Are you using pipewire, and if so, which version? - Can you check the output of `pactl list cards`, specifically the "Profiles:" section? Thanks! A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-pa/-/merge_requests/247 (In reply to Ismael Asensio from comment #1) > The current code (used to) avoid this situation by filtering out the > profiles that would remove all inputs and outputs. > Then, on the applet we don't offer that option to select, and on the KCM we > show it under the "Inactive Cards" list. > > These profiles are detected because the profile name is "off", which has > been working for pulseaudio (and also pipewire-pulse so far). > It seems there there are some profiles that do not follow this convention, > which might be a change on pipewire or a new situation. We might need a > better way to detect those profiles. > > I cannot reproduce with the cards/devices I've been trying, so a few > questions: > - Are you using pipewire, and if so, which version? Not sure. `pipewire --version` prints 0.3.48, but pactl info seems to indicate that I'm not using it: Server String: /run/user/1000/pulse/native Library Protocol Version: 35 Server Protocol Version: 35 Is Local: yes Client Index: 10 Tile Size: 65472 User Name: alex Host Name: alex-z690mitxax Server Name: pulseaudio Server Version: 15.99.1 Default Sample Specification: s16le 2ch 44100Hz Default Channel Map: front-left,front-right Default Sink: alsa_output.usb-Dell_C2722DE_YCG4T1CKCJQL-00.analog-stereo Default Source: alsa_input.usb-Neat_Microphones_Bumblebee_II_USB_Microphone-00.mono-fallback Cookie: 17cc:8944 > - Can you check the output of `pactl list cards`, specifically the > "Profiles:" section? > > Thanks! Here's the full output of that command: Card #0 Name: alsa_card.usb-Neat_Microphones_Bumblebee_II_USB_Microphone-00 Driver: module-alsa-card.c Owner Module: 23 Properties: alsa.card = "2" alsa.card_name = "Bumblebee II USB Microphone" alsa.long_card_name = "Neat Microphones Bumblebee II USB Microphone at usb-0000:00:14.0-10.1.2, full s" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:10.1.2:1.0" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10.1/1-10.1.2/1-10.1.2:1.0/sound/card2" udev.id = "usb-Neat_Microphones_Bumblebee_II_USB_Microphone-00" device.bus = "usb" device.vendor.id = "3066" device.vendor.name = "Neat Microphones" device.product.id = "2244" device.product.name = "Bumblebee II USB Microphone" device.serial = "Neat_Microphones_Bumblebee_II_USB_Microphone" device.form_factor = "microphone" device.string = "2" device.description = "Bumblebee II USB Microphone" module-udev-detect.discovered = "1" device.icon_name = "audio-input-microphone-usb" Profiles: input:mono-fallback: Mono Input (sinks: 0, sources: 1, priority: 1, available: yes) output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes) output:analog-stereo+input:mono-fallback: Analog Stereo Output + Mono Input (sinks: 1, sources: 1, priority: 6501, available: yes) output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0, priority: 5500, available: yes) output:iec958-stereo+input:mono-fallback: Digital Stereo (IEC958) Output + Mono Input (sinks: 1, sources: 1, priority: 5501, available: yes) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: input:mono-fallback Ports: analog-input-mic: Microphone (type: Mic, priority: 8700, latency offset: 0 usec, availability unknown) Properties: device.icon_name = "audio-input-microphone" Part of profile(s): input:mono-fallback, output:analog-stereo+input:mono-fallback, output:iec958-stereo+input:mono-fallback analog-output-speaker: Speakers (type: Speaker, priority: 10000, latency offset: 0 usec, availability unknown) Properties: device.icon_name = "audio-speakers" Part of profile(s): output:analog-stereo, output:analog-stereo+input:mono-fallback iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown) Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:mono-fallback Card #1 Name: alsa_card.pci-0000_01_00.1 Driver: module-alsa-card.c Owner Module: 24 Properties: alsa.card = "1" alsa.card_name = "HDA NVidia" alsa.long_card_name = "HDA NVidia at 0x72080000 irq 17" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:01:00.1" sysfs.path = "/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1" device.bus = "pci" device.vendor.id = "10de" device.vendor.name = "NVIDIA Corporation" device.product.id = "10f1" device.product.name = "GP106 High Definition Audio Controller" device.string = "1" device.description = "GP106 High Definition Audio Controller" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" Profiles: output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 38668, available: yes) output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 33568, available: yes) output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (sinks: 1, sources: 0, priority: 33568, available: yes) output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 38468, available: yes) output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 33368, available: yes) output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 33368, available: yes) output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no) output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no) output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: output:hdmi-stereo Ports: hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, available) Properties: device.icon_name = "video-display" device.product.name = "DELL C2722DE " Part of profile(s): output:hdmi-stereo, output:hdmi-surround, output:hdmi-surround71 hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, available) Properties: device.icon_name = "video-display" device.product.name = "LG FULL HD " Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-surround-extra1, output:hdmi-surround71-extra1 hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, not available) Properties: device.icon_name = "video-display" Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-surround-extra2, output:hdmi-surround71-extra2 hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, not available) Properties: device.icon_name = "video-display" Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-surround-extra3, output:hdmi-surround71-extra3 Card #2 Name: alsa_card.usb-Dell_C2722DE_YCG4T1CKCJQL-00 Driver: module-alsa-card.c Owner Module: 25 Properties: alsa.card = "3" alsa.card_name = "C2722DE" alsa.long_card_name = "Dell C2722DE at usb-0000:00:14.0-10.3, full speed" alsa.driver_name = "snd_usb_audio" device.bus_path = "pci-0000:00:14.0-usb-0:10.3:1.0" sysfs.path = "/devices/pci0000:00/0000:00:14.0/usb1/1-10/1-10.3/1-10.3:1.0/sound/card3" udev.id = "usb-Dell_C2722DE_YCG4T1CKCJQL-00" device.bus = "usb" device.vendor.id = "413c" device.vendor.name = "Dell Computer Corp." device.product.id = "c00d" device.product.name = "C2722DE" device.serial = "Dell_C2722DE_YCG4T1CKCJQL" device.string = "3" device.description = "C2722DE" module-udev-detect.discovered = "1" device.icon_name = "audio-card-usb" Profiles: input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 65, available: yes) input:iec958-stereo: Digital Stereo (IEC958) Input (sinks: 0, sources: 1, priority: 55, available: yes) output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 6500, available: yes) output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 6565, available: yes) output:analog-stereo+input:iec958-stereo: Analog Stereo Output + Digital Stereo (IEC958) Input (sinks: 1, sources: 1, priority: 6555, available: yes) output:iec958-stereo: Digital Stereo (IEC958) Output (sinks: 1, sources: 0, priority: 5500, available: yes) output:iec958-stereo+input:analog-stereo: Digital Stereo (IEC958) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5565, available: yes) output:iec958-stereo+input:iec958-stereo: Digital Stereo Duplex (IEC958) (sinks: 1, sources: 1, priority: 5555, available: yes) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: output:analog-stereo Ports: analog-input-headset-mic: Headset Microphone (type: Headset, priority: 8800, latency offset: 0 usec, availability unknown) Properties: device.icon_name = "audio-input-microphone" Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:iec958-stereo+input:analog-stereo iec958-stereo-input: Digital Input (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown) Part of profile(s): input:iec958-stereo, output:analog-stereo+input:iec958-stereo, output:iec958-stereo+input:iec958-stereo analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, availability unknown) Properties: device.icon_name = "audio-headphones" Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo, output:analog-stereo+input:iec958-stereo iec958-stereo-output: Digital Output (S/PDIF) (type: SPDIF, priority: 0, latency offset: 0 usec, availability unknown) Part of profile(s): output:iec958-stereo, output:iec958-stereo+input:analog-stereo, output:iec958-stereo+input:iec958-stereo Card #3 Name: alsa_card.pci-0000_00_1f.3 Driver: module-alsa-card.c Owner Module: 26 Properties: alsa.card = "0" alsa.card_name = "HDA Intel PCH" alsa.long_card_name = "HDA Intel PCH at 0x6013110000 irq 190" alsa.driver_name = "snd_hda_intel" device.bus_path = "pci-0000:00:1f.3" sysfs.path = "/devices/pci0000:00/0000:00:1f.3/sound/card0" device.bus = "pci" device.vendor.id = "8086" device.vendor.name = "Intel Corporation" device.product.id = "7ad0" device.form_factor = "internal" device.string = "0" device.description = "Built-in Audio" module-udev-detect.discovered = "1" device.icon_name = "audio-card-pci" Profiles: input:analog-stereo: Analog Stereo Input (sinks: 0, sources: 1, priority: 32833, available: yes) output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 39268, available: yes) output:analog-stereo+input:analog-stereo: Analog Stereo Duplex (sinks: 1, sources: 1, priority: 39333, available: yes) output:hdmi-stereo: Digital Stereo (HDMI) Output (sinks: 1, sources: 0, priority: 5900, available: no) output:hdmi-stereo+input:analog-stereo: Digital Stereo (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5965, available: yes) output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no) output:hdmi-surround+input:analog-stereo: Digital Surround 5.1 (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 865, available: yes) output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (sinks: 1, sources: 0, priority: 800, available: no) output:hdmi-surround71+input:analog-stereo: Digital Surround 7.1 (HDMI) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 865, available: yes) output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (sinks: 1, sources: 0, priority: 5700, available: no) output:hdmi-stereo-extra1+input:analog-stereo: Digital Stereo (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: yes) output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround-extra1+input:analog-stereo: Digital Surround 5.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes) output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround71-extra1+input:analog-stereo: Digital Surround 7.1 (HDMI 2) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes) output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (sinks: 1, sources: 0, priority: 5700, available: no) output:hdmi-stereo-extra2+input:analog-stereo: Digital Stereo (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: yes) output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround-extra2+input:analog-stereo: Digital Surround 5.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes) output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround71-extra2+input:analog-stereo: Digital Surround 7.1 (HDMI 3) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes) output:hdmi-stereo-extra3: Digital Stereo (HDMI 4) Output (sinks: 1, sources: 0, priority: 5700, available: no) output:hdmi-stereo-extra3+input:analog-stereo: Digital Stereo (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 5765, available: yes) output:hdmi-surround-extra3: Digital Surround 5.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround-extra3+input:analog-stereo: Digital Surround 5.1 (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes) output:hdmi-surround71-extra3: Digital Surround 7.1 (HDMI 4) Output (sinks: 1, sources: 0, priority: 600, available: no) output:hdmi-surround71-extra3+input:analog-stereo: Digital Surround 7.1 (HDMI 4) Output + Analog Stereo Input (sinks: 1, sources: 1, priority: 665, available: yes) off: Off (sinks: 0, sources: 0, priority: 0, available: yes) Active Profile: output:analog-stereo+input:analog-stereo Ports: analog-input-front-mic: Front Microphone (type: Mic, priority: 8500, latency offset: 0 usec, available) Properties: device.icon_name = "audio-input-microphone" Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo analog-input-rear-mic: Rear Microphone (type: Mic, priority: 8200, latency offset: 0 usec, not available) Properties: device.icon_name = "audio-input-microphone" Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo analog-input-linein: Line In (type: Line, priority: 8100, latency offset: 0 usec, not available) Part of profile(s): input:analog-stereo, output:analog-stereo+input:analog-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71+input:analog-stereo, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1+input:analog-stereo, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2+input:analog-stereo, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3+input:analog-stereo analog-output-lineout: Line Out (type: Line, priority: 9000, latency offset: 0 usec, available) Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo analog-output-headphones: Headphones (type: Headphones, priority: 9900, latency offset: 0 usec, available) Properties: device.icon_name = "audio-headphones" Part of profile(s): output:analog-stereo, output:analog-stereo+input:analog-stereo hdmi-output-0: HDMI / DisplayPort (type: HDMI, priority: 5900, latency offset: 0 usec, not available) Properties: device.icon_name = "video-display" Part of profile(s): output:hdmi-stereo, output:hdmi-stereo+input:analog-stereo, output:hdmi-surround, output:hdmi-surround+input:analog-stereo, output:hdmi-surround71, output:hdmi-surround71+input:analog-stereo hdmi-output-1: HDMI / DisplayPort 2 (type: HDMI, priority: 5800, latency offset: 0 usec, not available) Properties: device.icon_name = "video-display" Part of profile(s): output:hdmi-stereo-extra1, output:hdmi-stereo-extra1+input:analog-stereo, output:hdmi-surround-extra1, output:hdmi-surround-extra1+input:analog-stereo, output:hdmi-surround71-extra1, output:hdmi-surround71-extra1+input:analog-stereo hdmi-output-2: HDMI / DisplayPort 3 (type: HDMI, priority: 5700, latency offset: 0 usec, not available) Properties: device.icon_name = "video-display" Part of profile(s): output:hdmi-stereo-extra2, output:hdmi-stereo-extra2+input:analog-stereo, output:hdmi-surround-extra2, output:hdmi-surround-extra2+input:analog-stereo, output:hdmi-surround71-extra2, output:hdmi-surround71-extra2+input:analog-stereo hdmi-output-3: HDMI / DisplayPort 4 (type: HDMI, priority: 5600, latency offset: 0 usec, not available) Properties: device.icon_name = "video-display" Part of profile(s): output:hdmi-stereo-extra3, output:hdmi-stereo-extra3+input:analog-stereo, output:hdmi-surround-extra3, output:hdmi-surround-extra3+input:analog-stereo, output:hdmi-surround71-extra3, output:hdmi-surround71-extra3+input:analog-stereo Thanks for the info! As you mention, it seems that even when you have pipewire installed, it is pulseaudio which is serving actually. You might need to install the "pipewire-pulse" package (or equivalent in your distro). This debunks a bit my theory. According to the information provided by pactl, the only profiles without sinks or sources are named "off", which we already filter. When they have either of those, they should get shown in their respective category (or both). Might be an issue of some of them losing them dynamically. Do you know of any specific profile that makes the get hidden? Or is it kind of random? Created attachment 174444 [details]
change of wireplumber state files when profile switched to off
Similar situation which I think triggers the same problem:
Switching a profile to off in the system settings removes the device from the
device list (including inactive devices) with no option to bring it back from
the settings gui.
I noticed that switchting the profile to off, modified the contents in
`~/.local/state/wireplumber/` (see attached patch file) and the output of `pactl list cards` had `Active
Profile: off`, before it was `Active Profile: HiFi`.
To get the sound devices back I
- reverted the changes in `~/.local/state/wireplumber/`
- and `systemctl --user restart wireplumber.service pipewire.service`
This is a weird bug. I have this happened on my USB Audio DAC a few times puzzled everytime.
I could not trigger/toggle the state as @Dirk Sarpe was able, but I noticed these differences once I turned my USB DAC on/off and got the devices back:
> $ diff ~/.local/state/wireplumber/ ~/wireplumber_broken/
> diff /home/dza/.local/state/wireplumber/stream-properties /home/dza/wireplumber_broken/stream-properties
> 7c7
> < Input/Audio:application.id:org.kde.plasma-pa={"channelMap":["MONO"], "volume":1.000000, "mute":false, "channelVolumes":[1.000000]}
> ---
> \> Input/Audio:application.id:org.kde.plasma-pa={"channelMap":["MONO"], "volume":1.000000, "channelVolumes":[1.000000], "mute":false}
|