2023-05-22 22:08:29 +08:00

84 lines
2.4 KiB
Bash

#!/bin/sh
ROOTER=/usr/lib/rooter
ROOTER_LINK="/tmp/links"
log() {
modlog "Modem Restart/Diisconnect $CURRMODEM" "$@"
}
ifname1="ifname"
if [ -e /etc/newstyle ]; then
ifname1="device"
fi
CURRMODEM=$1
CPORT=$(uci -q get modem.modem$CURRMODEM.commport)
INTER=$(uci get modem.modeminfo$CURRMODEM.inter)
if [ "$2" != "9" -a "$2" != "11" ]; then
PROTO=$(uci get modem.modem$CURRMODEM.proto)
if [ "$PROTO" = "3" -o "$PROTO" = "30" ]; then
mdevice=$(uci -q get modem.modem$CURRMODEM.mdevice)
mapn=$(uci -q get modem.modem$CURRMODEM.mapn)
mipt=$(uci -q get modem.modem$CURRMODEM.mipt)
nauth=$(uci -q get modem.modem$CURRMODEM.mauth)
nusername=$(uci -q get modem.modem$CURRMODEM.musername)
mpassword=$(uci -q get modem.modem$CURRMODEM.mpassword)
log "Disconnect Network"
umbim -t 1 -d "$mdevice" disconnect
sleep 1
exit 0
fi
if [ "$PROTO" = "2" ]; then
mdevice=$(uci -q get modem.modem$CURRMODEM.mdevice)
mapn=$(uci -q get modem.modem$CURRMODEM.mapn)
mcid=$(uci -q get modem.modem$CURRMODEM.mcid)
nauth=$(uci -q get modem.modem$CURRMODEM.mauth)
nusername=$(uci -q get modem.modem$CURRMODEM.musername)
mpassword=$(uci -q get modem.modem$CURRMODEM.mpassword)
uqmi -s -d "$device" --stop-network 0xffffffff --autoconnect > /dev/null & sleep 1 ; kill -9 $!
exit 0
fi
if [ "$2" = "10" ]; then
exit 0
fi
fi
if [ "$2" != "9" -a "$2" != "11" ]; then # disconnect
uci set modem.modem$CURRMODEM.connected=0
uci commit modem
jkillall getsignal$CURRMODEM
rm -f $ROOTER_LINK/getsignal$CURRMODEM
jkillall con_monitor$CURRMODEM
rm -f $ROOTER_LINK/con_monitor$CURRMODEM
ifdown wan$INTER
$ROOTER/gcom/gcom-locked "/dev/ttyUSB$CPORT" "reset.gcom" "$CURRMODEM"
else # restart
uVid=$(uci get modem.modem$CURRMODEM.uVid)
uPid=$(uci get modem.modem$CURRMODEM.uPid)
#if [ $uVid != "2c7c" ]; then
if [ ! -z "$CPORT" ]; then
ATCMDD="AT+CFUN=1,1"
OX=$($ROOTER/gcom/gcom-locked "/dev/ttyUSB$CPORT" "run-at.gcom" "$CURRMODEM" "$ATCMDD")
fi
log "Hard modem reset done"
#fi
ifdown wan$INTER
uci delete network.wan$CURRMODEM
uci set network.wan$CURRMODEM=interface
uci set network.wan$CURRMODEM.proto=dhcp
uci set network.wan$CURRMODEM.${ifname1}="wan"$CURRMODEM
uci set network.wan$CURRMODEM.metric=$CURRMODEM"0"
uci commit network
/etc/init.d/network reload
echo "1" > /tmp/modgone
log "Hard USB reset done"
PORT="usb$CURRMODEM"
echo $PORT > /sys/bus/usb/drivers/usb/unbind
sleep 35
echo $PORT > /sys/bus/usb/drivers/usb/bind
fi