#!/bin/bash # # $Id: rc.alcatelusb,v 1.7.2.12 2005/07/07 20:11:57 franck78 Exp $ # eval $(/usr/local/bin/readhash /var/ipfire/ppp/settings) # Debugging. Comment it out to stop logging DEBUG="yes" msg() { if [ "z$DEBUG" != "z" ] ; then /usr/bin/logger -t red "Speedtouch USB: $*" fi /bin/echo "$*" } function wait_for_iface() { msg "Waiting for interface: $1" COUNTER=10 FLREADY=0 TIMES=1 while [ $TIMES -le $COUNTER ]; do /sbin/ifconfig $1> /dev/null 2>&1 if [ $? -eq 0 ]; then FLREADY=1 break fi /bin/sleep 1 TIMES=$(expr $TIMES + 1) done if [ "$FLREADY" -eq 0 ]; then msg "Interface not found: $1" exit 1 fi } # See how we were called. case "$1" in start) if [ ! -f "/proc/bus/usb/devices" ]; then msg "No USB enabled" exit 1 fi speedtouch=`/bin/cat /proc/bus/usb/devices | /bin/grep 'Vendor=06b9 ProdID=4061' | /usr/bin/cut -d ' ' -f6` case "$speedtouch" in '') msg "No Speedtouch found" exit 1 ;; '0.00' | '0.01' | '2.00') modem='v0123' # Speedtouch 530 aka Rev 3.00 does not work actually ;; '4.00') modem='v4_b' ;; *) msg "Unknown version or unsupported model Rev $speedtouch" exit 1 ;; esac if ( ! /bin/ps -ef | /bin/grep -q [m]odem_run ); then rm -f /var/run/pppoa3-modem*.pid msg "Uploading firmware to modem" /usr/sbin/modem_run -v 1 -t 90 -n 4 -f /var/ipfire/alcatelusb/firmware.$modem.bin # Check if Firmware uploaded ok. Reset USB if Failed if [ $? -ne 0 ]; then msg "Firmware upload failed: Retrying" /usr/local/bin/resetusb /usr/sbin/modem_run -v 1 -t 90 -n 4 -f /var/ipfire/alcatelusb/firmware.$modem.bin if [ $? -ne 0 ]; then msg "Firmware upload failed: Exiting" exit 1 fi fi fi # Alcatel USB PPPoE Mode if [ "$PROTOCOL" = "RFC1483" ]; then iface="tap0" /sbin/modprobe tun /usr/sbin/pppoa3 -b -c -m 1 -vpi $VPI -vci $VCI wait_for_iface $iface /sbin/ifconfig $iface up exit $? fi exit 0 ;; stop) msg "stop" /bin/killall pppoa3 2>/dev/null /bin/sleep 1 /sbin/modprobe -r tun ;; cleanup) msg "driver cleanup and USB Bus reset" /usr/local/bin/resetusb ;; *) /bin/echo "Usage: $0 {start|stop|cleanup}" exit 1 ;; esac exit 0