bluez5: use pi-bluetooth package for startup infrastructure

RPi-Distro has augmented their bluetooth infrastructure to support new
features.  It also correctly handles restart, which fixes problems when
faults cause hciattach to exit.  Replace brcm43438.service with the
upstream ones.

Resolves: #330
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
This commit is contained in:
Peter A. Bigot 2018-11-14 07:48:51 -06:00 committed by Andrei Gherzan
parent bfc35b773f
commit f752e92383
4 changed files with 60 additions and 51 deletions

View File

@ -1,14 +0,0 @@
[Unit]
Description=Broadcom BCM43438 bluetooth HCI
ConditionPathIsDirectory=/proc/device-tree/soc/gpio@7e200000/bt_pins
Before=bluetooth.service
BindsTo=dev-serial1.device
After=dev-serial1.device
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/btuart
[Install]
WantedBy=multi-user.target

View File

@ -5,41 +5,12 @@ BCM_BT_SOURCES = " \
file://0002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch \
file://0003-Increase-firmware-load-timeout-to-30s.patch \
file://0004-Move-the-43xx-firmware-into-lib-firmware.patch \
file://brcm43438.service \
"
BCM_BT_SERVICE = "brcm43438.service"
enable_bcm_bluetooth() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/${BCM_BT_SERVICE} ${D}${systemd_unitdir}/system
fi
}
BCM_BT_RDEPENDS = "\
udev-rules-rpi \
pi-bluetooth \
"
# for raspberrypi3
BCM_BT_RDEPENDS = "pi-bluetooth"
SRC_URI_append_raspberrypi0-wifi = " ${BCM_BT_SOURCES}"
SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}"
do_install_append_raspberrypi3() {
enable_bcm_bluetooth
}
SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " ${BCM_BT_SERVICE}"
RDEPENDS_${PN}_append_raspberrypi3 = " ${BCM_BT_RDEPENDS}"
# for raspberrypi0-wifi
SRC_URI_append_raspberrypi0-wifi = " ${BCM_BT_SOURCES}"
do_install_append_raspberrypi0-wifi() {
enable_bcm_bluetooth
}
SYSTEMD_SERVICE_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_SERVICE}"
RDEPENDS_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_RDEPENDS}"
RDEPENDS_${PN}_append_raspberrypi3 = " ${BCM_BT_RDEPENDS}"

View File

@ -0,0 +1,28 @@
From af91c96951a11f81f5cea88a0010161592c89310 Mon Sep 17 00:00:00 2001
From: "Peter A. Bigot" <pab@pabigot.com>
Date: Wed, 14 Nov 2018 09:19:51 -0600
Subject: [PATCH] bthelper: correct path for hciconfig under Yocto
Upstream-Status: Inapproprate [OE-specific]
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
---
usr/bin/bthelper | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/usr/bin/bthelper b/usr/bin/bthelper
index 255fdeb..4e1a1a4 100755
--- a/usr/bin/bthelper
+++ b/usr/bin/bthelper
@@ -10,7 +10,7 @@ fi
dev="$1"
# Need to bring hci up before looking at MAC as it can be all zeros during init
-/bin/hciconfig "$dev" up
-/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0
+/usr/bin/hciconfig "$dev" up
+/usr/bin/hciconfig "$dev" |grep -q "BD Address: B8:27:EB:" || exit 0
/usr/bin/hcitool -i "$dev" cmd 0x3f 0x1c 0x01 0x02 0x00 0x01 0x01 > /dev/null
--
2.17.1

View File

@ -6,17 +6,41 @@ LIC_FILES_CHKSUM = "\
file://debian/copyright;md5=6af8de3c8ee71f8e91e9b22f84ff2022 \
"
SRC_URI = "git://github.com/RPi-Distro/pi-bluetooth"
SRCREV = "2a7477966bb3c69838b224f3ea92cb49a88124d5"
UPSTREAM_VERSION_UNKNOWN = "1"
SRC_URI = "\
git://github.com/RPi-Distro/pi-bluetooth \
file://0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch \
"
SRCREV = "2e1a393955910aea67bbf3c921be35a66e8a8fbe"
PV = "1.1+git${SRCPV}"
S = "${WORKDIR}/git"
# hciuart.service replaces what was brcm43438.service
inherit systemd
SYSTEMD_SERVICE_${PN} = "\
hciuart.service \
bthelper@.service \
"
inherit allarch
do_install() {
install -d ${D}${sysconfdir}/udev/rules.d
install -m 0644 ${S}/lib/udev/rules.d/* ${D}${sysconfdir}/udev/rules.d
install -d ${D}${bindir}
install -m 0755 ${S}/usr/bin/bthelper ${D}${bindir}
install -m 0755 ${S}/usr/bin/btuart ${D}${bindir}
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_system_unitdir}
install -m 0644 ${S}/debian/pi-bluetooth.bthelper@.service ${D}${systemd_system_unitdir}/bthelper@.service
install -m 0644 ${S}/debian/pi-bluetooth.hciuart.service ${D}${systemd_system_unitdir}/hciuart.service
fi
}
FILES_${PN} = "${bindir}"
FILES_${PN} = "\
${bindir} \
${sysconfdir} \
${systemd_unitdir}/system \
"