diff --git a/general/package/wireless-configuration/files/S30wireless b/general/package/wireless-configuration/files/S30wireless new file mode 100755 index 00000000..db22acc7 --- /dev/null +++ b/general/package/wireless-configuration/files/S30wireless @@ -0,0 +1,6 @@ +#!/bin/sh +template="auto wlan0\niface wlan0 inet dhcp\n\tpost-up wireless\n\tpost-down wireless" + +if [ "$1" = "start" ]; then + /etc/network/adapter && echo -e "$template" > /etc/network/interfaces.d/wlan0 +fi diff --git a/general/package/wireless-configuration/files/adapter b/general/package/wireless-configuration/files/adapter new file mode 100755 index 00000000..d68f304b --- /dev/null +++ b/general/package/wireless-configuration/files/adapter @@ -0,0 +1,49 @@ +#!/bin/sh +SOC=$(fw_printenv -n soc) + +# HI3516EV300 CamHi +if [ "$SOC" = "hi3516ev300" ]; then + devmem 0x100C0080 32 0x530 + echo 7 > /sys/class/gpio/export + echo out > /sys/class/gpio/gpio7/direction + echo 0 > /sys/class/gpio/gpio7/value + sleep 1 + if lsusb | grep -q 7601; then + modprobe mt7601usta + exit 0 + fi +fi + +# SSC338Q CamHi +if [ "$SOC" = "ssc338q" ]; then + if lsusb | grep -q f72b; then + modprobe 8733bu + exit 0 + fi +fi + +# SSC337DE Foscam +if [ "$SOC" = "ssc337de" ]; then + echo 15 > /sys/class/gpio/export + echo out > /sys/class/gpio/gpio15/direction + echo 0 > /sys/class/gpio/gpio15/value + sleep 1 + if lsusb | grep -q f179; then + modprobe 8188fu + exit 0 + fi +fi + +# T21 BJS +if [ "$SOC" = "t21" ]; then + echo 50 > /sys/class/gpio/export + echo out > /sys/class/gpio/gpio50/direction + echo 0 > /sys/class/gpio/gpio50/value + sleep 1 + if lsusb | grep -q f179; then + modprobe 8188fu + exit 0 + fi +fi + +exit 1 diff --git a/general/package/wireless-configuration/files/network/interfaces.conf b/general/package/wireless-configuration/files/network/interfaces.conf deleted file mode 100644 index 411251c3..00000000 --- a/general/package/wireless-configuration/files/network/interfaces.conf +++ /dev/null @@ -1,14 +0,0 @@ -auto lo -iface lo inet loopback - -auto eth0 -iface eth0 inet static - hwaddress ether $(fw_printenv -n ethaddr || echo 00:00:23:34:45:66) - address 192.168.2.10 - netmask 255.255.255.0 - -auto wlan0 -iface wlan0 inet dhcp - pre-up wireless - post-up wireless - post-down wireless diff --git a/general/package/wireless-configuration/files/script/S30wireless b/general/package/wireless-configuration/files/script/S30wireless deleted file mode 100755 index 0446ffef..00000000 --- a/general/package/wireless-configuration/files/script/S30wireless +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/sh -if [ "$1" == "start" ] && [ -e /etc/network/interfaces.conf ]; then - cp -f /etc/network/interfaces.conf /etc/network/interfaces - rm -f /etc/network/interfaces.conf -fi diff --git a/general/package/wireless-configuration/files/script/adapter b/general/package/wireless-configuration/files/script/adapter deleted file mode 100755 index 2093cab7..00000000 --- a/general/package/wireless-configuration/files/script/adapter +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/sh -SOC=$(fw_printenv -n soc) - -# SSC338Q CamHi -if [ "$SOC" == "ssc338q" ]; then - modprobe 8733bu -fi - -# HI3516EV300 CamHi -if [ "$SOC" == "hi3516ev300" ]; then - devmem 0x100C0080 32 0x530 - echo 7 > /sys/class/gpio/export - echo out > /sys/class/gpio/gpio7/direction - echo 0 > /sys/class/gpio/gpio7/value - echo 7 > /sys/class/gpio/unexport - modprobe mt7601usta -fi - -# T21 BJS -if [ "$SOC" == "t21" ]; then - echo 50 > /sys/class/gpio/export - echo out > /sys/class/gpio/gpio50/direction - echo 0 > /sys/class/gpio/gpio50/value - echo 50 > /sys/class/gpio/unexport - modprobe 8188fu -fi diff --git a/general/package/wireless-configuration/files/script/wireless b/general/package/wireless-configuration/files/script/wireless deleted file mode 100755 index ba5ec52d..00000000 --- a/general/package/wireless-configuration/files/script/wireless +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -WPA_FILE=/etc/wireless.conf -WPA_TEMP=/tmp/wpa_supplicant.conf - -if [ -e "$WPA_FILE" ]; then - WPA_SSID=$(sed -n "1p" $WPA_FILE) - WPA_PASS=$(sed -n "2p" $WPA_FILE) - WPA_MODE=$(sed -n "3p" $WPA_FILE) -fi - -if [ -z "$WPA_SSID" ] || [ -z "$WPA_PASS" ] || [ "$WPA_MODE" != "client" ]; then - WPA_SSID=OpenIPC - WPA_PASS=12345678 - WPA_MODE=server - rm -f "$WPA_FILE" -fi - -case "$PHASE" in - pre-up) - /etc/network/adapter - wpa_passphrase "$WPA_SSID" "$WPA_PASS" > $WPA_TEMP - if [ "$WPA_MODE" = "server" ]; then - sed -i '2i \\tmode=2' $WPA_TEMP - else - sed -i '2i \\tscan_ssid=1' $WPA_TEMP - fi - exit 0 - ;; - - post-up) - if [ "$WPA_MODE" = "server" ]; then - timeout 3m udhcpd -f &> /dev/null & - timeout 3m wpa_supplicant -i wlan0 -c $WPA_TEMP &> /dev/null & - else - wpa_supplicant -B -i wlan0 -c $WPA_TEMP - fi - exit 0 - ;; - - post-down) - killall -q udhcpd - killall -q wpa_supplicant - exit 0 - ;; -esac - -case "$1" in - connect) - ifdown wlan0 - ifup wlan0 - ;; - - reset) - rm -f "$WPA_FILE" - ;; - - setup) - if [ -z "$2" ] || [ -z "$3" ]; then - echo wireless setup [SSID] [PASS] - exit 0 - fi - rm -f "$WPA_FILE" - echo "$2" >> "$WPA_FILE" - echo "$3" >> "$WPA_FILE" - echo "client" >> "$WPA_FILE" - echo SSID: "$2" - echo PASS: "$3" - ;; - - show) - echo SSID: "$WPA_SSID" - echo PASS: "$WPA_PASS" - ;; - - *) - echo wireless connect - echo wireless reset - echo wireless setup - echo wireless show - ;; -esac diff --git a/general/package/wireless-configuration/files/network/udhcpd.conf b/general/package/wireless-configuration/files/udhcpd.conf similarity index 100% rename from general/package/wireless-configuration/files/network/udhcpd.conf rename to general/package/wireless-configuration/files/udhcpd.conf diff --git a/general/package/wireless-configuration/files/wireless b/general/package/wireless-configuration/files/wireless new file mode 100755 index 00000000..9db8b1b4 --- /dev/null +++ b/general/package/wireless-configuration/files/wireless @@ -0,0 +1,74 @@ +#!/bin/sh +WPA_FILE=/etc/wireless.conf +WPA_TEMP=/tmp/wpa_supplicant.conf + +if [ -e "$WPA_FILE" ]; then + WPA_SSID=$(sed -n "1p" $WPA_FILE) + WPA_PASS=$(sed -n "2p" $WPA_FILE) + WPA_MODE=$(sed -n "3p" $WPA_FILE) +fi + +if [ -z "$WPA_SSID" ] || [ -z "$WPA_PASS" ] || [ "$WPA_MODE" != "client" ]; then + WPA_SSID=OpenIPC + WPA_PASS=12345678 + WPA_MODE=server + rm -f "$WPA_FILE" +fi + +case "$PHASE" in + post-up) + wpa_passphrase "$WPA_SSID" "$WPA_PASS" > $WPA_TEMP + if [ "$WPA_MODE" = "server" ]; then + sed -i '2i \\tmode=2' $WPA_TEMP + timeout 5m udhcpd -f &> /dev/null & + timeout 5m wpa_supplicant -i wlan0 -c $WPA_TEMP &> /dev/null & + else + sed -i '2i \\tscan_ssid=1' $WPA_TEMP + wpa_supplicant -B -i wlan0 -c $WPA_TEMP + fi + ifdown -f eth0 + exit 0 + ;; + + post-down) + killall -q udhcpd + killall -q wpa_supplicant + exit 0 + ;; +esac + +case "$1" in + connect) + ifdown wlan0 + ifup wlan0 + ;; + + reset) + rm -f "$WPA_FILE" + ;; + + setup) + if [ -z "$2" ] || [ -z "$3" ]; then + echo wireless setup [SSID] [PASS] + exit 0 + fi + rm -f "$WPA_FILE" + echo "$2" >> "$WPA_FILE" + echo "$3" >> "$WPA_FILE" + echo "client" >> "$WPA_FILE" + echo SSID: "$2" + echo PASS: "$3" + ;; + + show) + echo SSID: "$WPA_SSID" + echo PASS: "$WPA_PASS" + ;; + + *) + echo wireless connect + echo wireless reset + echo wireless setup + echo wireless show + ;; +esac diff --git a/general/package/wireless-configuration/wireless-configuration.mk b/general/package/wireless-configuration/wireless-configuration.mk index c6052855..53081420 100644 --- a/general/package/wireless-configuration/wireless-configuration.mk +++ b/general/package/wireless-configuration/wireless-configuration.mk @@ -6,24 +6,19 @@ WIRELESS_CONFIGURATION_VERSION = WIRELESS_CONFIGURATION_SITE = -WIRELESS_CONFIGURATION_LICENSE = MIT -WIRELESS_CONFIGURATION_LICENSE_FILES = LICENSE - -WIRELESS_CONFIGURATION_PATH = $(WIRELESS_CONFIGURATION_PKGDIR)/files define WIRELESS_CONFIGURATION_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -d $(TARGET_DIR)/etc - $(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIRELESS_CONFIGURATION_PATH)/network/udhcpd.conf + $(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIRELESS_CONFIGURATION_PKGDIR)/files/udhcpd.conf $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d - $(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(WIRELESS_CONFIGURATION_PATH)/script/S30wireless + $(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(WIRELESS_CONFIGURATION_PKGDIR)/files/S30wireless $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/network - $(INSTALL) -m 644 -t $(TARGET_DIR)/etc/network $(WIRELESS_CONFIGURATION_PATH)/network/interfaces.conf - $(INSTALL) -m 755 -t $(TARGET_DIR)/etc/network $(WIRELESS_CONFIGURATION_PATH)/script/adapter + $(INSTALL) -m 755 -t $(TARGET_DIR)/etc/network $(WIRELESS_CONFIGURATION_PKGDIR)/files/adapter $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin - $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(WIRELESS_CONFIGURATION_PATH)/script/wireless + $(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(WIRELESS_CONFIGURATION_PKGDIR)/files/wireless endef $(eval $(generic-package))