Bugzilla – Bug 1222651
After slowroll upgrade, laptop no longer switches from internal speakers to external display audio on connection/disconnection
Last modified: 2024-07-03 00:31:47 UTC
After the latest slowroll release (including the update to Plasma 6), my laptop no longer switches between HDMI audio and internal speakers when an external display is connected/disconnected. I have to e.g. when disconnecting HDMI, manually go into Plasma sound settings, show inactive devices, and switch profiles to Analog Stereo Output. To be clear – audio works both with laptop speakers and with HDMI, I just have to manually switch profiles. This is very annoying. Things I’ve tried: Reinstalling pavucontrol, pipewire-pulseaudio, wireplumber Removing ~/.local/state/wireplumber pactl load-module module-switch-on-connect Operating System: openSUSE Tumbleweed-Slowroll 20240405 KDE Plasma Version: 6.0.3 KDE Frameworks Version: 6.0.0 Qt Version: 6.6.3 Kernel Version: 6.8.4-rc1-1-default (64-bit) Graphics Platform: Wayland Processors: 12 × Intel® Core™ i7-10710U CPU @ 1.10GHz Memory: 15.5 GiB of RAM Graphics Processor: Mesa Intel® UHD Graphics Manufacturer: Micro-Star International Co., Ltd. Product Name: Prestige 15 A10SC System Version: REV:1.0 This also happens under the latest 20240409 Tumbleweed KDE Live image. However, reverting my actual install to a previous snapshot restores my laptop’s ability to automatically switch between internal speakers and external display (HDMI) audio. ----Working configuration---- Operating System: openSUSE Tumbleweed-Slowroll 20240213 KDE Plasma Version: 5.27.10 KDE Frameworks Version: 5.115.0 Qt Version: 5.15.12 Kernel Version: 6.8.1-1-default (64-bit) Graphics Platform: Wayland Processors: 12 × Intel® Core™ i7-10710U CPU @ 1.10GHz Memory: 15.5 GiB of RAM Graphics Processor: Mesa Intel® UHD Graphics Manufacturer: Micro-Star International Co., Ltd. Product Name: Prestige 15 A10SC System Version: REV:1.0 Obviously this is not a long term solution as I cannot update without losing functionality. I also do not have this problem on the latest KDE Neon live image. It seems to be limited to openSUSE.
Re-assigning from "Upgrade Problems" to "Sound" since this happens when booting from a Live USB stick.
Which packages have you updated and which of them broke? Basically you should be able to downgrade the packages again (e.g. if it's a kernel, it's easy, even you can boot the older kernel as is).
When I first experienced the issue, it was from a dist upgrade from Slowroll 20240213 to 20240405. I remember zypper showing 2000 packages to be upgraded. I have since rolled back to 20240213. The problem is also present in the current 20240419 live KDE ISO, i.e. "out of the box". lspci from 20240213 without an external monitor connected: 00:00.0 Host bridge: Intel Corporation Device 9b51 00:02.0 VGA compatible controller: Intel Corporation Comet Lake UHD Graphics (rev 04) 00:12.0 Signal processing controller: Intel Corporation Comet Lake Thermal Subsytem 00:14.0 USB controller: Intel Corporation Comet Lake PCH-LP USB 3.1 xHCI Host Controller 00:14.2 RAM memory: Intel Corporation Comet Lake PCH-LP Shared SRAM 00:14.3 Network controller: Intel Corporation Comet Lake PCH-LP CNVi WiFi 00:15.0 Serial bus controller: Intel Corporation Serial IO I2C Host Controller 00:16.0 Communication controller: Intel Corporation Comet Lake Management Engine Interface 00:1c.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #1 (rev f0) 00:1c.4 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #5 (rev f0) 00:1d.0 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #9 (rev f0) 00:1d.4 PCI bridge: Intel Corporation Comet Lake PCI Express Root Port #13 (rev f0) 00:1d.6 PCI bridge: Intel Corporation Device 02b6 (rev f0) 00:1f.0 ISA bridge: Intel Corporation Comet Lake PCH-LP LPC Premium Controller/eSPI Controller 00:1f.3 Audio device: Intel Corporation Comet Lake PCH-LP cAVS 00:1f.4 SMBus: Intel Corporation Comet Lake PCH-LP SMBus Host Controller 00:1f.5 Serial bus controller: Intel Corporation Comet Lake SPI (flash) Controller 01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5250 PCI Express Card Reader (rev 01) 02:00.0 3D controller: NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1) 03:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 04:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 04:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 04:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 04:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 05:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06) 39:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06) 6e:00.0 Non-Volatile memory controller: Toshiba Corporation BG3 x2 NVMe SSD Controller (DRAM-less) (rev 01) 6f:00.0 Non-Volatile memory controller: Intel Corporation SSD 660P Series (rev 03)
That really makes hard to judge. Which kernel version did you have before the update? Also, is the pipewire version update involved there? You need to figure out by checking those massive updates. Then, for verifying whether it's a kernel regression, could you try downgrading some old kernels found in Tumbleweed history repo? http://download.opensuse.org/history/ e.g. 6.8.1 kernel there. If it doesn't work, try the kernel in my OBS kernel archive repo, OBS home:tiwai:kernel:6.7 http://download.opensuse.org/repositories/home:/tiwai:/kernel:/6.7/standard/ Just grab kernel-default.rpm from those repos above, and install via zypper install --oldpackage option.
Created attachment 874467 [details] Packages upgraded during dist upgrade from Slowroll 20240213 to 20240405
Working configuration was on Slowroll 20240213 with kernel 6.7.4 I upgraded kernel to 6.8.7-1.1 without upgrading anything else and everything was still good. So it's likely not the kernel. I then did a distribution upgrade to 20240405, and now the laptop no longer auto switches audio again. Details of the changed packages is in the attached "Slowroll 20240213 to 20240405.txt". I see pipewire, pulseaudio, and kpipewire buried in there. For now I'm rolling back again. I'm happy to keep trying to narrow down where it breaks but need guidance on which ones to try first.
Created attachment 874512 [details] Working (expected) behavior when HDMI is plugged/unplugged This is a video of how KDE Plasma Sound settings behave when a TV is plugged and unplugged from the HDMI port. The first time I connect the display, I have to choose the HDMI audio output, which is fine. Whenever I unplug the display, audio switches back to the internal speakers correctly. When I plug the display in again, it remembers my settings from last time and correctly switches back to the external display audio.
Created attachment 874513 [details] Incorrect behavior: Audio device shows as inactive and doesn't switch to internal audio after disconnecting external display This is how KDE Plasma sound settings appear in the 20240419 Tumbleweed KDE Live distro. First, I set the audio to use the HDMI port instead of laptop speakers. However, when the external display is disconnected, the computer still tries to send audio to the now "Inactive" HDMI/Displayport device. It does not switch over to the internal speakers until I manually change audio profiles.
Looks like someone else has narrowed this down to wireplumber: https://www.reddit.com/r/pipewire/comments/1blys11/auto_switch_audio_speakerhdmi_not_works_anymore/ https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/629 https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/613 *** Indeed, protecting the packages libwireplumber-0_4-0, wireplumber, and wireplumber-audio results in correct behavior even after dist upgrade to the latest Slowroll release! ***
Thanks for figuring out. Adding Antonio to Cc.
Tossed to Antonio, as it's a pipewire / wireplumber bug. Let's hope that it'll be fixed soon in the upstream.
Update: This has now been fixed now that Slowroll has wireplumber 0.5.3.