summaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-07-04 18:11:34 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-07-04 18:11:34 +0000
commitb11b5fb9e5db8ef272826061ac70c20621d8ad3c (patch)
treeef0c1f8abbdeab52cbef5418402826863c9ee527 /package
parent5e771537e928e05ded152685325e58c028176322 (diff)
[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
Diffstat (limited to 'package')
-rw-r--r--package/comgt/Makefile4
-rw-r--r--package/comgt/files/3g.usb43
2 files changed, 46 insertions, 1 deletions
diff --git a/package/comgt/Makefile b/package/comgt/Makefile
index a7c45c558..253e12af0 100644
--- a/package/comgt/Makefile
+++ b/package/comgt/Makefile
@@ -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
diff --git a/package/comgt/files/3g.usb b/package/comgt/files/3g.usb
new file mode 100644
index 000000000..c52646b3d
--- /dev/null
+++ b/package/comgt/files/3g.usb
@@ -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