commit 8872fbb3f2e895252c738c246dc5491c9413d603
parent 60b63579a4dd28c88b7da1623c7e0277c641d42b
Author: Christoph Lohmann <20h@r-36.net>
Date: Sun, 27 Feb 2011 18:27:34 +0100
Redoing the the Make system. Examples are now separate.
Diffstat:
26 files changed, 301 insertions(+), 285 deletions(-)
diff --git a/Makefile b/Makefile
@@ -12,6 +12,11 @@ dist:
@gzip conn-${VERSION}.tar
@rm -rf conn-${VERSION}
+examples:
+ @echo installing example connections to ${DESTDIR}/etc/conn
+ @mkdir -p ${DESTDIR}/etc/conn
+ @cp -R examples/* ${DESTDIR}/etc/conn
+
pm:
@echo installing pm file to ${DESTDIR}/etc/pm/sleep.d
@mkdir -p ${DESTDIR}/etc/pm/sleep.d
@@ -32,4 +37,8 @@ uninstall:
@echo removing conn script from ${DESTDIR}${PREFIX}/bin
@rm -f ${DESTDIR}${PREFIX}/bin/conn
-.PHONY: dist install uninstall
+uninstalletc:
+ @echo removing etc files from ${DESTDIR}/etc/conn
+ @rm -rf ${DESTDIR}${PREFIX}/etc/conn
+
+.PHONY: dist examples pm etc install uninstall
diff --git a/README.md b/README.md
@@ -17,12 +17,19 @@ many different connections in a Unix like environment.
## Installation
+Needed:
+
# For installing the conn script.
make install
# For installing the etc files.
make etc
+
+Optional:
+
# For installing the pm sleep.d script.
make pm
+ # For installing the example connections
+ make examples
## Architecture
diff --git a/etc/conn/eth/README.md b/etc/conn/eth/README.md
@@ -1,6 +0,0 @@
-## Ethernet - stable and gross
-
-Much could be done here, but the most obvious setup is to run dhcp on it.
-
-A combination with ifplugd could be done.
-
diff --git a/etc/conn/eth/run.sh b/etc/conn/eth/run.sh
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-. ../common.sh
-
-interfce=$2
-[ "$2" == "" ] && interface="eth0"
-
-case "$1" in
- -s)
- if ! islinkup $interface;
- then
- setlinkup $interface
- fi
- startdhcp $interface
- exit $?
- ;;
- -k)
- stopdhcp $interface
- islinkup $interface && setlinkdown $interface
- exit $?
- ;;
- -u)
- exit $?
- ;;
- -r)
- $0 -k $interface;
- $0 -s $interface;
- ;;
- *)
- echo "usage: $0 [-s|-k|-u|-r] interface"
- exit 1
- ;;
-esac
-
diff --git a/etc/conn/wifi/README.md b/etc/conn/wifi/README.md
@@ -1,14 +0,0 @@
-# Wifi resolving
-
-1. run.sh starts wpa-supplicant and wpa-cli.
-2. wpa-cli runs $interface-action.sh on an event.
-3. $interface-action.sh greps in networks.tbl for the ssid of the
- relevant network and calls the given script.
-4. The script networks/$script is run and gets the interface and
- the changed state as argument.
-
-## WPA Supplicant
-
-The configuration file for wpa-supplicant is given in conn/common.sh;
-$WPA_CONF. Nearly everything can be changed there too.
-
diff --git a/etc/conn/wifi/networks.tbl b/etc/conn/wifi/networks.tbl
@@ -1,2 +0,0 @@
-skkmswp.sh SKKMSWP
-
diff --git a/etc/conn/wifi/networks/skkmswp.sh b/etc/conn/wifi/networks/skkmswp.sh
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-interface="$1"
-
-case "$2" in
- CONNECTED)
- # This is dangerous, but assumed.
- ip addr flush dev $interface 2>&1 >/dev/null
- ip addr add 192.168.1.6/24 dev $interface \
- brd 192.168.1.255 2>&1 >/dev/null
- ip route add default via 192.168.1.2 dev $interface \
- 2>&1 >/dev/null
- echo "nameserver 8.8.8.8" > /etc/resolv.conf
- ;;
- DISCONNECTED)
- ip addr del 192.168.1.6/24 dev $interface 2>&1 >/dev/null
- ;;
- *)
- exit 1;
- ;;
-esac
-
diff --git a/etc/conn/wifi/run.sh b/etc/conn/wifi/run.sh
@@ -1,36 +0,0 @@
-#!/bin/sh
-
-. ../common.sh
-
-interface=$2
-[ "$2" == "" ] && interface="wlan0"
-
-case "$1" in
- -s)
- if ! islinkup $interface;
- then
- setlinkup $interface
- fi
- startwpa $interface
- exit $?
- ;;
- -k)
- stopwpa $interface
-
- islinkup $interface && setlinkdown $interface
- exit $?
- ;;
- -u)
- hupwpa $interface
- exit $?
- ;;
- -r)
- $0 -k $interface;
- $0 -s $interface;
- ;;
- *)
- echo "usage: $0 [-s|-k|-u|-r] interface"
- exit 1
- ;;
-esac
-
diff --git a/etc/conn/wifi/wlan0-action.sh b/etc/conn/wifi/wlan0-action.sh
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-. ../common.sh
-
-interface="$1"
-action="$2"
-ssid=`getssid $interface`
-
-[ $LOGGING -eq 1 ] && \
- logger -t "$interface-action" "Got request for $interface $ssid $action."
-
-getscript() {
- cat networks.tbl \
- | grep "$ssid\$" \
- | awk -F'\t' '{print $1}'
-}
-
-script=`getscript $ssid`
-if [ "$script" != "" ];
-then
- cd networks
- ./$script $interface $action
- exit $?
-fi
-
-case "$action" in
- CONNECTED)
- startdhcp $interface
- ;;
- DISCONNECTED)
- stopdhcp $interface
- ;;
- *)
- exit 1;
- ;;
-esac
-
-exit 0
-
diff --git a/etc/conn/wwan/README.md b/etc/conn/wwan/README.md
@@ -1,11 +0,0 @@
-# WWAN - the never ending story
-
-Wwan on Linux depends on the hardware you are using and how to initialize
-it. On my Laptop (X200), this is an Ericsson F3507g modem, which is setup
-via AT commands and exports an usb ethernet device for communication.
-
-Since it's my only device, the script for init and the usbnet are run
-in serial, after which dhcp is run on it. Besides this a ping is started,
-which increases the stability of a wwan connection; at least here in Ger-
-many.
-
diff --git a/etc/conn/wwan/f3507g-x201-init b/etc/conn/wwan/f3507g-x201-init
@@ -1,47 +0,0 @@
-#!/bin/bash
-
-CONTROL_DEVICE="/dev/ttyACM1"
-PIN="XXXXX"
-APN="surfo2"
-
-case "$1" in
- -s)
- modprobe zaurus
-
- echo -n "Powering up F3507g card.."
- echo enable > /proc/acpi/ibm/wan
- rfkill unblock wwan
- while [ ! -c $CONTROL_DEVICE ]; do sleep 0.5; echo -n "."; done
- echo "done"
- echo -n "Turning on F3507g card..."
- sleep 5
- if [ -n "$PIN" ]; then
- echo -n "PIN..."
- /usr/sbin/chat -v "" "AT+CPIN?" "SIM PIN" "AT" "OK" "AT+CPIN=\"$PIN\"" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
- fi
- echo -n "CFUN..."
- /usr/sbin/chat -v "" "AT+CPIN?" "OK" "AT+CFUN=1" "+PACSP0" "AT" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
- echo "done"
- ;;
- -k)
- echo -n "Turning off F3507g card..."
- /usr/sbin/chat -v "" "AT+CFUN=4" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
- echo "done"
- echo -n "Powering down F3507g card.."
- rfkill block wwan
- echo disable > /proc/acpi/ibm/wan
- while [ -c $CONTROL_DEVICE ]; do sleep 0.5; echo -n "."; done
- echo "done"
-
- rmmod zaurus
- rmmod cdc_ether
- ;;
- -r)
- $0 -k
- $0 -s
- ;;
- *)
- echo "usage: $0 [-s|-k|-r]"
-esac
-exit 0
-
diff --git a/etc/conn/wwan/f3507g-x201-usbnet b/etc/conn/wwan/f3507g-x201-usbnet
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-CONTROL_DEVICE="/dev/ttyACM1"
-APN="surfo2"
-
-case "$1" in
- -s)
- echo -n "Starting usbnet connection..."
- /usr/sbin/chat -v "" "AT+CGDCONT=1,\"IP\",\"$APN\"" "OK" "AT*ENAP=1,1" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
- sleep 1
- echo "done"
- ;;
- -k)
- echo -n "Stopping usbnet connection..."
- /usr/sbin/chat -v "" "AT*ENAP=0" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
- echo "done"
- ;;
- -r)
- $0 -k
- $0 -s
- ;;
- *)
- echo "usage: $0 [-s|-k|-r]"
-esac
-exit 0
-
diff --git a/etc/conn/wwan/run.sh b/etc/conn/wwan/run.sh
@@ -1,13 +0,0 @@
-#!/bin/sh
-
-. ../common.sh
-
-inteface=$2
-[ "$2" == "" ] && interface="wwan0"
-
-iffile="${WWANDIR}/${interface}-run.sh"
-
-[ ! -e $iffile ] && exit 1
-
-$iffile $1
-
diff --git a/etc/conn/wwan/wwan0-run.sh b/etc/conn/wwan/wwan0-run.sh
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-. ../common.sh
-
-interface=`getinterface $0`
-
-case "$1" in
- -s)
- ${WWANDIR}/f3507g-x201-init -s
- ${WWANDIR}/f3507g-x201-usbnet -s
- startdhcp $interface
- startpingd $interface
- exit $?
- ;;
- -k)
- stoppingd $interface
- stopdhcp $interface
- ${WWANDIR}/f3507g-x201-usbnet -k
- ${WWANDIR}/f3507g-x201-init -k
- exit $?
- ;;
- -u)
- exit 0
- ;;
- -r)
- $0 -k $interface;
- $0 -s $interface;
- ;;
- *)
- echo "usage: $0 [-s|-k|-u|-r] interface"
- exit 1
- ;;
-esac
-
diff --git a/examples/eth/README.md b/examples/eth/README.md
@@ -0,0 +1,6 @@
+## Ethernet - stable and gross
+
+Much could be done here, but the most obvious setup is to run dhcp on it.
+
+A combination with ifplugd could be done.
+
diff --git a/examples/eth/run.sh b/examples/eth/run.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+. ../common.sh
+
+interfce=$2
+[ "$2" == "" ] && interface="eth0"
+
+case "$1" in
+ -s)
+ if ! islinkup $interface;
+ then
+ setlinkup $interface
+ fi
+ startdhcp $interface
+ exit $?
+ ;;
+ -k)
+ stopdhcp $interface
+ islinkup $interface && setlinkdown $interface
+ exit $?
+ ;;
+ -u)
+ exit $?
+ ;;
+ -r)
+ $0 -k $interface;
+ $0 -s $interface;
+ ;;
+ *)
+ echo "usage: $0 [-s|-k|-u|-r] interface"
+ exit 1
+ ;;
+esac
+
diff --git a/examples/wifi/README.md b/examples/wifi/README.md
@@ -0,0 +1,14 @@
+# Wifi resolving
+
+1. run.sh starts wpa-supplicant and wpa-cli.
+2. wpa-cli runs $interface-action.sh on an event.
+3. $interface-action.sh greps in networks.tbl for the ssid of the
+ relevant network and calls the given script.
+4. The script networks/$script is run and gets the interface and
+ the changed state as argument.
+
+## WPA Supplicant
+
+The configuration file for wpa-supplicant is given in conn/common.sh;
+$WPA_CONF. Nearly everything can be changed there too.
+
diff --git a/examples/wifi/networks.tbl b/examples/wifi/networks.tbl
@@ -0,0 +1,2 @@
+skkmswp.sh SKKMSWP
+
diff --git a/examples/wifi/networks/skkmswp.sh b/examples/wifi/networks/skkmswp.sh
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+interface="$1"
+
+case "$2" in
+ CONNECTED)
+ # This is dangerous, but assumed.
+ ip addr flush dev $interface 2>&1 >/dev/null
+ ip addr add 192.168.1.6/24 dev $interface \
+ brd 192.168.1.255 2>&1 >/dev/null
+ ip route add default via 192.168.1.2 dev $interface \
+ 2>&1 >/dev/null
+ echo "nameserver 8.8.8.8" > /etc/resolv.conf
+ ;;
+ DISCONNECTED)
+ ip addr del 192.168.1.6/24 dev $interface 2>&1 >/dev/null
+ ;;
+ *)
+ exit 1;
+ ;;
+esac
+
diff --git a/examples/wifi/run.sh b/examples/wifi/run.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+. ../common.sh
+
+interface=$2
+[ "$2" == "" ] && interface="wlan0"
+
+case "$1" in
+ -s)
+ if ! islinkup $interface;
+ then
+ setlinkup $interface
+ fi
+ startwpa $interface
+ exit $?
+ ;;
+ -k)
+ stopwpa $interface
+
+ islinkup $interface && setlinkdown $interface
+ exit $?
+ ;;
+ -u)
+ hupwpa $interface
+ exit $?
+ ;;
+ -r)
+ $0 -k $interface;
+ $0 -s $interface;
+ ;;
+ *)
+ echo "usage: $0 [-s|-k|-u|-r] interface"
+ exit 1
+ ;;
+esac
+
diff --git a/examples/wifi/wlan0-action.sh b/examples/wifi/wlan0-action.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+. ../common.sh
+
+interface="$1"
+action="$2"
+ssid=`getssid $interface`
+
+[ $LOGGING -eq 1 ] && \
+ logger -t "$interface-action" "Got request for $interface $ssid $action."
+
+getscript() {
+ cat networks.tbl \
+ | grep "$ssid\$" \
+ | awk -F'\t' '{print $1}'
+}
+
+script=`getscript $ssid`
+if [ "$script" != "" ];
+then
+ cd networks
+ ./$script $interface $action
+ exit $?
+fi
+
+case "$action" in
+ CONNECTED)
+ startdhcp $interface
+ ;;
+ DISCONNECTED)
+ stopdhcp $interface
+ ;;
+ *)
+ exit 1;
+ ;;
+esac
+
+exit 0
+
diff --git a/examples/wwan/README.md b/examples/wwan/README.md
@@ -0,0 +1,11 @@
+# WWAN - the never ending story
+
+Wwan on Linux depends on the hardware you are using and how to initialize
+it. On my Laptop (X200), this is an Ericsson F3507g modem, which is setup
+via AT commands and exports an usb ethernet device for communication.
+
+Since it's my only device, the script for init and the usbnet are run
+in serial, after which dhcp is run on it. Besides this a ping is started,
+which increases the stability of a wwan connection; at least here in Ger-
+many.
+
diff --git a/examples/wwan/f3507g-x201-init b/examples/wwan/f3507g-x201-init
@@ -0,0 +1,47 @@
+#!/bin/bash
+
+CONTROL_DEVICE="/dev/ttyACM1"
+PIN="XXXXX"
+APN="surfo2"
+
+case "$1" in
+ -s)
+ modprobe zaurus
+
+ echo -n "Powering up F3507g card.."
+ echo enable > /proc/acpi/ibm/wan
+ rfkill unblock wwan
+ while [ ! -c $CONTROL_DEVICE ]; do sleep 0.5; echo -n "."; done
+ echo "done"
+ echo -n "Turning on F3507g card..."
+ sleep 5
+ if [ -n "$PIN" ]; then
+ echo -n "PIN..."
+ /usr/sbin/chat -v "" "AT+CPIN?" "SIM PIN" "AT" "OK" "AT+CPIN=\"$PIN\"" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
+ fi
+ echo -n "CFUN..."
+ /usr/sbin/chat -v "" "AT+CPIN?" "OK" "AT+CFUN=1" "+PACSP0" "AT" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
+ echo "done"
+ ;;
+ -k)
+ echo -n "Turning off F3507g card..."
+ /usr/sbin/chat -v "" "AT+CFUN=4" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
+ echo "done"
+ echo -n "Powering down F3507g card.."
+ rfkill block wwan
+ echo disable > /proc/acpi/ibm/wan
+ while [ -c $CONTROL_DEVICE ]; do sleep 0.5; echo -n "."; done
+ echo "done"
+
+ rmmod zaurus
+ rmmod cdc_ether
+ ;;
+ -r)
+ $0 -k
+ $0 -s
+ ;;
+ *)
+ echo "usage: $0 [-s|-k|-r]"
+esac
+exit 0
+
diff --git a/examples/wwan/f3507g-x201-usbnet b/examples/wwan/f3507g-x201-usbnet
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+CONTROL_DEVICE="/dev/ttyACM1"
+APN="surfo2"
+
+case "$1" in
+ -s)
+ echo -n "Starting usbnet connection..."
+ /usr/sbin/chat -v "" "AT+CGDCONT=1,\"IP\",\"$APN\"" "OK" "AT*ENAP=1,1" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
+ sleep 1
+ echo "done"
+ ;;
+ -k)
+ echo -n "Stopping usbnet connection..."
+ /usr/sbin/chat -v "" "AT*ENAP=0" "OK" > $CONTROL_DEVICE < $CONTROL_DEVICE
+ echo "done"
+ ;;
+ -r)
+ $0 -k
+ $0 -s
+ ;;
+ *)
+ echo "usage: $0 [-s|-k|-r]"
+esac
+exit 0
+
diff --git a/examples/wwan/run.sh b/examples/wwan/run.sh
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+. ../common.sh
+
+inteface=$2
+[ "$2" == "" ] && interface="wwan0"
+
+iffile="${WWANDIR}/${interface}-run.sh"
+
+[ ! -e $iffile ] && exit 1
+
+$iffile $1
+
diff --git a/examples/wwan/wwan0-run.sh b/examples/wwan/wwan0-run.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+. ../common.sh
+
+interface=`getinterface $0`
+
+case "$1" in
+ -s)
+ ${WWANDIR}/f3507g-x201-init -s
+ ${WWANDIR}/f3507g-x201-usbnet -s
+ startdhcp $interface
+ startpingd $interface
+ exit $?
+ ;;
+ -k)
+ stoppingd $interface
+ stopdhcp $interface
+ ${WWANDIR}/f3507g-x201-usbnet -k
+ ${WWANDIR}/f3507g-x201-init -k
+ exit $?
+ ;;
+ -u)
+ exit 0
+ ;;
+ -r)
+ $0 -k $interface;
+ $0 -s $interface;
+ ;;
+ *)
+ echo "usage: $0 [-s|-k|-u|-r] interface"
+ exit 1
+ ;;
+esac
+