From 108408f851b811304290a472737562830cc04083 Mon Sep 17 00:00:00 2001
From: Hyy2001X <1804430051@qq.com>
Date: Sun, 21 Aug 2022 10:13:10 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20Kconfig=20=E5=86=85?=
 =?UTF-8?q?=E5=AE=B9=E8=BF=BD=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CustomFiles/Kconfig/generic/config-generic   |  1 +
 CustomFiles/Kconfig/ramips/mt7621/config-5.4 |  1 +
 CustomFiles/Kconfig/x86/config-generic       |  3 +
 CustomFiles/x86_64_kExtra                    | 48 -------------
 Scripts/AutoBuild_DiyScript.sh               | 36 ++++++++--
 Scripts/AutoBuild_Function.sh                | 76 ++++++++++++--------
 6 files changed, 80 insertions(+), 85 deletions(-)
 create mode 100644 CustomFiles/Kconfig/generic/config-generic
 create mode 100644 CustomFiles/Kconfig/ramips/mt7621/config-5.4
 create mode 100644 CustomFiles/Kconfig/x86/config-generic
 delete mode 100644 CustomFiles/x86_64_kExtra

diff --git a/CustomFiles/Kconfig/generic/config-generic b/CustomFiles/Kconfig/generic/config-generic
new file mode 100644
index 0000000..9266ca4
--- /dev/null
+++ b/CustomFiles/Kconfig/generic/config-generic
@@ -0,0 +1 @@
+CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
diff --git a/CustomFiles/Kconfig/ramips/mt7621/config-5.4 b/CustomFiles/Kconfig/ramips/mt7621/config-5.4
new file mode 100644
index 0000000..b0b6e08
--- /dev/null
+++ b/CustomFiles/Kconfig/ramips/mt7621/config-5.4
@@ -0,0 +1 @@
+CONFIG_DEFAULT_HOSTNAME="OpenWrt"
diff --git a/CustomFiles/Kconfig/x86/config-generic b/CustomFiles/Kconfig/x86/config-generic
new file mode 100644
index 0000000..9242c7c
--- /dev/null
+++ b/CustomFiles/Kconfig/x86/config-generic
@@ -0,0 +1,3 @@
+CONFIG_DEFAULT_HOSTNAME="OpenWrt"
+CONFIG_BTRFS_FS=y
+CONFIG_XFS_FS=y
diff --git a/CustomFiles/x86_64_kExtra b/CustomFiles/x86_64_kExtra
deleted file mode 100644
index 72d4c83..0000000
--- a/CustomFiles/x86_64_kExtra
+++ /dev/null
@@ -1,48 +0,0 @@
-CONFIG_64BIT=y
-CONFIG_DEFAULT_HOSTNAME="OpenWrt"
-CONFIG_BTRFS_FS=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_DRM=y
-CONFIG_DRM_BRIDGE=y
-CONFIG_DRM_I915=y
-CONFIG_DRM_I915_CAPTURE_ERROR=y
-CONFIG_DRM_I915_COMPRESS_ERROR=y
-CONFIG_DRM_I915_DEBUG=y
-CONFIG_DRM_I915_DEBUG_GUC=y
-# CONFIG_DRM_I915_DEBUG_MMIO is not set
-# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set
-# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set
-CONFIG_DRM_I915_FENCE_TIMEOUT=10000
-CONFIG_DRM_I915_FORCE_PROBE=""
-CONFIG_DRM_I915_GVT=y
-CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500
-# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set
-CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000
-CONFIG_DRM_I915_PREEMPT_TIMEOUT=640
-# CONFIG_DRM_I915_SELFTEST is not set
-CONFIG_DRM_I915_STOP_TIMEOUT=1000
-# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set
-# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set
-CONFIG_DRM_I915_TIMESLICE_DURATION=1
-CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250
-CONFIG_DRM_I915_USERPTR=y
-# CONFIG_DRM_I915_WERROR is not set
-CONFIG_DRM_KMS_HELPER=y
-CONFIG_DRM_MIPI_DSI=y
-CONFIG_DRM_PANEL=y
-CONFIG_DRM_PANEL_BRIDGE=y
-CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y
-CONFIG_DRM_TTM=y
-CONFIG_KVM=y
-CONFIG_KVM_ASYNC_PF=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_KVM_INTEL=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_VFIO=y
-CONFIG_KVM_WERROR=y
-# CONFIG_KVM_XEN is not set
-CONFIG_KVM_XFER_TO_GUEST_WORK=y
-CONFIG_X86_INTEL_PSTATE=y
diff --git a/Scripts/AutoBuild_DiyScript.sh b/Scripts/AutoBuild_DiyScript.sh
index 1ea803d..b11e885 100755
--- a/Scripts/AutoBuild_DiyScript.sh
+++ b/Scripts/AutoBuild_DiyScript.sh
@@ -30,7 +30,7 @@ Firmware_Diy() {
 	# ${TARGET_BOARD}		设备架构
 	# ${TARGET_FLAG}		固件名称后缀
 
-	# ${WORK}				OpenWrt 源码位置
+	# ${WORK}			OpenWrt 源码位置
 	# ${CONFIG_FILE}		使用的配置文件名称
 	# ${FEEDS_CONF}			OpenWrt 源码目录下的 feeds.conf.default 文件
 	# ${CustomFiles}		仓库中的 /CustomFiles 绝对路径
@@ -41,8 +41,34 @@ Firmware_Diy() {
 
 	case "${OP_AUTHOR}/${OP_REPO}:${OP_BRANCH}" in
 	coolsnowwolf/lede:master)
+		cat >> ${Version_File} <<EOF
+
+sed -i '/check_signature/d' /etc/opkg.conf
+
+sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/aliyundrive-webdav.lua
+sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aliyundrive-webdav/aliyundrive-webdav_log.htm
+sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aliyundrive-webdav/aliyundrive-webdav_status.htm
+
+sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/controller/v2ray_server.lua
+sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/model/cbi/v2ray_server/index.lua
+sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/model/cbi/v2ray_server/user.lua
+sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/log.htm
+sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/users_list_status.htm
+sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/users_list_status.htm
+sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/v2ray.htm
+
+if [ -z "\$(grep "REDIRECT --to-ports 53" /etc/firewall.user 2> /dev/null)" ]
+then
+	echo '#iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
+	echo '#iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
+	echo '#[ -n "\$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
+	echo '#[ -n "\$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
+fi
+exit 0
+EOF
 		sed -i "s?/bin/login?/usr/libexec/login.sh?g" ${FEEDS_PKG}/ttyd/files/ttyd.config
-		sed -i 's/luci-theme-bootstrap/luci-theme-argon/g' feeds/luci/collections/luci/Makefile
+		sed -i 's/luci-theme-bootstrap/luci-theme-argon-mod/g' feeds/luci/collections/luci/Makefile
+		sed -i '/uci commit luci/i\uci set luci.main.mediaurlbase="/luci-static/argon-mod"' $(PKG_Finder d package default-settings)/files/zzz-default-settings
 		# AddPackage git lean luci-theme-argon jerrykuku 18.06
 		AddPackage git lean luci-app-argon-config jerrykuku master
 		AddPackage svn other luci-app-smartdns immortalwrt/luci/branches/openwrt-18.06/applications
@@ -54,7 +80,7 @@ Firmware_Diy() {
 		AddPackage git other OpenClash vernesong master
 		AddPackage git other luci-app-ikoolproxy iwrt main
 		AddPackage git other helloworld fw876 master
-		sed -i 's/143/143,8080,8443,6969,1337/' $(PKG_Finder d package luci-app-ssr-plus)/root/etc/init.d/shadowsocksr
+		sed -i 's/143/143,8080,8443,6969,1337,6672/' $(PKG_Finder d package luci-app-ssr-plus)/root/etc/init.d/shadowsocksr
 
 		patch < ${CustomFiles}/Patches/fix_shadowsocksr_alterId.patch -p1 -d ${WORK}
 		patch < ${CustomFiles}/Patches/fix_ntfs3_conflict_with_antfs.patch -p1 -d ${WORK}
@@ -62,7 +88,6 @@ Firmware_Diy() {
 
 		case "${TARGET_BOARD}" in
 		ramips)
-			rm -rf target/linux/ramips/patches-5.4/*mt7621-improve_cpu_clock.patch
 			sed -i "/DEVICE_COMPAT_VERSION := 1.1/d" target/linux/ramips/image/mt7621.mk
 			Copy ${CustomFiles}/Depends/automount $(PKG_Finder d "package" automount)/files 15-automount
 		;;
@@ -79,8 +104,7 @@ Firmware_Diy() {
 			rm -rf packages/lean/autocore
 			AddPackage git lean autocore-modify Hyy2001X master
 			sed -i -- 's:/bin/ash:'/bin/bash':g' ${BASE_FILES}/etc/passwd
-			cat ${CustomFiles}/${TARGET_PROFILE}_kExtra >> ${WORK}/target/linux/x86/config-5.19
-			# patch < ${CustomFiles}/Patches/upgrade_intel_igpu_drv.patch -p1 -d ${WORK}
+			patch < ${CustomFiles}/Patches/upgrade_intel_igpu_drv.patch -p1 -d ${WORK}
 		;;
 		esac
 	;;
diff --git a/Scripts/AutoBuild_Function.sh b/Scripts/AutoBuild_Function.sh
index f1667bb..ceb01fa 100755
--- a/Scripts/AutoBuild_Function.sh
+++ b/Scripts/AutoBuild_Function.sh
@@ -151,31 +151,6 @@ EOF
 		coolsnowwolf/lede)
 			Copy ${CustomFiles}/Depends/coremark.sh $(PKG_Finder d "package feeds" coremark)
 			sed -i '\/etc\/firewall.user/d;/exit 0/d' ${Version_File}
-			cat >> ${Version_File} <<EOF
-
-sed -i '/check_signature/d' /etc/opkg.conf
-
-sed -i 's/\"services\"/\"nas\"/g' /usr/lib/lua/luci/controller/aliyundrive-webdav.lua
-sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aliyundrive-webdav/aliyundrive-webdav_log.htm
-sed -i 's/services/nas/g' /usr/lib/lua/luci/view/aliyundrive-webdav/aliyundrive-webdav_status.htm
-
-sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/controller/v2ray_server.lua
-sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/model/cbi/v2ray_server/index.lua
-sed -i 's/\"services\"/\"vpn\"/g' /usr/lib/lua/luci/model/cbi/v2ray_server/user.lua
-sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/log.htm
-sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/users_list_status.htm
-sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/users_list_status.htm
-sed -i 's/services/vpn/g' /usr/lib/lua/luci/view/v2ray_server/v2ray.htm
-
-if [ -z "\$(grep "REDIRECT --to-ports 53" /etc/firewall.user 2> /dev/null)" ]
-then
-	echo '#iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
-	echo '#iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
-	echo '#[ -n "\$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
-	echo '#[ -n "\$(command -v ip6tables)" ] && ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53' >> /etc/firewall.user
-fi
-exit 0
-EOF
 			if [[ -n ${TARGET_FLAG} ]]
 			then
 				sed -i "s?${zzz_Default_Version}?${TARGET_FLAG} ${zzz_Default_Version} @ ${Author} [${Display_Date}]?g" ${Version_File}
@@ -227,11 +202,6 @@ EOF
 			sed -i "s/${Old_IP}/${Default_IP}/g" ${BASE_FILES}/bin/config_generate
 		fi
 	fi
-	for X in $(ls -1 target/linux/generic | grep "config-")
-	do
-		sed -i '/CONFIG_FAT_DEFAULT_IOCHARSET/d' target/linux/generic/${X}
-		echo -e '\nCONFIG_FAT_DEFAULT_IOCHARSET="utf8"' >> target/linux/generic/${X}
-	done
 	ECHO "[Firmware_Diy_Main] Done"
 }
 
@@ -246,6 +216,50 @@ CONFIG_KERNEL_BUILD_USER="${Author}"
 CONFIG_KERNEL_BUILD_DOMAIN="${Author_URL}"
 EOF
 	fi
+
+	Kconfig_Path=${CustomFiles}/Kconfig
+	Tree=${WORK}/target/linux
+
+	cd ${Kconfig_Path}
+	for i in $(du -a | awk '{print $2}' | busybox sed -r 's/.\//\1/' | grep -wv '^.' | sort | uniq)
+	do
+		if [[ -d $i && $(ls -1 $i 2> /dev/null) ]]
+		then
+			:
+		elif [[ -e $i ]]
+		then
+			_Kconfig=$(dirname $i)
+			__Kconfig=$(basename $i)
+			ECHO " - Found Kconfig_file: ${__Kconfig} at ${_Kconfig}"
+			if [[ -e ${Tree}/$i && ${__Kconfig} != config-generic ]]
+			then
+				ECHO " -- Found Tree: ${Tree}/$i, refreshing ${Tree}/$i ..."
+				echo >> ${Tree}/$i
+				if [[ $? == 0 ]]
+				then
+					cat $i >> ${Tree}/$i
+					ECHO " --- Done"
+				else
+					ECHO " --- Failed to write new content ..."
+				fi
+			elif [[ ${__Kconfig} == config-generic ]]
+			then
+				for j in $(ls -1 ${Tree}/${_Kconfig} | egrep "config-[0-9]+")
+				do
+					ECHO " -- Generic Kconfig_file, refreshing ${Tree}/${_Kconfig}/$j ..."
+					echo >> ${Tree}/${_Kconfig}/$j
+					if [[ $? == 0 ]]
+					then
+						cat $i >> ${Tree}/${_Kconfig}/$j
+						ECHO " --- Done"
+					else
+						ECHO " --- Failed to write new content ..."
+					fi
+				done
+			fi
+		fi
+	done
+	CD ${WORK}
 	ECHO "[Firmware_Diy_Other] Done"
 }
 
@@ -279,7 +293,7 @@ Firmware_Diy_End() {
 		cd -
 		cp -a ${Fw_Path}/AutoBuild-* bin/Firmware
 	fi
-	echo "[$(date "+%H:%M:%S")] Actions Avaliable: $(df -h | grep "/dev/root" | awk '{printf $4}')"
+	ECHO "[$(date "+%H:%M:%S")] Actions Avaliable: $(df -h | grep "/dev/root" | awk '{printf $4}')"
 	ECHO "[Firmware_Diy_End] Done"
 }