From f752e9238366db7a6e134bbc00ef1f7697cb7eba Mon Sep 17 00:00:00 2001 From: "Peter A. Bigot" Date: Wed, 14 Nov 2018 07:48:51 -0600 Subject: [PATCH] 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 --- .../bluez5/bluez5/brcm43438.service | 14 -------- recipes-connectivity/bluez5/bluez5_%.bbappend | 35 ++----------------- ...rrect-path-for-hciconfig-under-Yocto.patch | 28 +++++++++++++++ .../pi-bluetooth/pi-bluetooth_git.bb | 32 ++++++++++++++--- 4 files changed, 59 insertions(+), 50 deletions(-) delete mode 100644 recipes-connectivity/bluez5/bluez5/brcm43438.service create mode 100644 recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch diff --git a/recipes-connectivity/bluez5/bluez5/brcm43438.service b/recipes-connectivity/bluez5/bluez5/brcm43438.service deleted file mode 100644 index a51f6bcbc..000000000 --- a/recipes-connectivity/bluez5/bluez5/brcm43438.service +++ /dev/null @@ -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 diff --git a/recipes-connectivity/bluez5/bluez5_%.bbappend b/recipes-connectivity/bluez5/bluez5_%.bbappend index d1b84df43..6651fb8d3 100644 --- a/recipes-connectivity/bluez5/bluez5_%.bbappend +++ b/recipes-connectivity/bluez5/bluez5_%.bbappend @@ -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}" 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 new file mode 100644 index 000000000..45839053c --- /dev/null +++ b/recipes-connectivity/pi-bluetooth/pi-bluetooth/0001-bthelper-correct-path-for-hciconfig-under-Yocto.patch @@ -0,0 +1,28 @@ +From af91c96951a11f81f5cea88a0010161592c89310 Mon Sep 17 00:00:00 2001 +From: "Peter A. Bigot" +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 +--- + 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 + diff --git a/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb b/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb index e185f25e2..b2401b93c 100644 --- a/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb +++ b/recipes-connectivity/pi-bluetooth/pi-bluetooth_git.bb @@ -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 \ +"