diff --git a/br-ext-chip-sigmastar/linux/linux-ext-sigmastar_initramfs.mk b/br-ext-chip-sigmastar/linux/linux-ext-sigmastar_initramfs.mk
index 01304485..d57db6b2 100644
--- a/br-ext-chip-sigmastar/linux/linux-ext-sigmastar_initramfs.mk
+++ b/br-ext-chip-sigmastar/linux/linux-ext-sigmastar_initramfs.mk
@@ -6,41 +6,10 @@
 
 ifeq ($(BR2_LINUX_KERNEL_EXT_SIGMASTAR_INITRAMFS),y)
 LINUX_EXTENSIONS += sigmastar-initramfs
+LINUX_DEPENDENCIES += sigmastar-initramfs
 endif
 
-SIGMASTAR_INITRAMFS_BUSYBOX_VERSION = 1.36.0
-SIGMASTAR_INITRAMFS_BUSYBOX_SOURCE = busybox-$(SIGMASTAR_INITRAMFS_BUSYBOX_VERSION).tar.bz2
-SIGMASTAR_INITRAMFS_BUSYBOX_SITE = https://www.busybox.net/downloads
-
-SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION = 4.2
-SIGMASTAR_INITRAMFS_DOSFSTOOLS_SOURCE = dosfstools-$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION).tar.gz
-SIGMASTAR_INITRAMFS_DOSFSTOOLS_SITE = https://github.com/dosfstools/dosfstools/releases/download/v$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION)
-
-SIGMASTAR_INITRAMFS_TOOLCHAIN_SOURCE = arm-linux-musleabihf-cross.tgz
-SIGMASTAR_INITRAMFS_TOOLCHAIN_SITE = https://more.musl.cc/10/x86_64-linux-musl
-
-SIGMASTAR_INITRAMFS_BUSYBOX_PATH = $(HOST_DIR)/source/busybox-$(SIGMASTAR_INITRAMFS_BUSYBOX_VERSION)
-SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH = $(HOST_DIR)/source/dosfstools-$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_VERSION)
-SIGMASTAR_INITRAMFS_TOOLCHAIN_PATH = $(HOST_DIR)/source/arm-linux-musleabihf-cross/bin
-
 define SIGMASTAR_INITRAMFS_PREPARE_KERNEL
