diff --git a/br-ext-chip-hisilicon/configs/hi3516ev300_ultimate_defconfig b/br-ext-chip-hisilicon/configs/hi3516ev300_ultimate_defconfig
index a8c88426..279db46d 100644
--- a/br-ext-chip-hisilicon/configs/hi3516ev300_ultimate_defconfig
+++ b/br-ext-chip-hisilicon/configs/hi3516ev300_ultimate_defconfig
@@ -108,11 +108,6 @@ BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_RTL_8188EU=y
 # BR2_PACKAGE_RTL8188EU is not set
 BR2_PACKAGE_RTL8188FU_OPENIPC=y
 
-# WiFi AP
-# BR2_PACKAGE_WIRELESS_CONFIGURATION is not set
-# BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT is not set
-# BR2_PACKAGE_MT7601U_AP_OPENIPC is not set
-
 # WIREGUARD
 BR2_PACKAGE_WIREGUARD_LINUX_COMPAT=y
 BR2_PACKAGE_WIREGUARD_TOOLS=y
diff --git a/br-ext-chip-sigmastar/configs/ssc337de_lite_defconfig b/br-ext-chip-sigmastar/configs/ssc337de_lite_defconfig
index 93af1b76..932918e8 100644
--- a/br-ext-chip-sigmastar/configs/ssc337de_lite_defconfig
+++ b/br-ext-chip-sigmastar/configs/ssc337de_lite_defconfig
@@ -98,9 +98,7 @@ BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
 BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC=y
 BR2_PACKAGE_LINUX_FIRMWARE_OPENIPC_MEDIATEK_MT7601U=y
 # BR2_PACKAGE_RTL8188EU is not set
-# BR2_PACKAGE_RTL8188FU is not set
 # BR2_PACKAGE_RTL8192EU_OPENIPC is not set
-# BR2_PACKAGE_WIRELESS_CONFIGURATION is not set
 
 # WIREGUARD
 # BR2_PACKAGE_WIREGUARD_LINUX_COMPAT is not set
diff --git a/br-ext-chip-sigmastar/configs/ssc338q_initramfs_defconfig b/br-ext-chip-sigmastar/configs/ssc338q_initramfs_defconfig
index 14858f64..87afe277 100644
--- a/br-ext-chip-sigmastar/configs/ssc338q_initramfs_defconfig
+++ b/br-ext-chip-sigmastar/configs/ssc338q_initramfs_defconfig
@@ -96,7 +96,6 @@ BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
 BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
 BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
 BR2_PACKAGE_RTL8733BU=y
-# BR2_PACKAGE_WIRELESS_CONFIGURATION is not set
 
 # Debug
 # BR2_PACKAGE_HOST_GDB is not set
diff --git a/br-ext-chip-sigmastar/configs/ssc338q_ultimate_defconfig b/br-ext-chip-sigmastar/configs/ssc338q_ultimate_defconfig
index db9a700c..df96ae53 100644
--- a/br-ext-chip-sigmastar/configs/ssc338q_ultimate_defconfig
+++ b/br-ext-chip-sigmastar/configs/ssc338q_ultimate_defconfig
@@ -101,7 +101,6 @@ BR2_PACKAGE_WPA_SUPPLICANT_AP_SUPPORT=y
 BR2_PACKAGE_WPA_SUPPLICANT_NL80211=y
 BR2_PACKAGE_WPA_SUPPLICANT_PASSPHRASE=y
 BR2_PACKAGE_RTL8733BU=y
-BR2_PACKAGE_WIRELESS_CONFIGURATION=y
 
 # Debug
 # BR2_PACKAGE_HOST_GDB is not set
diff --git a/general/overlay/etc/init.d/S10resetd b/general/overlay/etc/init.d/S10resetd
index df33dd4f..6be1e158 100755
--- a/general/overlay/etc/init.d/S10resetd
+++ b/general/overlay/etc/init.d/S10resetd
@@ -2,7 +2,6 @@
 
 case "$1" in
 	start)
-		echo -e '\nLoading resetd...'
 		/usr/sbin/resetd &
 		;;
 esac
diff --git a/general/overlay/etc/init.d/S30wireless b/general/overlay/etc/init.d/S30wireless
new file mode 100755
index 00000000..aca931df
--- /dev/null
+++ b/general/overlay/etc/init.d/S30wireless
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+[ "$1" != "start" ] && exit 0
+device=$(fw_printenv -n wlandevice)
+[ -z "$device" ] && exit 0
+
+set_eth0() {
+	sed -i "s|^#auto|auto|g" /etc/network/interfaces.d/eth0
+	sed -i "s|^auto|#auto|g" /etc/network/interfaces.d/wlan0
+	exit 0
+}
+
+set_wlan0() {
+	sed -i "s|^auto|#auto|g" /etc/network/interfaces.d/eth0
+	sed -i "s|^#auto|auto|g" /etc/network/interfaces.d/wlan0
+	exit 0
+}
+
+# HI3516EV300 CamHi
+if [ "$device" = "mt7601u-hi3516ev300-camhi" ]; 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 mt7601u
+		set_wlan0
+	fi
+fi
+
+# SSC338Q CamHi
+if [ "$device" = "8733bu-ssc338q-camhi" ]; then
+	if lsusb | grep -q f72b; then
+		modprobe 8733bu
+		set_wlan0
+	fi
+fi
+
+# SSC337DE Foscam
+if [ "$device" = "8188fu-ssc337de-foscam" ]; 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
+		set_wlan0
+	fi
+fi
+
+# T21 BJS
+if [ "$device" = "8188fu-t21-bjs" ]; 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
+		set_wlan0
+	fi
+fi
+
+set_eth0
diff --git a/general/overlay/etc/network/interfaces.d/wlan0 b/general/overlay/etc/network/interfaces.d/wlan0
index dc3a544b..9faac3bb 100644
--- a/general/overlay/etc/network/interfaces.d/wlan0
+++ b/general/overlay/etc/network/interfaces.d/wlan0
@@ -1,13 +1,6 @@
+#auto wlan0
 iface wlan0 inet dhcp
