diff --git a/configs/common/base_packages b/configs/common/base_packages
index e6f418414b41ee353aa7dd508dea1e6ed6ea304c..97f62a170f3ddff1ef22634a61b8e34fb921db15 100644
--- a/configs/common/base_packages
+++ b/configs/common/base_packages
@@ -94,3 +94,7 @@ CONFIG_PACKAGE_ppp-mod-pppoa=n
 CONFIG_PACKAGE_node=n
 CONFIG_BUSYBOX_CONFIG_IFUP=n
 CONFIG_BUSYBOX_CONFIG_IFDOWN=n
+CONFIG_BUSYBOX_CONFIG_FEATURE_VI_UNDO=y
+CONFIG_BUSYBOX_CONFIG_FEATURE_VI_REGEX_SEARCH=y
+CONFIG_BUSYBOX_CONFIG_BUSYBOX=y
+CONFIG_BUSYBOX_CONFIG_INSTALL_NO_USR=y
diff --git a/patches/openwrt/to-upstream/0001-busybox-Try-to-install-everything-into-s-bin.patch b/patches/openwrt/hack/0001-busybox-Try-to-install-everything-into-s-bin.patch
similarity index 73%
rename from patches/openwrt/to-upstream/0001-busybox-Try-to-install-everything-into-s-bin.patch
rename to patches/openwrt/hack/0001-busybox-Try-to-install-everything-into-s-bin.patch
index f507968171db5b723b777c4a9c1149c52ea19c92..317341d241fbc2d41ba8203f23b0da760300a22c 100644
--- a/patches/openwrt/to-upstream/0001-busybox-Try-to-install-everything-into-s-bin.patch
+++ b/patches/openwrt/hack/0001-busybox-Try-to-install-everything-into-s-bin.patch
@@ -12,17 +12,11 @@ diff --git a/package/utils/busybox/Makefile b/package/utils/busybox/Makefile
 index fc882d3..5d4ba1d 100644
 --- a/package/utils/busybox/Makefile
 +++ b/package/utils/busybox/Makefile
-@@ -132,6 +132,14 @@ endef
+@@ -132,6 +132,8 @@ endef
  define Package/busybox/install
  	$(INSTALL_DIR) $(1)/etc/init.d
  	$(CP) $(PKG_INSTALL_DIR)/* $(1)/
-+	for i in $(1)/usr/bin/*; do \
-+		[ "$$$$(basename $$$$i)" \!= env ] || continue; \
-+		rm -f $$$$i &&	ln -s busybox $(1)/bin/`basename $$$$i`; \
-+	done
-+	for i in $(1)/usr/sbin/*; do \
-+		rm -f $$$$i &&	ln -s ../bin/busybox $(1)/sbin/`basename $$$$i`; \
-+	done
++	ln -s ../../bin/busybox $(1)/usr/bin/env
 +	rm -f $(1)/sbin/ifup $(1)/sbin/ifdown
  ifneq ($(CONFIG_BUSYBOX_$(BUSYBOX_SYM)_CROND),)
  	$(INSTALL_BIN) ./files/cron $(1)/etc/init.d/cron