15
local MODULES_MISSING=false
17
log_daemon_msg "Loading LIRC modules"
20
if [ $mod = "udev" ]; then
22
log_success_msg "Restarted via udev, don't reload modules"
25
modprobe $mod 2> /dev/null || MODULES_MISSING=true
30
if $MODULES_MISSING; then
31
log_failure_msg "Unable to load LIRC kernel modules. Verify your"
32
log_failure_msg "selected kernel modules in /etc/lirc/hardware.conf"
17
log_daemon_msg "Loading LIRC modules"
19
if [ $mod = "udev" ]; then
21
log_success_msg "Restarted via udev, don't reload modules"
24
modprobe $mod 2> /dev/null || MODULES_MISSING=true
29
if $MODULES_MISSING; then
30
log_failure_msg "Unable to load LIRC kernel modules. Verify your"
31
log_failure_msg "selected kernel modules in /etc/lirc/hardware.conf"
38
37
build_remote_args ()
40
local REMOTE_ARGS="$*"
42
#For remote only detection support, we need
43
#both REMOTE_DEVICE and TRANSMITTER_DEVICE undefined
44
if [ -z "$REMOTE_DEVICE" ] && [ -z "$TRANSMITTER_DEVICE" ] && [ -c $dev ]; then
48
#If we have a REMOTE_DEVICE or REMOTE_DRIVER defined (either because no devices
49
#were defined, OR if we explicitly did), then populate REMOTE_ARGS
50
if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then
51
if [ -n "$REMOTE_DEVICE" ] && [ "$REMOTE_DEVICE" != "none" ]; then
52
REMOTE_ARGS="--device=$REMOTE_DEVICE $REMOTE_ARGS"
54
if [ -n "$REMOTE_DRIVER" ] && [ "$REMOTE_DRIVER" != "none" ]; then
55
REMOTE_ARGS="--driver=$REMOTE_DRIVER $REMOTE_ARGS"
58
#Now, if we ALSO have a transmitter defined, add some args
59
#To make the first lircd listen up
60
if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then
61
REMOTE_ARGS="$REMOTE_ARGS --output=/dev/lircd --listen"
41
#For remote only detection support, we need
42
#both REMOTE_DEVICE and TRANSMITTER_DEVICE undefined
43
if [ -z "$REMOTE_DEVICE" ] && [ -z "$TRANSMITTER_DEVICE" ] && [ -c $dev ]; then
47
#If we have a REMOTE_DEVICE or REMOTE_DRIVER defined (either because no devices
48
#were defined, OR if we explicitly did), then populate REMOTE_ARGS
49
if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then
50
if [ -n "$REMOTE_DEVICE" ] && [ "$REMOTE_DEVICE" != "none" ]; then
51
REMOTE_ARGS="--device=$REMOTE_DEVICE $REMOTE_ARGS"
53
if [ -n "$REMOTE_DRIVER" ] && [ "$REMOTE_DRIVER" != "none" ]; then
54
REMOTE_ARGS="--driver=$REMOTE_DRIVER $REMOTE_ARGS"
57
#Now, if we ALSO have a transmitter defined, add some args
58
#To make the first lircd listen up
59
if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then
60
REMOTE_ARGS="$REMOTE_ARGS --listen"
62
REMOTE_ARGS="--output=$REMOTE_SOCKET $REMOTE_ARGS"
67
67
build_transmitter_args ()
69
local TRANSMITTER_ARGS="$*"
71
#Transmitters must be explicitly be defined
72
if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then
73
if [ -n "$TRANSMITTER_DEVICE" ] && [ "$TRANSMITTER_DEVICE" != "none" ]; then
74
TRANSMITTER_ARGS="--device=$TRANSMITTER_DEVICE $TRANSMITTER_ARGS"
76
if [ -n "$TRANSMITTER_DRIVER" ] && [ "$TRANSMITTER_DRIVER" != "none" ]; then
77
TRANSMITTER_ARGS="--driver=$TRANSMITTER_DRIVER $TRANSMITTER_ARGS"
80
#Now, if we ALSO have a remote defined, add some args
81
#To make the second lircd connect
82
if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then
83
TRANSMITTER_ARGS="$TRANSMITTER_ARGS --output=/dev/lircd1 --connect=localhost:8765 --pidfile=/var/run/lircd1.pid"
86
echo $TRANSMITTER_ARGS
71
#Transmitters must be explicitly be defined
72
if [ ! -z "$TRANSMITTER_DEVICE" ] || [ ! -z "$TRANSMITTER_DRIVER" ]; then
73
if [ -n "$TRANSMITTER_DEVICE" ] && [ "$TRANSMITTER_DEVICE" != "none" ]; then
74
TRANSMITTER_ARGS="--device=$TRANSMITTER_DEVICE $TRANSMITTER_ARGS"
76
if [ -n "$TRANSMITTER_DRIVER" ] && [ "$TRANSMITTER_DRIVER" != "none" ]; then
77
TRANSMITTER_ARGS="--driver=$TRANSMITTER_DRIVER $TRANSMITTER_ARGS"
80
#Now, if we ALSO have a remote defined, add some args
81
#To make the second lircd connect
82
if [ ! -z "$REMOTE_DEVICE" ] || [ ! -z "$REMOTE_DRIVER" ]; then
83
TRANSMITTER_SOCKET="${TRANSMITTER_SOCKET}1"
84
TRANSMITTER_ARGS="$TRANSMITTER_ARGS --connect=localhost:8765 --pidfile=/var/run/lirc/lircd1.pid"
86
TRANSMITTER_ARGS="--output=$TRANSMITTER_SOCKET $TRANSMITTER_ARGS"
88
echo $TRANSMITTER_ARGS
89
91
. /lib/lsb/init-functions
99
101
if [ -f /etc/lirc/hardware.conf ];then
100
. /etc/lirc/hardware.conf
103
if [ ! -f /etc/lirc/lircd.conf ] \
104
|| grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf;then
105
if [ "$1" = "start" ]; then
106
log_success_msg "No valid /etc/lirc/lircd.conf has been found."
107
log_success_msg "Remote control support has been disabled."
108
log_success_msg "Reconfigure LIRC or manually replace /etc/lirc/lircd.conf to enable."
114
if [ ! -f /etc/lirc/lircmd.conf ] \
115
|| grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf; then
119
if [ ! -f /etc/lirc/lircrc ] \
120
|| grep -q "^#UNCONFIGURED" /etc/lirc/lircrc; then
102
. /etc/lirc/hardware.conf
105
if [ ! -f /etc/lirc/lircd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircd.conf; then
106
if [ "$1" = "start" ]; then
107
log_success_msg "No valid /etc/lirc/lircd.conf has been found."
108
log_success_msg "Remote control support has been disabled."
109
log_success_msg "Reconfigure LIRC or manually replace /etc/lirc/lircd.conf to enable."
117
if [ ! -f /etc/lirc/lircmd.conf ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircmd.conf; then
121
if [ ! -f /etc/lirc/lircrc ] || grep -q "^#UNCONFIGURED" /etc/lirc/lircrc; then
125
#We need default socket locations
126
OLD_SOCKET="/dev/lircd"
127
if [ -z "$REMOTE_SOCKET" ]; then
128
REMOTE_SOCKET="/var/run/lirc/lircd"
130
if [ -z "$TRANSMITTER_SOCKET" ]; then
131
TRANSMITTER_SOCKET="/var/run/lirc/lircd"
126
if [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then
127
load_modules $2 $REMOTE_MODULES $TRANSMITTER_MODULES $MODULES
129
if [ "$START_LIRCD" = "true" ]; then
130
log_daemon_msg "Starting remote control daemon(s) : LIRC "
131
REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS`
132
TRANSMITTER_LIRCD_ARGS=`build_transmitter_args $TRANSMITTER_LIRCD_ARGS`
134
#if we have a remote defined, it is primary process
135
if [ ! -z "$REMOTE_LIRCD_ARGS" ]; then
136
start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null
139
#now if we additionally have a transmitter defined, it is secondary process
140
if [ ! -z "$TRANSMITTER_LIRCD_ARGS" ]; then
141
/usr/sbin/lircd $TRANSMITTER_LIRCD_ARGS < /dev/null
143
elif [ ! -z "$TRANSMITTER_LIRCD_ARGS" ]; then
144
start-stop-daemon --start --quiet --exec /usr/sbin/lircd -- $TRANSMITTER_LIRCD_ARGS < /dev/null
149
if [ "$START_LIRCMD" = "true" ]; then
150
log_daemon_msg "Starting remote control mouse daemon : LIRCMD "
151
start-stop-daemon --start --quiet --exec /usr/sbin/lircmd < /dev/null
154
if [ "$START_IREXEC" = "true" ]; then
155
log_daemon_msg "Starting execution daemon: irexec"
156
start-stop-daemon --start --quiet --exec /usr/bin/irexec -- -d /etc/lirc/lircrc < /dev/null
161
if [ "$START_IREXEC" = "true" ]; then
162
log_daemon_msg "Stopping execution daemon: irexec"
163
start-stop-daemon --stop --quiet --exec /usr/bin/irexec
166
if [ "$START_LIRCMD" = "true" ]; then
167
log_daemon_msg "Stopping remote control mouse daemon: LIRCMD"
168
start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd
171
if [ "$START_LIRCD" = "true" ]; then
172
log_daemon_msg "Stopping remote control daemon(s): LIRC"
173
start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
178
if [ "$START_IREXEC" = "true" ]; then
179
start-stop-daemon --stop --quiet --signal 1 --exec /usr/bin/irexec
181
if [ "$START_LIRCD" = "true" ]; then
182
start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd
184
if [ "$START_LIRCMD" = "true" ]; then
185
start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd
190
#passes parameter $2 which is possibly our udev paramater
194
echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"
136
if [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then
137
load_modules $2 $REMOTE_MODULES $TRANSMITTER_MODULES $MODULES
140
if [ "$START_LIRCD" = "true" ]; then
141
[ -d "/var/run/lirc" ] || mkdir -p "/var/run/lirc"
142
log_daemon_msg "Starting remote control daemon(s) : LIRC "
143
REMOTE_LIRCD_ARGS=`build_remote_args $REMOTE_LIRCD_ARGS`
144
TRANSMITTER_LIRCD_ARGS=`build_transmitter_args $TRANSMITTER_LIRCD_ARGS`
146
#if we have a remote defined, it is primary process
147
if [ ! -z "$REMOTE_LIRCD_ARGS" ]; then
148
start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircd -- $REMOTE_LIRCD_ARGS < /dev/null
150
if [ -S "$REMOTE_SOCKET" -a "$OLD_SOCKET" != "$REMOTE_SOCKET" ]; then
151
rm -f $OLD_SOCKET && ln -s $REMOTE_SOCKET $OLD_SOCKET
154
#now if we additionally have a transmitter defined, it is secondary process
155
if [ ! -z "$TRANSMITTER_LIRCD_ARGS" ]; then
156
/usr/sbin/lircd $TRANSMITTER_LIRCD_ARGS < /dev/null
157
if [ -S "$TRANSMITTER_SOCKET" ]; then
158
rm -f ${OLD_SOCKET}1 && ln -s $TRANSMITTER_SOCKET ${OLD_SOCKET}1
161
elif [ ! -z "$TRANSMITTER_LIRCD_ARGS" ]; then
162
start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircd -- $TRANSMITTER_LIRCD_ARGS < /dev/null
164
if [ -S "$TRANSMITTER_SOCKET" -a "$OLD_SOCKET" != "$TRANSMITTER_SOCKET" ]; then
165
rm -f $OLD_SOCKET && ln -s $TRANSMITTER_SOCKET $OLD_SOCKET
172
if [ "$START_LIRCMD" = "true" ]; then
173
[ -d "/var/run/lirc" ] || mkdir -p "/var/run/lirc"
174
log_daemon_msg "Starting remote control mouse daemon : LIRCMD "
175
start-stop-daemon --start --quiet --oknodo --exec /usr/sbin/lircmd < /dev/null
179
if [ "$START_IREXEC" = "true" ]; then
180
[ -d "/var/run/lirc" ] || mkdir -p "/var/run/lirc"
181
log_daemon_msg "Starting execution daemon: irexec"
182
start-stop-daemon --start --quiet --oknodo --exec /usr/bin/irexec -- -d /etc/lirc/lircrc < /dev/null
187
if [ "$START_IREXEC" = "true" ]; then
188
log_daemon_msg "Stopping execution daemon: irexec"
189
start-stop-daemon --stop --quiet --exec /usr/bin/irexec
193
if [ "$START_LIRCMD" = "true" ]; then
194
log_daemon_msg "Stopping remote control mouse daemon: LIRCMD"
195
start-stop-daemon --stop --quiet --exec /usr/sbin/lircmd
199
if [ "$START_LIRCD" = "true" ]; then
200
log_daemon_msg "Stopping remote control daemon(s): LIRC"
201
start-stop-daemon --stop --quiet --exec /usr/sbin/lircd
203
[ -h "$OLD_SOCKET" ] && rm -f $OLD_SOCKET
204
[ -h "${OLD_SOCKET}1" ] && rm -f ${OLD_SOCKET}1
208
if [ "$START_IREXEC" = "true" ]; then
209
start-stop-daemon --stop --quiet --signal 1 --exec /usr/bin/irexec
212
if [ "$START_LIRCD" = "true" ]; then
213
start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircd
216
if [ "$START_LIRCMD" = "true" ]; then
217
start-stop-daemon --stop --quiet --signal 1 --exec /usr/sbin/lircmd
222
#passes parameter $2 which is possibly our udev paramater
226
echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}"