2022-01-26 21:46:44 +01:00
|
|
|
#!/bin/bash
|
2010-05-19 10:58:23 +02:00
|
|
|
|
2016-06-30 22:26:57 +02:00
|
|
|
# /etc/rc.d/rc.bluetooth (based on BLFS script)
|
|
|
|
|
|
|
|
# Populated from /etc/default/bluetooth:
|
|
|
|
# ACTIVE_HCI_DEVICES_ON_BOOT and SDPTOOL_OPTIONS
|
|
|
|
|
|
|
|
[ -r /etc/default/bluetooth ] && . /etc/default/bluetooth
|
|
|
|
|
|
|
|
start_hci_dev() {
|
|
|
|
for dev in ${ACTIVE_HCI_DEVICES_ON_BOOT} ; do
|
|
|
|
hciconfig $dev up > /dev/null 2>&1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
run_sdptool() {
|
|
|
|
# Declaring IFS local in this function, removes the need to save/restore it
|
|
|
|
local IFS option
|
|
|
|
test -x /usr/bin/sdptool || return 1
|
|
|
|
IFS=";"
|
|
|
|
for option in ${SDPTOOL_OPTIONS}; do
|
|
|
|
IFS=" "
|
|
|
|
/usr/bin/sdptool $option > /dev/null 2>&1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
start_uarts() {
|
|
|
|
[ -r /etc/bluetooth/uart.conf ] || return
|
2022-01-26 21:46:44 +01:00
|
|
|
grep -v '^[[:space:]]*(#|$)' /etc/bluetooth/uart.conf | grep -v "^#" | sed -r '/^\s*$/d' | while read i; do
|
2016-06-30 22:26:57 +02:00
|
|
|
/usr/bin/hciattach $i > /dev/null 2>&1
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
stop_uarts() {
|
|
|
|
killall /usr/bin/hciattach > /dev/null 2>&1
|
|
|
|
}
|
|
|
|
|
|
|
|
start() {
|
|
|
|
if [ -d /sys/class/bluetooth ]; then
|
|
|
|
# Start as background process and assume OK
|
|
|
|
echo -n "Starting Bluetooth services: bluetoothd "
|
|
|
|
/usr/sbin/bluetoothd &
|
|
|
|
echo -n "hciconfig "
|
|
|
|
start_hci_dev
|
|
|
|
echo -n "sdptool "
|
|
|
|
run_sdptool
|
|
|
|
echo "hciattach"
|
|
|
|
start_uarts
|
|
|
|
fi
|
2010-05-19 10:58:23 +02:00
|
|
|
}
|
|
|
|
|
2016-06-30 22:26:57 +02:00
|
|
|
stop() {
|
|
|
|
stop_uarts
|
|
|
|
killall /usr/sbin/bluetoothd > /dev/null 2>&1
|
2010-05-19 10:58:23 +02:00
|
|
|
}
|
|
|
|
|
2016-06-30 22:26:57 +02:00
|
|
|
case "${1}" in
|
2010-05-19 10:58:23 +02:00
|
|
|
start)
|
2016-06-30 22:26:57 +02:00
|
|
|
start
|
2010-05-19 10:58:23 +02:00
|
|
|
;;
|
|
|
|
stop)
|
2016-06-30 22:26:57 +02:00
|
|
|
stop
|
2010-05-19 10:58:23 +02:00
|
|
|
;;
|
|
|
|
restart)
|
2016-06-30 22:26:57 +02:00
|
|
|
stop
|
2010-05-19 10:58:23 +02:00
|
|
|
sleep 1
|
2016-06-30 22:26:57 +02:00
|
|
|
start
|
2010-05-19 10:58:23 +02:00
|
|
|
;;
|
|
|
|
*)
|
2016-06-30 22:26:57 +02:00
|
|
|
echo "Usage: ${0} {start|stop|restart}"
|
2010-05-19 10:58:23 +02:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|