-    pre-up devmem 0x100C0080 32 0x530
-    pre-up echo 7 > /sys/class/gpio/export
-    pre-up echo out > /sys/class/gpio/gpio7/direction
-    pre-up echo 0 > /sys/class/gpio/gpio7/value
-    pre-up modprobe mt7601u
-    pre-up wpa_passphrase $(fw_printenv -n wifissid || echo openipc) $(fw_printenv -n wifipass || echo openipc12345) >/tmp/wpa_supplicant.conf
-    pre-up sed -i '2i \\tscan_ssid=1' /tmp/wpa_supplicant.conf
-    pre-up sleep 3
-    pre-up wpa_supplicant -B -D nl80211 -i wlan0 -c/tmp/wpa_supplicant.conf
+    post-up wpa_passphrase $(fw_printenv -n wlanssid || echo openipc) $(fw_printenv -n wlanpass || echo openipc12345) > /etc/wpa_supplicant.conf
+    post-up sed -i '2i \\tscan_ssid=1' /etc/wpa_supplicant.conf
+    post-up wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
     post-down killall -q wpa_supplicant
-    post-down echo 1 > /sys/class/gpio/gpio7/value
-    post-down echo 7 > /sys/class/gpio/unexport
diff --git a/general/package/Config.in b/general/package/Config.in
index 3dd8e8f7..291f77f9 100644
--- a/general/package/Config.in
+++ b/general/package/Config.in
@@ -87,7 +87,6 @@ source "$BR2_EXTERNAL_GENERAL_PATH/package/usrsctp/Config.in"
 source "$BR2_EXTERNAL_GENERAL_PATH/package/vendor-patcher/Config.in"
 source "$BR2_EXTERNAL_GENERAL_PATH/package/vtund-openipc/Config.in"
 source "$BR2_EXTERNAL_GENERAL_PATH/package/wifibroadcast/Config.in"
-source "$BR2_EXTERNAL_GENERAL_PATH/package/wireless-configuration/Config.in"
 source "$BR2_EXTERNAL_GENERAL_PATH/package/xiongmai-opensdk-xm510/Config.in"
 source "$BR2_EXTERNAL_GENERAL_PATH/package/xiongmai-osdrv-xm510/Config.in"
 source "$BR2_EXTERNAL_GENERAL_PATH/package/xiongmai-osdrv-xm530/Config.in"
diff --git a/general/package/wireless-configuration/Config.in b/general/package/wireless-configuration/Config.in
deleted file mode 100644
index d061a659..00000000
--- a/general/package/wireless-configuration/Config.in
+++ /dev/null
@@ -1,4 +0,0 @@
-config BR2_PACKAGE_WIRELESS_CONFIGURATION
-	bool "wireless-configuration"
-	help
-	  wireless-configuration - add wireless configuration scripts
diff --git a/general/package/wireless-configuration/files/S30wireless b/general/package/wireless-configuration/files/S30wireless
deleted file mode 100755
index db22acc7..00000000
--- a/general/package/wireless-configuration/files/S30wireless
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/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
deleted file mode 100755
index d68f304b..00000000
--- a/general/package/wireless-configuration/files/adapter
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/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/udhcpd.conf b/general/package/wireless-configuration/files/udhcpd.conf
deleted file mode 100644
index a3adf3da..00000000
--- a/general/package/wireless-configuration/files/udhcpd.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-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
deleted file mode 100755
index 9db8b1b4..00000000
--- a/general/package/wireless-configuration/files/wireless
+++ /dev/null
@@ -1,74 +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
-  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
deleted file mode 100644
index 53081420..00000000
--- a/general/package/wireless-configuration/wireless-configuration.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-################################################################################
-#
-# wireless-configuration
-#
-################################################################################
-
-WIRELESS_CONFIGURATION_VERSION =
-WIRELESS_CONFIGURATION_SITE =
-
-define WIRELESS_CONFIGURATION_INSTALL_TARGET_CMDS
-	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc
-	$(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_PKGDIR)/files/S30wireless
-
-	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/network
-	$(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_PKGDIR)/files/wireless
-endef
-
-$(eval $(generic-package))