.gear/rules | 2 ++ .gear/tags/list | 1 + debian/pi-bluetooth.hciuart.service | 4 ++-- pi-bluetooth.spec | 40 +++++++++++++++++++++++++++++++++++++ usr/bin/bthelper | 7 ++++--- usr/bin/btuart | 7 ++++--- 6 files changed, 53 insertions(+), 8 deletions(-) diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 0000000..4b0460c --- /dev/null +++ b/.gear/rules @@ -0,0 +1,2 @@ +tar: v@version@:. +diff: v@version@:. . diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 0000000..f315af1 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +6f6386e91e33966d3c4a3cfee72d61e14c6a11ef v0.1.15 diff --git a/debian/pi-bluetooth.hciuart.service b/debian/pi-bluetooth.hciuart.service index daada84..dd2a980 100644 --- a/debian/pi-bluetooth.hciuart.service +++ b/debian/pi-bluetooth.hciuart.service @@ -1,8 +1,8 @@ [Unit] Description=Configure Bluetooth Modems connected by UART ConditionFileNotEmpty=/proc/device-tree/soc/gpio@7e200000/bt_pins/brcm,pins -Requires=dev-serial1.device -After=dev-serial1.device +Requires=dev-ttyAMA0.device +After=dev-ttyAMA0.device [Service] Type=forking diff --git a/pi-bluetooth.spec b/pi-bluetooth.spec new file mode 100644 index 0000000..c4db871 --- /dev/null +++ b/pi-bluetooth.spec @@ -0,0 +1,40 @@ +Name: pi-bluetooth +Version: 0.1.15 +Release: alt1 + +Summary: Tool for setting up bluetooth on a Raspberry Pi. +License: BSD-3-Clause +Group: System/Base +URL: https://github.com/RPi-Distro/pi-bluetooth +BuildArch: noarch +Packager: Dmitry Terekhin +Source: %name-%version.tar +Patch: %name-%version-%release.patch +Requires: bluez + +%description +The hciuart.service unit calls the btuart script, +which analyzes the system and calls hciattach +to set up bluetooth and serial communication. + +%prep +%setup +%patch -p1 + +%install +install -D -m 755 usr/bin/btuart %buildroot/usr/bin/btuart +install -D -m 644 debian/pi-bluetooth.hciuart.service %buildroot/lib/systemd/system/hciuart.service +install -D -m 755 usr/bin/bthelper %buildroot/usr/bin/bthelper +install -D -m 644 debian/pi-bluetooth.bthelper@.service %buildroot/lib/systemd/system/bthelper@.service +install -D -m 644 lib/udev/rules.d/90-pi-bluetooth.rules %buildroot/lib/udev/rules.d/90-pi-bluetooth.rules + +%files +/usr/bin/btuart +/lib/systemd/system/hciuart.service +/usr/bin/bthelper +/lib/systemd/system/bthelper@.service +/lib/udev/rules.d/90-pi-bluetooth.rules + +%changelog +* Tue Feb 16 2021 Dmitry Terekhin 0.1.15-alt1 +- Initial build diff --git a/usr/bin/bthelper b/usr/bin/bthelper index 2ba8133..be18f37 100755 --- a/usr/bin/bthelper +++ b/usr/bin/bthelper @@ -9,11 +9,12 @@ if [ "$#" -ne 1 ]; then exit 0 fi +HCICONF=/usr/bin/hciconfig dev=$1 # Need to bring hci up before looking at MAC as it can be all zeros during init -/bin/hciconfig $dev up -if ! /bin/hciconfig $dev | grep -q "Bus: UART"; then +$HCICONF $dev up +if ! $HCICONF $dev | grep -q "Bus: UART"; then echo Not a UART-attached BT Modem exit 0 fi @@ -26,7 +27,7 @@ if ( /usr/bin/hcitool -i $dev dev | grep -q -E '\s43:4[35]:' ); then BDADDR=`printf '0x%02x 0x%02x 0x%02x 0xeb 0x27 0xb8' $((0x$B3 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B1 ^ 0xaa))` /usr/bin/hcitool -i $dev cmd 0x3f 0x001 $BDADDR - /bin/hciconfig $dev reset + $HCICONF $dev reset else echo Raspberry Pi BDADDR already set fi diff --git a/usr/bin/btuart b/usr/bin/btuart index afa4563..16f8417 100755 --- a/usr/bin/btuart +++ b/usr/bin/btuart @@ -1,6 +1,7 @@ #!/bin/sh HCIATTACH=/usr/bin/hciattach +DEV=/dev/ttyAMA0 if grep -q "raspberrypi,4" /proc/device-tree/compatible; then BDADDR= else @@ -22,10 +23,10 @@ serial1="`cat /proc/device-tree/aliases/serial1`" if [ "$uart0" = "$serial1" ] ; then uart0_pins="`wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' '`" if [ "$uart0_pins" = "16" ] ; then - $HCIATTACH /dev/serial1 bcm43xx 3000000 flow - $BDADDR + $HCIATTACH $DEV bcm43xx 3000000 flow - $BDADDR else - $HCIATTACH /dev/serial1 bcm43xx 921600 noflow - $BDADDR + $HCIATTACH $DEV bcm43xx 921600 noflow - $BDADDR fi else - $HCIATTACH /dev/serial1 bcm43xx 460800 noflow - $BDADDR + $HCIATTACH $DEV bcm43xx 460800 noflow - $BDADDR fi