94 lines
2.1 KiB
Plaintext
94 lines
2.1 KiB
Plaintext
#!/sbin/runscript
|
|
# Copyright 1999-2005 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License, v2 or later
|
|
|
|
if [ "${MODULE}" = "alsa" ]; then
|
|
needalsasound="alsasound"
|
|
fi
|
|
depend() {
|
|
need logger $needalsasound
|
|
}
|
|
|
|
|
|
checkconfig() {
|
|
if [ -z "${COUNTRY}" ]; then
|
|
eerror "You need to config /etc/conf.d/slmodem first"
|
|
return 1
|
|
fi
|
|
}
|
|
|
|
loadsalsa() {
|
|
ebegin "Starting slmodemd for ${DEV}"
|
|
start-stop-daemon --start --background --nicelevel=${NICE} --make-pidfile \
|
|
--pidfile /var/run/slmodemd.pid --startas /usr/sbin/slmodemd \
|
|
-- -country=${COUNTRY} -g=${GROUP} ${SLMODEM_OPTS} --alsa ${HW_SLOT}
|
|
return ${?}
|
|
}
|
|
|
|
loadsmodule() {
|
|
modprobe ${MODULE}
|
|
|
|
if [ "$?" -gt 0 ]; then
|
|
eerror "Missing ${MODULE}. Please set up /etc/conf.d/slmodem"
|
|
return 1;
|
|
fi
|
|
|
|
if [ -z "${MDEV}" ]; then MDEV="/dev/${MODULE}0"; fi
|
|
if [ ! -c "${MDEV}" ]; then
|
|
case ${MODULE} in
|
|
slamr)
|
|
mknod ${MDEV} c 242 0
|
|
;;
|
|
slusb)
|
|
mknod ${MDEV} c 243 0
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
ebegin "Starting slmodemd for ${DEV}"
|
|
start-stop-daemon --start --background --nicelevel=${NICE} --make-pidfile \
|
|
--pidfile /var/run/slmodemd.pid --startas /usr/sbin/slmodemd \
|
|
-- -country=${COUNTRY} -g=${GROUP} ${SLMODEM_OPTS} ${MDEV}
|
|
return ${?}
|
|
}
|
|
|
|
start() {
|
|
|
|
checkconfig || return 1
|
|
if [ ! -c /dev/ppp ]; then mknod /dev/ppp c 108 0; fi
|
|
|
|
# either if we use alsa or not, the only thing we need is
|
|
# ttySL0, which is created by slmodemd when started (points to a pts)
|
|
|
|
if [ "${MODULE}" = "alsa" ]; then
|
|
loadsalsa
|
|
else
|
|
loadsmodule
|
|
fi
|
|
|
|
result=${?}
|
|
|
|
test ! -z "${LN_DEV}" && /bin/ln -s ${DEV} ${LN_DEV} 2> /dev/null
|
|
|
|
eend ${result}
|
|
}
|
|
|
|
stop() {
|
|
ebegin "Shutting down slmodemd"
|
|
start-stop-daemon --stop --quiet --pidfile /var/run/slmodemd.pid
|
|
result=${?}
|
|
[ -e /var/run/slmodemd.pid ] && rm /var/run/slmodemd.pid
|
|
unlink ${LN_DEV} 2> /dev/null
|
|
eend ${result}
|
|
if [ ! "${MODULE}" = "alsa" ]; then
|
|
ebegin "Waiting for ${MODULE} modem driver unload..."
|
|
for a in $(seq 0 2); do
|
|
sleep 1
|
|
echo -n "."
|
|
modprobe -r slamr 2> /dev/null && result=0
|
|
done
|
|
if [ "$RC_NOCOLOR" != "yes" ]; then echo; fi
|
|
eend ${result}
|
|
fi
|
|
}
|