-	mkdir -p $(LINUX_DIR)/initramfs
-	cp -f $(SIGMASTAR_INITRAMFS_PKGDIR)/files/* $(LINUX_DIR)/initramfs
-
-	wget -c $(SIGMASTAR_INITRAMFS_BUSYBOX_SITE)/$(SIGMASTAR_INITRAMFS_BUSYBOX_SOURCE) -P $(HOST_DIR)/source
-	tar -xf $(HOST_DIR)/source/$(SIGMASTAR_INITRAMFS_BUSYBOX_SOURCE) -C $(HOST_DIR)/source
-
-	wget -c $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_SITE)/$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_SOURCE) -P $(HOST_DIR)/source
-	tar -xf $(HOST_DIR)/source/$(SIGMASTAR_INITRAMFS_DOSFSTOOLS_SOURCE) -C $(HOST_DIR)/source
-
-	wget -c $(SIGMASTAR_INITRAMFS_TOOLCHAIN_SITE)/$(SIGMASTAR_INITRAMFS_TOOLCHAIN_SOURCE) -P $(HOST_DIR)/source
-	tar -xf $(HOST_DIR)/source/$(SIGMASTAR_INITRAMFS_TOOLCHAIN_SOURCE) -C $(HOST_DIR)/source
-
-	cp -f $(SIGMASTAR_INITRAMFS_PKGDIR)/files/initramfs_defconfig $(SIGMASTAR_INITRAMFS_BUSYBOX_PATH)/.config
-	$(MAKE) CROSS_COMPILE=$(SIGMASTAR_INITRAMFS_TOOLCHAIN_PATH)/arm-linux-musleabihf- -C $(SIGMASTAR_INITRAMFS_BUSYBOX_PATH)
-	cp -f $(SIGMASTAR_INITRAMFS_BUSYBOX_PATH)/busybox $(LINUX_DIR)/initramfs
-
-	cd $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH) && ./autogen.sh && ./configure
-	$(MAKE) CFLAGS="-static -s" CC=$(SIGMASTAR_INITRAMFS_TOOLCHAIN_PATH)/arm-linux-musleabihf-gcc -C $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH)
-	cp -f $(SIGMASTAR_INITRAMFS_DOSFSTOOLS_PATH)/src/fsck.fat $(LINUX_DIR)/initramfs
+	cp -rf $(SIGMASTAR_INITRAMFS_PKGDIR)/files/initramfs $(@D)
+	$(SIGMASTAR_INITRAMFS_PKGDIR)/sigmastar-initramfs.sh "$(@D)" "$(MAKE)"
 endef
diff --git a/general/package/sigmastar-initramfs/files/init b/general/package/sigmastar-initramfs/files/initramfs/init
similarity index 73%
rename from general/package/sigmastar-initramfs/files/init
rename to general/package/sigmastar-initramfs/files/initramfs/init
index fd17e416..20e1bb3d 100755
--- a/general/package/sigmastar-initramfs/files/init
+++ b/general/package/sigmastar-initramfs/files/initramfs/init
@@ -8,31 +8,25 @@ mount -t proc proc /proc
 mount -t sysfs sysfs /sys
 
 sleep 1
+
+[ -e /dev/mmcblk0p1 ] || exec sh
 fsck.fat -a /dev/mmcblk0p1
 mkdir -p $rootfs /mnt /overlay /sdcard /tmp
-
-echo OpenIPC: Copy squashfs
 mount -r /dev/mmcblk0p1 /sdcard || exec sh
+
 cp -f /sdcard/rootfs.squashfs.* /tmp || exec sh
 mount /tmp/rootfs.squashfs.* $rootfs || exec sh
-
 mount -t tmpfs tmpfs -o size=5M /overlay
-[ -f /sdcard/settings.tar ] && tar -xf /sdcard/settings.tar -C /overlay
+[ -e /sdcard/settings.tar ] && tar -xf /sdcard/settings.tar -C /overlay
 
-echo OpenIPC: Mount overlayfs
 mkdir -p $rootdir $workdir
 mount -t overlay overlay -o lowerdir=$rootfs,upperdir=$rootdir,workdir=$workdir /mnt
-
 mount -o move /dev /mnt/dev
 mount -o move /overlay /mnt/overlay
 mount -o move $rootfs /mnt/rom
 
-ln -sf ../wireless/interfaces /mnt/etc/network/interfaces
-cp -f /bin/savesettings /mnt/usr/sbin
-
 umount /sdcard
 umount /proc
 umount /sys
 
-echo OpenIPC: Switch to new root
 exec switch_root /mnt /sbin/init
diff --git a/general/package/sigmastar-initramfs/files/initramfs_defconfig b/general/package/sigmastar-initramfs/files/initramfs/initramfs_defconfig
similarity index 100%
rename from general/package/sigmastar-initramfs/files/initramfs_defconfig
rename to general/package/sigmastar-initramfs/files/initramfs/initramfs_defconfig
diff --git a/general/package/sigmastar-initramfs/files/initramfs_list b/general/package/sigmastar-initramfs/files/initramfs/initramfs_list
similarity index 85%
rename from general/package/sigmastar-initramfs/files/initramfs_list
rename to general/package/sigmastar-initramfs/files/initramfs/initramfs_list
index 41850bbd..9137c1fa 100644
--- a/general/package/sigmastar-initramfs/files/initramfs_list
+++ b/general/package/sigmastar-initramfs/files/initramfs/initramfs_list
@@ -6,7 +6,6 @@ dir /sys 755 0 0
 
 file /init initramfs/init 755 0 0
 file /bin/fsck.fat initramfs/fsck.fat 755 0 0
-file /bin/savesettings initramfs/savesettings 755 0 0
 
 file /bin/busybox initramfs/busybox 755 0 0
 slink /bin/sh busybox 777 0 0
diff --git a/general/package/sigmastar-initramfs/files/savesettings b/general/package/sigmastar-initramfs/files/savesettings
deleted file mode 100755
index 6c2e71ff..00000000
--- a/general/package/sigmastar-initramfs/files/savesettings
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-file=/mnt/mmcblk0p1/settings.tar
-
-if cat /proc/mounts | grep -q mmcblk0p1; then
-	[ -f $file ] && [ $(expr $(date +%s) - $(date +%s -r $file)) -le 1 ] && exit 0
-	tar -cf $file -C /overlay root && echo OpenIPC: Save settings to sdcard
-else
-	echo OpenIPC: Cannot save settings to sdcard
-fi
diff --git a/general/package/sigmastar-initramfs/files/script/S99inotifyd b/general/package/sigmastar-initramfs/files/script/S99inotifyd
new file mode 100644
index 00000000..d665744b
--- /dev/null
+++ b/general/package/sigmastar-initramfs/files/script/S99inotifyd
@@ -0,0 +1,24 @@
+#!/bin/sh
+DAEMON="inotifyd"
+PIDFILE="/var/run/$DAEMON.pid"
+INOTIFYD_ARGS="savesettings /etc:w"
+
+case "$1" in
+	start)
+		printf "Starting $DAEMON: "
+		start-stop-daemon -q -S -b -m -p $PIDFILE -x $DAEMON -- $INOTIFYD_ARGS
+		[ $? = 0 ] && echo "OK" || echo "FAIL"
+		;;
+
+	stop)
+		printf "Stopping $DAEMON: "
+		start-stop-daemon -q -K -p $PIDFILE
+		[ $? = 0 ] && echo "OK" || echo "FAIL"
+		;;
+
+	*)
+		echo "Usage: $0 {start|stop}"
+		exit 1
+esac
+
+exit $?
diff --git a/general/package/sigmastar-initramfs/files/script/savesettings b/general/package/sigmastar-initramfs/files/script/savesettings
new file mode 100755
index 00000000..0205b08f
--- /dev/null
+++ b/general/package/sigmastar-initramfs/files/script/savesettings
@@ -0,0 +1,9 @@
+#!/bin/sh
+file=/mnt/mmcblk0p1/settings.tar
+
+if cat /proc/mounts | grep -q mmcblk0p1 && [ -e /mnt/mmcblk0p1 ]; then
+	[ -e $file ] && time=$(expr $(date +%s) - $(date +%s -r $file));
+	if [ -z $time ] || [ $time -lt 0 ] || [ $time -ge 5 ]; then
+		tar -cf $file -C /overlay root
+	fi
+fi
diff --git a/general/package/sigmastar-initramfs/sigmastar-initramfs.mk b/general/package/sigmastar-initramfs/sigmastar-initramfs.mk
index 5fb7c447..a09439d2 100644
--- a/general/package/sigmastar-initramfs/sigmastar-initramfs.mk
+++ b/general/package/sigmastar-initramfs/sigmastar-initramfs.mk
@@ -8,4 +8,14 @@ SIGMASTAR_INITRAMFS_VERSION = 1.0
 SIGMASTAR_INITRAMFS_SITE =
 SIGMASTAR_INITRAMFS_SOURCE =
 
+SIGMASTAR_INITRAMFS_PATH = $(SIGMASTAR_INITRAMFS_PKGDIR)/files/script
+
+define SIGMASTAR_INITRAMFS_INSTALL_TARGET_CMDS
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/init.d
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/init.d $(SIGMASTAR_INITRAMFS_PATH)/S99inotifyd
+
+	$(INSTALL) -m 755 -d $(TARGET_DIR)/usr/sbin
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(SIGMASTAR_INITRAMFS_PATH)/savesettings
+endef
+
 $(eval $(generic-package))
diff --git a/general/package/sigmastar-initramfs/sigmastar-initramfs.sh b/general/package/sigmastar-initramfs/sigmastar-initramfs.sh
new file mode 100755
index 00000000..efeb5981
--- /dev/null
+++ b/general/package/sigmastar-initramfs/sigmastar-initramfs.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+BUSYBOX_SOURCE=busybox-1.36.0
+BUSYBOX_SITE=https://www.busybox.net/downloads
+
+DOSFSTOOLS_SOURCE=dosfstools-4.2
+DOSFSTOOLS_SITE=https://github.com/dosfstools/dosfstools/releases/download/v4.2
+
+TOOLCHAIN_SOURCE=cortex_a7_thumb2_hf-gcc8.4.0-musl-4_9-1e913a17
+TOOLCHAIN_SITE=https://github.com/openipc/firmware/releases/download/latest
+
+FILES=$1/initramfs/source
+CROSS=$FILES/arm-openipc-linux-musleabihf_sdk-buildroot/bin
+
+wget -c $BUSYBOX_SITE/$BUSYBOX_SOURCE.tar.bz2 -P $FILES
+wget -c $DOSFSTOOLS_SITE/$DOSFSTOOLS_SOURCE.tar.gz -P $FILES
+wget -c $TOOLCHAIN_SITE/$TOOLCHAIN_SOURCE.tgz -P $FILES
+
+tar -xf $FILES/$BUSYBOX_SOURCE.tar.bz2 -C $FILES
+tar -xf $FILES/$DOSFSTOOLS_SOURCE.tar.gz -C $FILES
+tar -xf $FILES/$TOOLCHAIN_SOURCE.tgz -C $FILES
+
+mv -f $FILES/../initramfs_defconfig $FILES/$BUSYBOX_SOURCE/.config
+$2 CROSS_COMPILE=$CROSS/arm-linux- -C $FILES/$BUSYBOX_SOURCE
+mv -f $FILES/$BUSYBOX_SOURCE/busybox $FILES/..
+
+cd $FILES/$DOSFSTOOLS_SOURCE && ./autogen.sh && ./configure
+$2 CC=$CROSS/arm-linux-gcc CFLAGS="-static -s" -C $FILES/$DOSFSTOOLS_SOURCE
+mv -f $FILES/$DOSFSTOOLS_SOURCE/src/fsck.fat $FILES/..
diff --git a/general/package/sigmastar-osdrv-infinity6e/sigmastar-osdrv-infinity6e.mk b/general/package/sigmastar-osdrv-infinity6e/sigmastar-osdrv-infinity6e.mk
index d76110ae..4d381396 100644
--- a/general/package/sigmastar-osdrv-infinity6e/sigmastar-osdrv-infinity6e.mk
+++ b/general/package/sigmastar-osdrv-infinity6e/sigmastar-osdrv-infinity6e.mk
@@ -9,7 +9,7 @@ SIGMASTAR_OSDRV_INFINITY6E_SITE =
 SIGMASTAR_OSDRV_INFINITY6E_LICENSE = MIT
 SIGMASTAR_OSDRV_INFINITY6E_LICENSE_FILES = LICENSE
 
-SIGMASTAR_OSDRV_INFINITY6E_PATH = $(BR2_EXTERNAL_SIGMASTAR_PATH)/package/sigmastar-osdrv-infinity6e/files
+SIGMASTAR_OSDRV_INFINITY6E_PATH = $(SIGMASTAR_OSDRV_INFINITY6E_PKGDIR)/files
 SIGMASTAR_OSDRV_INFINITY6E_SENSOR = $(call qstrip,$(BR2_PACKAGE_SIGMASTAR_OSDRV_SENSOR))
 
 define SIGMASTAR_OSDRV_INFINITY6E_INSTALL_TARGET_CMDS
diff --git a/general/package/wireless-configuration/files/interfaces b/general/package/wireless-configuration/files/interfaces
deleted file mode 100644
index c4a4f962..00000000
--- a/general/package/wireless-configuration/files/interfaces
+++ /dev/null
@@ -1,21 +0,0 @@
-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/wireless/netsetup startup
-    post-up /etc/wireless/netsetup connect
-    post-down /etc/wireless/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
deleted file mode 100755
index b588afb7..00000000
--- a/general/package/wireless-configuration/files/netadapter
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/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
deleted file mode 100755
index 28ff1179..00000000
--- a/general/package/wireless-configuration/files/netsetup
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/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/wireless/netadapter $1
-	ifconfig eth0 192.168.2.10
-fi
-
-if [ $1 = "shutdown" ]; then
-	killall -q udhcpd
-	killall -q wpa_supplicant
-	/etc/wireless/netadapter $1
-fi
diff --git a/general/package/wireless-configuration/files/network/interfaces.conf b/general/package/wireless-configuration/files/network/interfaces.conf
new file mode 100644
index 00000000..64d44ca9
--- /dev/null
+++ b/general/package/wireless-configuration/files/network/interfaces.conf
@@ -0,0 +1,14 @@
+auto lo
+iface lo inet loopback
+
+auto eth0
+iface eth0 inet static
+	hwaddress ether $(fw_printenv -n ethaddr || echo 00:24:B8:FF:FF:FF)
+	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/udhcpd.conf b/general/package/wireless-configuration/files/network/udhcpd.conf
similarity index 100%
rename from general/package/wireless-configuration/files/udhcpd.conf
rename to general/package/wireless-configuration/files/network/udhcpd.conf
diff --git a/general/package/wireless-configuration/files/script/S30wireless b/general/package/wireless-configuration/files/script/S30wireless
new file mode 100755
index 00000000..0446ffef
--- /dev/null
+++ b/general/package/wireless-configuration/files/script/S30wireless
@@ -0,0 +1,5 @@
+#!/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
new file mode 100755
index 00000000..6bf546aa
--- /dev/null
+++ b/general/package/wireless-configuration/files/script/adapter
@@ -0,0 +1,17 @@
+#!/bin/sh
+CONFIG=
+
+# SSC338Q CamHi
+if [ "$CONFIG" = "ssc338q_sdcard_defconfig" ]; then
+	modprobe 8733bu
+fi
+
+# HI3516EV300 CamHi
+if [ "$CONFIG" = "hi3516ev300_ultimate_defconfig" ]; 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
diff --git a/general/package/wireless-configuration/files/script/wireless b/general/package/wireless-configuration/files/script/wireless
new file mode 100755
index 00000000..b09e5d6e
--- /dev/null
+++ b/general/package/wireless-configuration/files/script/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
+	pre-up)
+		/etc/network/adapter
+		wpa_passphrase "$WPA_SSID" "$WPA_PASS" > $WPA_TEMP
+		[ "$WPA_MODE" = "client" ] && sed -i '2i \\tscan_ssid=1' $WPA_TEMP
+		[ "$WPA_MODE" = "server" ] && sed -i '2i \\tmode=2' $WPA_TEMP
+		exit 0
+		;;
+
+	post-up)
+		wpa_supplicant -B -i wlan0 -c $WPA_TEMP
+		[ "$WPA_MODE" = "server" ] && udhcpd
+		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/wireless b/general/package/wireless-configuration/files/wireless
deleted file mode 100755
index e250c015..00000000
--- a/general/package/wireless-configuration/files/wireless
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-usage() {
-	echo wireless connect
-	echo wireless setup
-	echo wireless show
-}
-
-if [ -z $1 ]; then
-	usage
-elif [ $1 = "connect" ]; then
-	killall -q netsetup
-	killall -q udhcpd
-	killall -q wpa_supplicant
-	/etc/wireless/netsetup connect
-elif [ $1 = "setup" ]; then
-	if [ -z $2 ] || [ -z $3 ]; then
-		echo wireless setup [SSID] [PASS]
-		exit 0
-	fi
-	sed -i "s/SSID=.*/SSID=$2/" /etc/wireless/netsetup
-	sed -i "s/PASS=.*/PASS=$3/" /etc/wireless/netsetup
-	sed -i "s/MODE=.*/MODE=client/" /etc/wireless/netsetup
-	echo SSID: $2
-	echo PASS: $3
-elif [ $1 = "show" ]; then
-	SSID=$(grep SSID= /etc/wireless/netsetup | awk -F= '{print $2}')
-	PASS=$(grep PASS= /etc/wireless/netsetup | awk -F= '{print $2}')
-	echo SSID: $SSID
-	echo PASS: $PASS
-else
-	usage
-fi
diff --git a/general/package/wireless-configuration/wireless-configuration.mk b/general/package/wireless-configuration/wireless-configuration.mk
index 0e974158..f81df267 100644
--- a/general/package/wireless-configuration/wireless-configuration.mk
+++ b/general/package/wireless-configuration/wireless-configuration.mk
@@ -9,19 +9,24 @@ WIRELESS_CONFIGURATION_SITE =
 WIRELESS_CONFIGURATION_LICENSE = MIT
 WIRELESS_CONFIGURATION_LICENSE_FILES = LICENSE
 
-WIRELESS_CONFIGURATION_PATH = ../general/package/wireless-configuration/files
+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)/udhcpd.conf
+	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc $(WIRELESS_CONFIGURATION_PATH)/network/udhcpd.conf
 
-	$(INSTALL) -m 755 -d $(TARGET_DIR)/etc/wireless
-	$(INSTALL) -m 644 -t $(TARGET_DIR)/etc/wireless $(WIRELESS_CONFIGURATION_PATH)/interfaces
-	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/wireless $(WIRELESS_CONFIGURATION_PATH)/netadapter
-	$(INSTALL) -m 755 -t $(TARGET_DIR)/etc/wireless $(WIRELESS_CONFIGURATION_PATH)/netsetup
+	$(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 -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 -d $(TARGET_DIR)/usr/sbin
-	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(WIRELESS_CONFIGURATION_PATH)/wireless
+	$(INSTALL) -m 755 -t $(TARGET_DIR)/usr/sbin $(WIRELESS_CONFIGURATION_PATH)/script/wireless
+
+	# Set config for wireless adapter
+	sed -i "s/CONFIG=/CONFIG=$(notdir $(DEFCONFIG))/g" $(TARGET_DIR)/etc/network/adapter
 endef
 
 $(eval $(generic-package))