Add CDMA/EVDO support to comgt package
This patch adds a chat script and makes some modifications to /lib/network/3g.sh to enable seamless use of CDMA/EVDO modems in addition to the existing GPRS/UMTS support. Modifications to 3g.sh are: - Added 'chat' variable to point at the appropriate script - Added 'evdo' and 'cdma' as acceptable 'service' values, and skip the whole gcom initialization bit - Changed pppd connection speed from 460800 to more widely supported 115200; in my experience, this is not your actual connection speed, but at what speed pppd sends setup commands to the interface. This kinda eliminates the need for /etc/ppp/3g.connect - I think I've replaced that functionality, but in a slightly more standardized method, using the 'connect' variable understood by PPP. Signed-off-by: RB<aoz.syn@gmail.com> SVN-Revision: 10347
This commit is contained in:
parent
875cd251a0
commit
738d610209
3 changed files with 47 additions and 24 deletions
|
@ -48,6 +48,7 @@ define Package/comgt/install
|
|||
$(INSTALL_BIN) ./files/3g.connect $(1)/etc/ppp/3g.connect
|
||||
$(INSTALL_DIR) $(1)/etc/chatscripts
|
||||
$(INSTALL_DATA) ./files/3g.chat $(1)/etc/chatscripts/3g.chat
|
||||
$(INSTALL_DATA) ./files/evdo.chat $(1)/etc/chatscripts/evdo.chat
|
||||
$(INSTALL_DIR) $(1)/lib/network
|
||||
$(INSTALL_DATA) ./files/3g.sh $(1)/lib/network/3g.sh
|
||||
$(INSTALL_DIR) $(1)/etc/hotplug.d/button
|
||||
|
|
|
@ -36,6 +36,7 @@ stop_interface_3g() {
|
|||
setup_interface_3g() {
|
||||
local iface="$1"
|
||||
local config="$2"
|
||||
local chat="/etc/chatscripts/3g.chat"
|
||||
|
||||
config_get device "$config" device
|
||||
|
||||
|
@ -51,30 +52,35 @@ setup_interface_3g() {
|
|||
set_3g_led 1 0 1
|
||||
|
||||
# figure out hardware specific commands for the card
|
||||
if gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep Novatel 2>/dev/null >/dev/null; then
|
||||
case "$service" in
|
||||
umts_only) CODE=2;;
|
||||
gprs_only) CODE=1;;
|
||||
*) CODE=0;;
|
||||
esac
|
||||
mode="AT\$NWRAT=${CODE},2"
|
||||
else
|
||||
case "$service" in
|
||||
umts_only) CODE=1;;
|
||||
gprs_only) CODE=0;;
|
||||
*) CODE=3;;
|
||||
esac
|
||||
mode="AT_OPSYS=${CODE}"
|
||||
fi
|
||||
|
||||
PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
|
||||
echo "$cfg(3g): Failed to set the PIN code."
|
||||
set_3g_led 0 0 0
|
||||
return 1
|
||||
}
|
||||
MODE="$mode" gcom -d "$device" -s /etc/gcom/setmode.gcom
|
||||
case "$service" in
|
||||
cdma|evdo) chat="/etc/chatscripts/evdo.chat";;
|
||||
*)
|
||||
if gcom -d "$device" -s /etc/gcom/getcardinfo.gcom | grep Novatel 2>/dev/null >/dev/null; then
|
||||
case "$service" in
|
||||
umts_only) CODE=2;;
|
||||
gprs_only) CODE=1;;
|
||||
*) CODE=0;;
|
||||
esac
|
||||
mode="AT\$NWRAT=${CODE},2"
|
||||
else
|
||||
case "$service" in
|
||||
umts_only) CODE=1;;
|
||||
gprs_only) CODE=0;;
|
||||
*) CODE=3;;
|
||||
esac
|
||||
mode="AT_OPSYS=${CODE}"
|
||||
fi
|
||||
|
||||
PINCODE="$pincode" gcom -d "$device" -s /etc/gcom/setpin.gcom || {
|
||||
echo "$cfg(3g): Failed to set the PIN code."
|
||||
set_3g_led 0 0 0
|
||||
return 1
|
||||
}
|
||||
MODE="$mode" gcom -d "$device" -s /etc/gcom/setmode.gcom
|
||||
esac
|
||||
set_3g_led 1 0 0
|
||||
|
||||
config_set "$config" "connect" "${apn:+USE_APN=$apn }/usr/sbin/chat -t5 -f $chat"
|
||||
start_pppd "$config" \
|
||||
noaccomp \
|
||||
nopcomp \
|
||||
|
@ -83,7 +89,6 @@ setup_interface_3g() {
|
|||
noauth \
|
||||
lock \
|
||||
crtscts \
|
||||
connect "USE_APN=\"$apn\" /etc/ppp/3g.connect" \
|
||||
${mtu:+mtu $mtu mru $mtu} \
|
||||
460800 "$device"
|
||||
115200 "$device"
|
||||
}
|
||||
|
|
17
package/comgt/files/evdo.chat
Normal file
17
package/comgt/files/evdo.chat
Normal file
|
@ -0,0 +1,17 @@
|
|||
# This is a simple chat script based off of the one provided by Sierra Wireless
|
||||
# for CDMA connections. It should work for both Sprint and Verizon networks.
|
||||
|
||||
ABORT BUSY
|
||||
ABORT 'NO CARRIER'
|
||||
ABORT ERROR
|
||||
ABORT 'NO DIAL TONE'
|
||||
ABORT 'NO ANSWER'
|
||||
ABORT DELAYED
|
||||
REPORT CONNECT
|
||||
TIMEOUT 10
|
||||
'' AT
|
||||
OK ATZ
|
||||
SAY 'Calling CDMA/EVDO'
|
||||
TIMEOUT 30
|
||||
OK ATDT#777
|
||||
CONNECT ''
|
Loading…
Reference in a new issue