From 863444d39c9cab81007acc2adad5181dc6bf8f09 Mon Sep 17 00:00:00 2001 From: devgianlu Date: Thu, 15 Oct 2026 08:36:55 +0200 Subject: [PATCH] pi-bluetooth: bump SRCREV to let bluetoothd power the adapter on Without systemd, bthelper runs from udev when hci0 appears, before bluetoothd starts. It brings the interface up with hciconfig, which powers the adapter without the kernel's power-on initialisation: that runs only when the adapter is powered through the management interface, and it is where the SMP channels are registered and Secure Simple Pairing is enabled. bthelper's delayed "bluetoothctl power off; power on" is meant to recover from this, but bluetoothd isn't running yet, so the adapter ignores LE pairing requests after every boot, and bluetoothd logs "Failed to set privacy: Rejected (0x0b)", until the Bluetooth stack is restarted. Upstream bthelper now takes the interface down again once it is done, so bluetoothd powers the adapter on when it starts, and powers it on through bluetoothd when that is already running: https://github.com/RPi-Distro/pi-bluetooth/pull/39. The same symptom is reported on Raspberry Pi OS in https://github.com/RPi-Distro/pi-bluetooth/issues/35. Refresh the hciconfig path patch to cover the new hciconfig call. Signed-off-by: devgianlu --- ...per-correct-path-for-hciconfig-under-Yocto.patch | 13 +++++++++++-- .../pi-bluetooth/pi-bluetooth_0.1.19.bb | 2 +- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch b/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch index 8766a77..2845d4e 100644 --- a/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch +++ b/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch @@ -8,8 +8,8 @@ Signed-off-by: Peter A. Bigot Signed-off-by: Andrei Gherzan --- - usr/bin/bthelper | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + usr/bin/bthelper | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/usr/bin/bthelper b/usr/bin/bthelper index 2133fbc..1fc9245 100755 @@ -35,6 +35,15 @@ index 2133fbc..1fc9245 100755 else echo Raspberry Pi BDADDR already set fi +@@ -39,7 +39,7 @@ fi + # management interface: without it Secure Simple Pairing stays off and the + # SMP channels, which LE pairing needs, are never registered. Leave the + # adapter down, so that bluetoothd powers it on itself. +-/bin/hciconfig $dev down ++/usr/bin/hciconfig $dev down + if pidof bluetoothd > /dev/null; then + /usr/bin/bluetoothctl power on > /dev/null + else -- 2.31.1 diff --git a/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.19.bb b/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.19.bb index 0b1aafb..885c9ad 100644 --- a/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.19.bb +++ b/recipes-connectivity/pi-bluetooth/pi-bluetooth_0.1.19.bb @@ -10,7 +10,7 @@ SRC_URI = "\ git://github.com/RPi-Distro/pi-bluetooth;branch=master;protocol=https \ file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \ " -SRCREV = "87248a382d1a81b80a62730975135d87fffd7ef1" +SRCREV = "6d8eeb2f3f400b94dbbab548e6a2c1278921506b" inherit ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'update-rc.d', d)} # hciuart.service replaces what was brcm43438.service