From fb6612dabec8c346ad5f9a584eb5ec7b03a6bafe Mon Sep 17 00:00:00 2001 From: Arturo Buzarra Date: Mon, 9 May 2022 10:50:49 +0200 Subject: [PATCH] bluez5: split init scripts and systemd service in a different recipe This commit moves all the work related with the initialization process to a new recipe to allow disgregate the init scripts from the bluez5 recipe. Signed-off-by: Arturo Buzarra --- .../recipes-connectivity/bluez/bluez5-init.bb | 59 ++++++++++++++++ .../bluetooth-init.service | 2 +- .../ccimx6/bluetooth-init | 0 .../ccimx6sbc/bluetooth-init_atheros | 0 .../ccimx6ul/bluetooth-init | 0 .../ccimx8m/bluetooth-init | 0 .../ccimx8x/bluetooth-init | 0 .../use-mainline-bsp/bluetooth-init | 0 ...bluetooth.service-add-customizations.patch | 19 ++--- .../bluez/bluez5/ccmp15/bluetooth-init | 69 ------------------- .../bluez/bluez5_5.41.bbappend | 27 +------- .../bluez/bluez5_5.56.bbappend | 26 +------ 12 files changed, 68 insertions(+), 134 deletions(-) create mode 100644 meta-digi-dey/recipes-connectivity/bluez/bluez5-init.bb rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/bluetooth-init.service (89%) rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/ccimx6/bluetooth-init (100%) rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/ccimx6sbc/bluetooth-init_atheros (100%) rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/ccimx6ul/bluetooth-init (100%) rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/ccimx8m/bluetooth-init (100%) rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/ccimx8x/bluetooth-init (100%) rename meta-digi-dey/recipes-connectivity/bluez/{bluez5 => bluez5-init}/use-mainline-bsp/bluetooth-init (100%) delete mode 100644 meta-digi-dey/recipes-connectivity/bluez/bluez5/ccmp15/bluetooth-init diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5-init.bb b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init.bb new file mode 100644 index 000000000..5dc9367f4 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init.bb @@ -0,0 +1,59 @@ +# Copyright (C) 2022 Digi International. + +SUMMARY = "Bluetooth init scripts" +LICENSE = "GPL-2.0" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6" + +SRC_URI = " \ + file://bluetooth-init \ + file://bluetooth-init.service \ +" + +SRC_URI_append_ccimx6sbc = " \ + file://bluetooth-init_atheros \ +" + +inherit update-rc.d + +do_install() { + # INITSCRIPT + install -d ${D}${sysconfdir}/init.d/ + install -m 0755 ${WORKDIR}/bluetooth-init ${D}${sysconfdir}/bluetooth-init + ln -sf /etc/bluetooth-init ${D}${sysconfdir}/init.d/bluetooth-init + # SYSTEMD + install -d ${D}${systemd_unitdir}/system/ + install -m 0644 ${WORKDIR}/bluetooth-init.service ${D}${systemd_unitdir}/system/bluetooth-init.service +} + +do_install_append_ccimx6sbc() { + install -m 0755 ${WORKDIR}/bluetooth-init_atheros ${D}${sysconfdir}/bluetooth-init_atheros +} + +pkg_postinst_ontarget_${PN}_ccimx6sbc() { + # Only execute the script on wireless ccimx6 platforms + if [ -e "/proc/device-tree/bluetooth/mac-address" ]; then + for id in $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio); do + if [[ "$id" == "sdio:c00v0271d0301" ]] ; then + mv /etc/bluetooth-init_atheros /etc/bluetooth-init + break + elif [[ "$id" == "sdio:c00v0271d050A" ]] ; then + rm /etc/bluetooth-init_atheros + break + fi + done + fi +} + +FILES_${PN} = " ${sysconfdir}/bluetooth-init* \ + ${sysconfdir}/init.d/bluetooth-init \ + ${systemd_unitdir}/system/bluetooth-init.service \ +" + +INITSCRIPT_PACKAGES += "${PN}" +INITSCRIPT_NAME_${PN} = "bluetooth-init" +INITSCRIPT_PARAMS_${PN} = "start 19 2 3 4 5 . stop 21 0 1 6 ." + +SYSTEMD_SERVICE_${PN} = "bluetooth-init.service" + +PACKAGE_ARCH = "${MACHINE_ARCH}" +COMPATIBLE_MACHINE = "(ccimx6$|ccimx6ul|ccimx8x|ccimx8mn|ccimx8mm)" diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth-init.service b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init.service similarity index 89% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth-init.service rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init.service index 208162131..2e3e13d9e 100644 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth-init.service +++ b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init.service @@ -9,4 +9,4 @@ ExecStart=/etc/bluetooth-init start ExecStop=/etc/bluetooth-init stop [Install] -WantedBy=multi-user.target +WantedBy=bluetooth.service diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx6/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx6/bluetooth-init similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx6/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx6/bluetooth-init diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx6sbc/bluetooth-init_atheros b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx6sbc/bluetooth-init_atheros similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx6sbc/bluetooth-init_atheros rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx6sbc/bluetooth-init_atheros diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx6ul/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx6ul/bluetooth-init similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx6ul/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx6ul/bluetooth-init diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx8m/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8m/bluetooth-init similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx8m/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8m/bluetooth-init diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx8x/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8x/bluetooth-init similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/ccimx8x/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8x/bluetooth-init diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/use-mainline-bsp/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/use-mainline-bsp/bluetooth-init similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5/use-mainline-bsp/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/use-mainline-bsp/bluetooth-init diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth.service-add-customizations.patch b/meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth.service-add-customizations.patch index 708bd788f..db9718e6b 100644 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth.service-add-customizations.patch +++ b/meta-digi-dey/recipes-connectivity/bluez/bluez5/bluetooth.service-add-customizations.patch @@ -4,27 +4,20 @@ Subject: [PATCH] bluetooth.service: add Digi customizations These changes include: -* Adding the bluetooth-init service as a soft dependency. * Having the bluetooth stack start automatically on boot. Signed-off-by: Gabriel Valcazar --- - src/bluetooth.service.in | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) + src/bluetooth.service.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bluetooth.service.in b/src/bluetooth.service.in -index f799f65..d8b150c 100644 +index f9faaa4..95d9ba2 100644 --- a/src/bluetooth.service.in +++ b/src/bluetooth.service.in -@@ -2,6 +2,7 @@ - Description=Bluetooth service - Documentation=man:bluetoothd(8) - ConditionPathIsDirectory=/sys/class/bluetooth -+Wants=bluetooth-init.service - - [Service] - Type=dbus -@@ -16,5 +17,5 @@ ProtectHome=true +@@ -14,7 +14,7 @@ CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE + LimitNPROC=1 + ProtectHome=true ProtectSystem=full [Install] diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccmp15/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccmp15/bluetooth-init deleted file mode 100644 index 020279f68..000000000 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5/ccmp15/bluetooth-init +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -#=============================================================================== -# -# Copyright (C) 2018,2022 by Digi International Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# -# -# !Description: Initialize bluetooth hardware -# -#=============================================================================== - -bluetooth_init() { - # Get MAC address from the device tree. Use a default value if it has not been set. - BT_MACADDR="$(hexdump -ve '1/1 "%02X" ":"' /proc/device-tree/bluetooth/mac-address 2>/dev/null | sed 's/:$//g')" - if [ -z "${BT_MACADDR}" ] || [ "${BT_MACADDR}" = "00:00:00:00:00:00" ]; then - BT_MACADDR="00:04:F3:FF:FF:BB" - fi - - # Start the Bluetooth driver and bring up the interface - HCIATTACH_LOG="/var/log/hciattach.log" - - for RETRY in $(seq 1 5) - do - killproc hciattach - modprobe btdigi - if hciattach ttyBt qca ${BT_RATE:-3000000} -t30 ${BT_FLOW:-flow} unused ${BT_MACADDR} >${HCIATTACH_LOG} 2>&1; then - return - fi - rmmod btdigi - sleep 1 - done - BT_ERROR="FAIL (hciattach)" -} - -# Source function library -. /etc/init.d/functions - -case "$1" in - start) - if [ -d "/proc/device-tree/bluetooth" ]; then - if [ "$(tr -d '\0' 2>/dev/null