meta-digi/meta-digi-dey/recipes-connectivity/bluez/bluez5-init.bb

82 lines
2.8 KiB
BlitzBasic

# Copyright (C) 2022-2026, Digi International Inc.
SUMMARY = "Bluetooth init scripts"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
BT_INIT_FILE = "bluetooth-init"
BT_INIT_FILE:ccimx8m = "bluetooth-init_btdigi_qca65x4"
BT_INIT_FILE:ccimx8x = "bluetooth-init_btdigi_qca65x4"
BT_INIT_FILE:ccimx91 = "bluetooth-init_btnxpuart"
BT_INIT_FILE:ccimx93 = "bluetooth-init_btnxpuart"
BT_INIT_FILE:ccimx95 = "bluetooth-init_btbcm_hciuart"
BT_INIT_FILE:ccmp1 = "bluetooth-init_btbcm_hciuart"
SRC_URI = " \
file://${BT_INIT_FILE} \
file://bluetooth-init.service \
"
SRC_URI:append:ccimx6sbc = " \
file://bluetooth-init_atheros \
"
inherit update-rc.d systemd
do_install() {
# INITSCRIPT
install -d ${D}${sysconfdir}/init.d/
install -m 0755 ${WORKDIR}/${BT_INIT_FILE} ${D}${sysconfdir}/bluetooth-init
ln -sf /etc/bluetooth-init ${D}${sysconfdir}/init.d/bluetooth-init
# Set BT UART device
sed -i -e "s,##BT_TTY##,dev-${BT_TTY}.device,g" \
${WORKDIR}/bluetooth-init.service
# 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"
# 'bluetooth-init' script uses '/etc/init.d/functions'
RDEPENDS:${PN} = "initscripts-functions"
# IW61x Bluetooth support requires the WiFi FW support
RDEPENDS:${PN}:append:ccimx91 = " firmware-nxp-wifi-nxpiw612-sdio"
RDEPENDS:${PN}:append:ccimx93 = " firmware-nxp-wifi-nxpiw612-sdio"
# Murata - Infineon combo chip requires both WiFi and Bluetooth firmware
RDEPENDS:${PN}:append:ccmp1 = " firmware-murata-infineon"
RDEPENDS:${PN}:append:ccmp2 = " firmware-murata-infineon"
RDEPENDS:${PN}:append:ccimx95 = " firmware-murata-infineon"
PACKAGE_ARCH = "${MACHINE_ARCH}"
COMPATIBLE_MACHINE = "(ccimx6$|ccimx6ul|ccimx8m|ccimx8x|ccimx9|ccmp1|ccmp2)"