[package] comgt: add usb hotplug handler to bring up 3g ifaces on boot or when the dongle is attached

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22061 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Jo-Philipp Wich 2010-07-04 18:11:34 +00:00
parent 95d71b860c
commit a5dd7363e3
2 changed files with 46 additions and 1 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=comgt
PKG_VERSION:=0.32
PKG_RELEASE:=3
PKG_RELEASE:=4
PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/comgt
@ -54,6 +54,8 @@ define Package/comgt/install
$(INSTALL_DATA) ./files/3g.button $(1)/etc/hotplug.d/button/05-3g
$(INSTALL_DIR) $(1)/etc/hotplug.d/iface
$(INSTALL_DATA) ./files/3g.iface $(1)/etc/hotplug.d/iface/05-3g
$(INSTALL_DIR) $(1)/etc/hotplug.d/usb
$(INSTALL_DATA) ./files/3g.usb $(1)/etc/hotplug.d/usb/30-3g
$(INSTALL_DIR) $(1)/etc/gcom
$(INSTALL_DATA) ./files/setpin.gcom $(1)/etc/gcom/setpin.gcom
$(INSTALL_DATA) ./files/setmode.gcom $(1)/etc/gcom/setmode.gcom

View File

@ -0,0 +1,43 @@
#!/bin/sh
. /etc/functions.sh
log() {
logger -t 3g-hotplug "$@"
}
find_3g_iface() {
local cfg="$1"
local tty="$2"
local proto
config_get proto "$cfg" proto
[ "$proto" = 3g ] && {
local auto
config_get_bool auto "$cfg" auto 1
[ "$auto" = 1 ] || return 0
local dev
config_get dev "$cfg" device
if [ "${dev##*/}" = "${tty##*/}" ]; then
log "Starting interface $cfg for device ${tty##*/}"
( sleep 1; /sbin/ifup "$cfg" ) &
fi
}
}
if [ "$ACTION" = add ]; then
case "$DEVICENAME" in
*-*:*.*) config_load network;;
*) exit 0;;
esac
local tty
for tty in /sys/$DEVPATH/ttyUSB*; do
[ -d "$tty" ] || break
config_foreach find_3g_iface interface "$tty"
done
fi