Bug 498060

Summary: On Lenovo Yoga 11e Gen 6 laptop, Bluetooth is incorrectly reported as disabled and attempting to enable does nothing
Product: [Plasma] plasmashell Reporter: zeiglerr
Component: Bluetooth widgetAssignee: Plasma Bugs List <plasma-bugs-null>
Status: RESOLVED DOWNSTREAM    
Severity: normal CC: exploited200000, kde, nate, niccolo, notmart
Priority: NOR    
Version First Reported In: 6.2.4   
Target Milestone: 1.0   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description zeiglerr 2024-12-30 14:28:41 UTC
SUMMARY
When a dummy tpacpi_bluetooth_sw device is present (this may be a red herring), the bluetooth applet reports bluetooth is disabled. Clicking enable bluetooth flips the toggle to enabled but the enable bluetooth button remains. No pairing/scanning etc functionality are available. The same is also true in the control center.

STEPS TO REPRODUCE
1. Access a device with tpacpi_bluetooth_sw as an extra device
2. Use rfkill to verify there is an additional bluetooth device available and unblocked

OBSERVED RESULT
GUI bluetooth functionality does not work and always reports disabled

EXPECTED RESULT
GUI bluetooth functionality works using the hci0 device.

SOFTWARE/OS VERSIONS
Windows: 
macOS: 
(available in the Info Center app, or by running `kinfo` in a terminal window)
Linux/KDE Plasma: 
KDE Plasma Version: 6.2.4
KDE Frameworks Version: 6.9.0
Qt Version: 6.8.1

ADDITIONAL INFORMATION

rfkill output

ID TYPE      DEVICE                   SOFT      HARD
 0 bluetooth tpacpi_bluetooth_sw unblocked   blocked
 2 wlan      phy0                unblocked unblocked
 5 bluetooth hci0                unblocked unblocked

In my research to figure out what is happening, I came across this arch page which seems to describe the underlying cause.  https://wiki.archlinux.org/title/Lenovo_Yoga_11e_Gen_6
Specifically relevant is the fact that this laptop doesn't have actually have a hardware kill switch. There is a keyboard button with a symbol that suggests it does that but it is apparently software based and unsupported since pressing it does not change the output of rfkill.

With bluetoothctl I am able to manipulate power, scanning, pairing and connection. I've successfully paired multipoint bluetooth headset this way. Amusingly, when I did so, I got a notification asking me if I wanted to trust and authorize the device to connect to the compute while still reporting that bluetooth is disabled, so at least part of the shell understands that bluetooth is working.
Comment 1 Marco Martin 2025-01-10 10:01:40 UTC
unfortunately this seems an hardware compatibility problem, we can't do much about it