blob: cf891dcf937c932831eb6eee0a6f8d2a7b75741e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
#!/bin/sh
#
# Start/stop the Bluetooth daemons
#
# This version has been modified by SukkoPera, taking inspiration from then
# Debian init script, to add support for register-passkeys. Modified by
# Patrick Volkerding to add "restart" support, and cleaned up a tiny bit.
set -e
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DESC="Bluetooth subsystem"
# The register-passkeys script was originally written by Debian:
REGISTER_PASSKEYS=/usr/lib/bluetooth/register-passkeys
HCID_NAME=hcid
HIDD_NAME=hidd
HID2HCI_NAME=hid2hci
RFCOMM_NAME=rfcomm
PAND_NAME=pand
DUND_NAME=dund
HCID_EXEC="`which $HCID_NAME || true`"
HIDD_EXEC="`which $HIDD_NAME || true`"
HID2HCI_EXEC="`which $HID2HCI_NAME || true`"
RFCOMM_EXEC="`which $RFCOMM_NAME || true`"
PAND_EXEC="`which $PAND_NAME || true`"
DUND_EXEC="`which $DUND_NAME || true`"
HCID_CONFIG="/etc/bluetooth/hcid.conf"
RFCOMM_CONFIG="/etc/bluetooth/rfcomm.conf"
# Source rc.bluetooth.conf
. /etc/rc.d/rc.bluetooth.conf
bluetooth_start() {
echo -n "Starting $DESC: "
if [ -x "$HIDD_EXEC" ] ; then
if $HIDD_ENABLE && [ -x "$HIDD_EXEC" -a -n "$HIDD_OPTIONS" ] ; then
$HIDD_EXEC $HIDD_OPTIONS || true
echo -n " $HIDD_NAME"
fi
else
echo "BlueZ does not appear to be installed!"
exit
fi
# Separate sdp daemon is depreciated, now internal function.
if $SDPD_ENABLE ; then
$HCID_EXEC -s -f $HCID_CONFIG
echo -n " $HCID_NAME sdp"
else
$HCID_EXEC -f $HCID_CONFIG
echo -n " $HCID_NAME"
fi
if $HID2HCI_ENABLE && [ -x "$HID2HCI_EXEC" ] ; then
$HID2HCI_EXEC --tohci > /dev/null 2>&1 || true
echo -n " $HID2HCI_NAME"
fi
if $RFCOMM_ENABLE && [ -x "$RFCOMM_EXEC" -a -f "$RFCOMM_CONFIG" ] ; then
$RFCOMM_EXEC -f $RFCOMM_CONFIG bind all || true
echo -n " $RFCOMM_NAME"
fi
if $DUND_ENABLE && [ -x "$DUND_EXEC" -a -n "$DUND_OPTIONS" ] ; then
$DUND_EXEC $DUND_OPTIONS
echo -n " $DUND_NAME"
fi
if $PAND_ENABLE && [ -x "$PAND_EXEC" -a -n "$PAND_OPTIONS" ] ; then
$PAND_EXEC $PAND_OPTIONS
echo -n " $PAND_NAME"
fi
if [ -x $REGISTER_PASSKEYS ]; then
$REGISTER_PASSKEYS
echo -n " passkeys"
fi
echo "."
}
bluetooth_stop() {
echo -n "Stopping $DESC: "
killall $PAND_NAME > /dev/null 2>&1 || true
echo -n " $PAND_NAME"
killall $DUND_NAME > /dev/null 2>&1 || true
echo -n " $DUND_NAME"
if [ -x "$RFCOMM_EXEC" ] ; then
$RFCOMM_EXEC release all > /dev/null 2>&1 || true
echo -n " $RFCOMM_NAME"
fi
killall $HIDD_NAME > /dev/null 2>&1 || true
echo -n " $HIDD_NAME"
killall $HCID_NAME > /dev/null 2>&1 || true
echo -n " $HCID_NAME"
echo "."
}
case "$1" in
start)
bluetooth_start
;;
stop)
bluetooth_stop
;;
restart)
bluetooth_stop
sleep 1
bluetooth_start
;;
*)
echo "Usage: $0 start|stop|restart" >&2
exit 1
;;
esac
exit 0
|