From 469dffb495e7c8823975e28117ebaa18a9f294b6 Mon Sep 17 00:00:00 2001 From: Mike Fiore Date: Tue, 9 Apr 2013 13:44:34 -0500 Subject: ocg-scripts: init (wifi-ap, wifi-client, dhcpd) --- multitech/recipes/ocg-scripts/ocg-scripts-1.0.inc | 11 ++++ .../ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap.sh | 58 ++++++++++++++++++++++ .../ocg-scripts/ocg-scripts-1.0/ocg-wifi-client.sh | 43 ++++++++++++++++ .../ocg-scripts/ocg-scripts-1.0/ocg-wifi-dhcpd.sh | 38 ++++++++++++++ multitech/recipes/ocg-scripts/ocg-scripts_1.0.bb | 11 ++++ 5 files changed, 161 insertions(+) create mode 100644 multitech/recipes/ocg-scripts/ocg-scripts-1.0.inc create mode 100644 multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap.sh create mode 100644 multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-client.sh create mode 100644 multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-dhcpd.sh create mode 100644 multitech/recipes/ocg-scripts/ocg-scripts_1.0.bb diff --git a/multitech/recipes/ocg-scripts/ocg-scripts-1.0.inc b/multitech/recipes/ocg-scripts/ocg-scripts-1.0.inc new file mode 100644 index 0000000..46d1cfa --- /dev/null +++ b/multitech/recipes/ocg-scripts/ocg-scripts-1.0.inc @@ -0,0 +1,11 @@ +HOMEPAGE = "www.multitech.net" +SECTION = "kernel/userland" +PRIORITY = "optional" +LICENSE = "GPL" + +do_install() { + install -d ${D}${sbindir} ${D}${sbindir} + install -m 755 ${WORKDIR}/ocg-wifi-client.sh ${D}${sbindir} + install -m 755 ${WORKDIR}/ocg-wifi-ap.sh ${D}${sbindir} + install -m 755 ${WORKDIR}/ocg-wifi-dhcpd.sh ${D}${sbindir} +} diff --git a/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap.sh b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap.sh new file mode 100644 index 0000000..5c684cb --- /dev/null +++ b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-ap.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +do_start() { + echo "starting hostap daemon" + /etc/init.d/hostapd start + echo "setting IP address of access point" + ifconfig wlan0 $1 + ocg-wifi-dhcpd.sh start +} + +do_stop() { + echo "stopping hostap daemon" + /etc/init.d/hostapd stop + ocg-wifi-dhcpd.sh stop +} + +# main +if [[ $# -lt 1 ]] +then + echo "usage: $0 start|stop|restart [access point IP address]" + exit 1 +elif [[ $# -eq 2 ]] +then + ret=1 + if [[ $2 =~ ^([0-9]{1,3}\.){3,3}[0-9]{1,3}$ ]] + then + OIFS=$IFS + IFS='.' + ip=($2) + IFS=$OFIS + [[ ${ip[0]} -le 255 && ${ip[1]} -le 255 && ${ip[2]} -le 255 && ${ip[3]} -le 255 ]] + ret=$? + fi + if [[ ret -ne 0 ]] + then + echo "invalid IP address" + exit 1 + fi + ip=$2 +else + ip="192.168.2.1" +fi + +case $1 in + start) + do_start $ip + ;; + stop) + do_stop + ;; + restart) + do_stop + sleep 1 + do_start $ip + ;; +esac + +exit 0 diff --git a/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-client.sh b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-client.sh new file mode 100644 index 0000000..6987506 --- /dev/null +++ b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-client.sh @@ -0,0 +1,43 @@ +#!/bin/bash + +do_start() { + echo "joining wireless network" + wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf + sleep 5 + echo "starting dhcp client" + udhcpc -i wlan0 +} + +do_stop() { + echo "stopping wpa_supplicant" + killall wpa_supplicant + echo "stopping dhcp client" + killall udhcpc +} + +# main +if [[ $# -ne 1 ]] +then + echo "usage: $0 start|stop|restart" + exit 1 +fi + +case $1 in + start) + if [[ ! -f "/etc/wpa_supplicant.conf" ]] + then + echo "/etc/wpa_supplicant.conf does not exist" + exit 1 + fi + do_start + ;; + stop) + do_stop + ;; + restart) + do_stop + do_start + ;; +esac + +exit 0 diff --git a/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-dhcpd.sh b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-dhcpd.sh new file mode 100644 index 0000000..575b803 --- /dev/null +++ b/multitech/recipes/ocg-scripts/ocg-scripts-1.0/ocg-wifi-dhcpd.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +do_start() { + echo "starting dhcp daemon" + udhcpd -S /etc/udhcpd.conf +} + +do_stop() { + echo "stopping dhcp daemon" + killall udhcpd +} + +# main +if [[ $# -ne 1 ]] +then + echo "usage: $0 start|stop|restart" + exit 1 +fi + +case $1 in + start) + if [[ ! -f "/etc/udhcpd.conf" ]] + then + echo "/etc/udhcpd.conf does not exist" + exit 1 + fi + do_start + ;; + stop) + do_stop + ;; + restart) + do_stop + do_start + ;; +esac + +exit 0 diff --git a/multitech/recipes/ocg-scripts/ocg-scripts_1.0.bb b/multitech/recipes/ocg-scripts/ocg-scripts_1.0.bb new file mode 100644 index 0000000..bbe9f10 --- /dev/null +++ b/multitech/recipes/ocg-scripts/ocg-scripts_1.0.bb @@ -0,0 +1,11 @@ +DESCRIPTION = "Scripts to easily get started with common OCG use cases" + +require ocg-scripts-1.0.inc + +PR = "r1" + +SRC_URI = "file://ocg-wifi-client.sh \ + file://ocg-wifi-ap.sh \ + file://ocg-wifi-dhcpd.sh" + +S = "${WORKDIR}/ocg-scripts-${PV}" -- cgit v1.2.3