Skip to content

Commit

Permalink
bluez5: use pi-bluetooth package for startup infrastructure
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
pabigot authored and agherzan committed Nov 23, 2018
1 parent bfc35b7 commit f752e92
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 50 deletions.
14 changes: 0 additions & 14 deletions recipes-connectivity/bluez5/bluez5/brcm43438.service

This file was deleted.

35 changes: 3 additions & 32 deletions recipes-connectivity/bluez5/bluez5_%.bbappend
Expand Up @@ -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
SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}"

do_install_append_raspberrypi3() {
enable_bcm_bluetooth
}

SYSTEMD_SERVICE_${PN}_append_raspberrypi3 = " ${BCM_BT_SERVICE}"
BCM_BT_RDEPENDS = "pi-bluetooth"

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}"
SRC_URI_append_raspberrypi3 = " ${BCM_BT_SOURCES}"

RDEPENDS_${PN}_append_raspberrypi0-wifi = " ${BCM_BT_RDEPENDS}"
RDEPENDS_${PN}_append_raspberrypi3 = " ${BCM_BT_RDEPENDS}"
@@ -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

32 changes: 28 additions & 4 deletions recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb
Expand Up @@ -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 \
"

0 comments on commit f752e92

Please sign in to comment.