From 2237cb2f32fb0dd30028c4e6f223e48696cc89bf Mon Sep 17 00:00:00 2001 From: viktorxda <35473052+viktorxda@users.noreply.github.com> Date: Thu, 16 Mar 2023 19:32:50 +0100 Subject: [PATCH] Adjust wireless network configuration (#670) Co-authored-by: Viktor Co-authored-by: Signor Pellegrino <68112357+FlyRouter@users.noreply.github.com> --- br-ext-chip-goke/Config.in | 1 + .../package/wireless-configuration | 1 + br-ext-chip-hisilicon/Config.in | 1 + .../package/wireless-configuration | 1 + br-ext-chip-sigmastar/Config.in | 1 + .../package/wireless-configuration | 1 + .../package/wireless-configuration/Config.in | 4 +++ .../wireless-configuration/files/interfaces | 21 +++++++++++ .../wireless-configuration/files/netadapter | 24 +++++++++++++ .../wireless-configuration/files/netsetup | 28 +++++++++++++++ .../wireless-configuration/files/udhcpd.conf | 3 ++ .../wireless-configuration/files/wireless | 36 +++++++++++++++++++ .../wireless-configuration.mk | 27 ++++++++++++++ 13 files changed, 149 insertions(+) create mode 120000 br-ext-chip-goke/package/wireless-configuration create mode 120000 br-ext-chip-hisilicon/package/wireless-configuration create mode 120000 br-ext-chip-sigmastar/package/wireless-configuration create mode 100644 general/package/wireless-configuration/Config.in create mode 100644 general/package/wireless-configuration/files/interfaces create mode 100755 general/package/wireless-configuration/files/netadapter create mode 100755 general/package/wireless-configuration/files/netsetup create mode 100644 general/package/wireless-configuration/files/udhcpd.conf create mode 100755 general/package/wireless-configuration/files/wireless create mode 100644 general/package/wireless-configuration/wireless-configuration.mk diff --git a/br-ext-chip-goke/Config.in b/br-ext-chip-goke/Config.in index 274514da..402c30f0 100644 --- a/br-ext-chip-goke/Config.in +++ b/br-ext-chip-goke/Config.in @@ -43,6 +43,7 @@ source "$BR2_EXTERNAL_GOKE_PATH/package/rtl8812au-openipc/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/uacme-openipc/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/vtund-openipc/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/wifibroadcast/Config.in" +source "$BR2_EXTERNAL_GOKE_PATH/package/wireless-configuration/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/yaml-cli/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/xmdp/Config.in" source "$BR2_EXTERNAL_GOKE_PATH/package/zerotier-one/Config.in" diff --git a/br-ext-chip-goke/package/wireless-configuration b/br-ext-chip-goke/package/wireless-configuration new file mode 120000 index 00000000..e1036646 --- /dev/null +++ b/br-ext-chip-goke/package/wireless-configuration @@ -0,0 +1 @@ +../../general/package/wireless-configuration \ No newline at end of file diff --git a/br-ext-chip-hisilicon/Config.in b/br-ext-chip-hisilicon/Config.in index 022b7da3..2e9ca602 100644 --- a/br-ext-chip-hisilicon/Config.in +++ b/br-ext-chip-hisilicon/Config.in @@ -59,6 +59,7 @@ source "$BR2_EXTERNAL_HISILICON_PATH/package/uqmi-openipc/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/usrsctp/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/vtund-openipc/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/wifibroadcast/Config.in" +source "$BR2_EXTERNAL_HISILICON_PATH/package/wireless-configuration/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/xmdp/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/yaml-cli/Config.in" source "$BR2_EXTERNAL_HISILICON_PATH/package/zerotier-one/Config.in" diff --git a/br-ext-chip-hisilicon/package/wireless-configuration b/br-ext-chip-hisilicon/package/wireless-configuration new file mode 120000 index 00000000..e1036646 --- /dev/null +++ b/br-ext-chip-hisilicon/package/wireless-configuration @@ -0,0 +1 @@ +../../general/package/wireless-configuration \ No newline at end of file diff --git a/br-ext-chip-sigmastar/Config.in b/br-ext-chip-sigmastar/Config.in index cb5a74fa..3cd6389c 100644 --- a/br-ext-chip-sigmastar/Config.in +++ b/br-ext-chip-sigmastar/Config.in @@ -37,4 +37,5 @@ source "$BR2_EXTERNAL_SIGMASTAR_PATH/package/sigmastar-osdrv-infinity6e/Config.i source "$BR2_EXTERNAL_SIGMASTAR_PATH/package/ssw101b/Config.in" source "$BR2_EXTERNAL_SIGMASTAR_PATH/package/uacme-openipc/Config.in" source "$BR2_EXTERNAL_SIGMASTAR_PATH/package/vtund-openipc/Config.in" +source "$BR2_EXTERNAL_SIGMASTAR_PATH/package/wireless-configuration/Config.in" source "$BR2_EXTERNAL_SIGMASTAR_PATH/package/yaml-cli/Config.in" diff --git a/br-ext-chip-sigmastar/package/wireless-configuration b/br-ext-chip-sigmastar/package/wireless-configuration new file mode 120000 index 00000000..e1036646 --- /dev/null +++ b/br-ext-chip-sigmastar/package/wireless-configuration @@ -0,0 +1 @@ +../../general/package/wireless-configuration \ No newline at end of file diff --git a/general/package/wireless-configuration/Config.in b/general/package/wireless-configuration/Config.in new file mode 100644 index 00000000..d061a659 --- /dev/null +++ b/general/package/wireless-configuration/Config.in @@ -0,0 +1,4 @@ +config BR2_PACKAGE_WIRELESS_CONFIGURATION + bool "wireless-configuration" + help + wireless-configuration - add wireless configuration scripts diff --git a/general/package/wireless-configuration/files/interfaces b/general/package/wireless-configuration/files/interfaces new file mode 100644 index 00000000..1f94c3ae --- /dev/null +++ b/general/package/wireless-configuration/files/interfaces @@ -0,0 +1,21 @@ +auto lo +iface lo inet loopback + +manual eth0 +iface eth0 inet dhcp + hwaddress ether $(fw_printenv -n ethaddr || echo 00:24:B8:FF:FF:FF) + +auto wlan0 +iface wlan0 inet dhcp + pre-up /etc/network/netsetup startup + post-up /etc/network/netsetup connect + post-down /etc/network/netsetup shutdown + +manual wg0 +iface wg0 inet static + address 192.168.99.1 + netmask 255.255.255.0 + pre-up modprobe wireguard + pre-up ip link add dev wg0 type wireguard + pre-up wg setconf wg0 /etc/wireguard.conf + post-down ip link del dev wg0 diff --git a/general/package/wireless-configuration/files/netadapter b/general/package/wireless-configuration/files/netadapter new file mode 100755 index 00000000..b588afb7 --- /dev/null +++ b/general/package/wireless-configuration/files/netadapter @@ -0,0 +1,24 @@ +#!/bin/sh + +# SSC338Q CamHi +if lsusb | grep -q f72b; then + if [ $1 = "startup" ]; then + modprobe 8733bu + fi + exit 0 +fi + +# HI3516EV300 CamHi +if lsusb | grep -q 7601; then + if [ $1 = "startup" ]; 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 + modprobe mt7601u + elif [ $1 = "shutdown" ]; then + echo 1 > /sys/class/gpio/gpio7/value + echo 7 > /sys/class/gpio/unexport + fi + exit 0 +fi diff --git a/general/package/wireless-configuration/files/netsetup b/general/package/wireless-configuration/files/netsetup new file mode 100755 index 00000000..14e008c2 --- /dev/null +++ b/general/package/wireless-configuration/files/netsetup @@ -0,0 +1,28 @@ +#!/bin/sh +SSID=OpenIPC +PASS=12345678 +MODE=server + +if [ $1 = "connect" ]; then + wpa_passphrase $SSID $PASS > /tmp/wpa_supplicant.conf + if [ $MODE = "client" ]; then + sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf + else + sed -i '2i \\tmode=2' /tmp/wpa_supplicant.conf + fi + wpa_supplicant -B -D nl80211 -i wlan0 -c /tmp/wpa_supplicant.conf + if [ $MODE = "server" ]; then + udhcpd && sleep 300 && killall -q udhcpd && killall -q wpa_supplicant & + fi +fi + +if [ $1 = "startup" ]; then + /etc/network/netadapter $1 + ifconfig eth0 192.168.2.10 + ifup wlan0 +fi + +if [ $1 = "shutdown" ]; then + killall -q wpa_supplicant + /etc/network/netadapter $1 +fi diff --git a/general/package/wireless-configuration/files/udhcpd.conf b/general/package/wireless-configuration/files/udhcpd.conf new file mode 100644 index 00000000..a3adf3da --- /dev/null +++ b/general/package/wireless-configuration/files/udhcpd.conf @@ -0,0 +1,3 @@ +start 192.168.1.100 +end 192.168.1.200 +interface wlan0 diff --git a/general/package/wireless-configuration/files/wireless b/general/package/wireless-configuration/files/wireless new file mode 100755 index 00000000..7bcdd813 --- /dev/null +++ b/general/package/wireless-configuration/files/wireless @@ -0,0 +1,36 @@ +#!/bin/sh +if [ -z $1 ]; then + echo wireless connect + echo wireless setup + echo wireless show + exit 0 +fi + +if [ $1 = "connect" ]; then + killall -q netsetup + killall -q udhcpd + killall -q wpa_supplicant + /etc/network/netsetup connect +fi + +if [ $1 = "setup" ]; then + if [ -z $2 ] || [ -z $3 ]; then + echo wireless setup [SSID] [PASS] + exit 0 + fi + + sed -i "s/SSID=.*/SSID=$2/" /etc/network/netsetup + sed -i "s/PASS=.*/PASS=$3/" /etc/network/netsetup + sed -i "s/MODE=.*/MODE=client/" /etc/network/netsetup + + echo SSID: $2 + echo PASS: $3 +fi + +if [ $1 = "show" ]; then + SSID=$(grep SSID= /etc/network/netsetup | awk -F= '{print $2}') + PASS=$(grep PASS= /etc/network/netsetup | awk -F= '{print $2}') + + echo SSID: $SSID + echo PASS: $PASS +fi diff --git a/general/package/wireless-configuration/wireless-configuration.mk b/general/package/wireless-configuration/wireless-configuration.mk new file mode 100644 index 00000000..4486b4aa --- /dev/null +++ b/general/package/wireless-configuration/wireless-configuration.mk @@ -0,0 +1,27 @@ +################################################################################ +# +# wireless-configuration +# +################################################################################ + +WIRELESS_CONFIGURATION_VERSION = +WIRELESS_CONFIGURATION_SITE = +WIRELESS_CONFIGURATION_LICENSE = MIT +WIRELESS_CONFIGURATION_LICENSE_FILES = LICENSE + +WIRELESS_CONFIGURATION_PATH = ../general/package/wireless-configuration/files + +define WIRELESS_CONFIGURATION_INSTALL_TARGET_CMDS + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc + cp -f $(WIRELESS_CONFIGURATION_PATH)/udhcpd.conf $(TARGET_DIR)/etc + + $(INSTALL) -m 755 -d $(TARGET_DIR)/etc/network + cp -f $(WIRELESS_CONFIGURATION_PATH)/interfaces $(TARGET_DIR)/etc/network + cp -f $(WIRELESS_CONFIGURATION_PATH)/netadapter $(TARGET_DIR)/etc/network + cp -f $(WIRELESS_CONFIGURATION_PATH)/netsetup $(TARGET_DIR)/etc/network + + $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin + cp -f $(WIRELESS_CONFIGURATION_PATH)/wireless $(TARGET_DIR)/usr/sbin +endef + +$(eval $(generic-package))