#!/sbin/runscript # Copyright 1999-2004 Gentoo Foundation # Distributed under the terms of the GNU General Public License, v2 or later # $Header: /var/cvsroot/gentoo-x86/net-dialup/slmodem/files/slmodem-2.9.init,v 1.9 2004/08/13 12:59:34 dragonheart Exp $ depend() { need logger if [ "${MODULE}" = "alsa" ]; then need alsasound fi } checkconfig() { if [ -z "${COUNTRY}" ]; then eerror "You need to config /etc/conf.d/slmodem first" return 1 fi } function 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} --alsa hw:${HW_SLOT} return ${?} } function 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 #sleep as per http://bugs.gentoo.org/show_bug.cgi?id=47947#c59 ebegin "Waiting for ${MODULE} modem driver initialisation" local COUNT=0 if [ "$RC_NOCOLOR" != "yes" ]; then echo -e "\e[A\e[49G " echo -ne "\e[A\e[49G" fi while [ ! -c ${MDEV} -a ${COUNT} -lt 5 ]; do sleep 0.5 echo -n "." COUNT=`expr ${COUNT} + 1` done if [ "$RC_NOCOLOR" != "yes" ]; then echo; fi if [ ! -c ${MDEV} ]; then eerror "Module - ${MODULE} failed to initialise device ${MDEV}" return 1 else eend 0 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} ${MDEV} return ${?} } start() { checkconfig || return 1 # 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 && rm /var/run/slmodemd.pid result=${?} unlink ${LN_DEV} 2> /dev/null eend ${result} if [ ! "${MODULE}" == "alsa" ]; then ebegin "Waiting for ${MODULE} modem driver unload" if [ "$RC_NOCOLOR" != "yes" ]; then echo -e "\e[A\e[43G " echo -ne "\e[A\e[43G" fi for ((a=0,result=1; result==1 && a <= 5 ; a++)) do sleep 0.25 echo -n "." modprobe -r slamr 2> /dev/null && result=0 done if [ "$RC_NOCOLOR" != "yes" ]; then echo; fi eend ${result} fi }