blob: 366d44d3b119fb4740dc018589ab6b03da27c181 [file] [log] [blame]
developer20d67712022-03-02 14:09:32 +08001#!/bin/bash
2#
3# There are 2 env-variables set for you, you can use it in your script.
4# ${BUILD_DIR} , working dir of this script, eg: openwrt/lede/
5# ${INSTALL_DIR}, where to install your build result, including: image, build log.
6#
7
8#Global variable
9BUILD_TIME=`date +%Y%m%d%H%M%S`
10build_flag=0
11
12if [ -z ${BUILD_DIR} ]; then
13 LOCAL=1
14 BUILD_DIR=`pwd`
15fi
16
17MTK_FEED_DIR=${BUILD_DIR}/feeds/mtk_openwrt_feed
developer7273f5f2022-12-12 17:18:16 +080018MTK_MANIFEST_FEED=${BUILD_DIR}/../mtk-openwrt-feeds
developer20d67712022-03-02 14:09:32 +080019
20if [ -z ${INSTALL_DIR} ]; then
21 INSTALL_DIR=autobuild_release
22 mkdir -p ${INSTALL_DIR}
23 if [ ! -d target/linux ]; then
24 echo "You should call this scripts from openwrt's root directory."
25 fi
26fi
27
28OPENWRT_VER=`cat ${BUILD_DIR}/feeds.conf.default | grep "src-git packages" | awk -F ";openwrt" '{print $2}'`
developer068e1a42022-08-29 17:24:20 +080029if [ -z ${OPENWRT_VER} ]; then
30 OPENWRT_VER=`cat ${BUILD_DIR}/feeds.conf.default | grep "src-git-full packages" | awk -F ";openwrt" '{print $2}'`
31fi
32
developer20d67712022-03-02 14:09:32 +080033cp ${BUILD_DIR}/feeds.conf.default ${BUILD_DIR}/feeds.conf.default_ori
34
35clean() {
36 echo "clean start!"
37 echo "It will take some time ......"
38 make distclean
39 rm -rf ${INSTALL_DIR}
40 echo "clean done!"
41}
42
43do_patch(){
44 files=`find $1 -name "*.patch" | sort`
45 for file in $files
46 do
47 patch -f -p1 -i ${file} || exit 1
48 done
49}
50
developer699cda22022-12-17 15:21:57 +080051change_config_before_defconfig() {
52 return 0
53}
54
55change_config_after_defconfig() {
56 return 0
57}
58
developer20d67712022-03-02 14:09:32 +080059prepare() {
60 echo "Preparing...."
61 #FIXME : workaround HOST PC build issue
62 #cd package/mtk/applications/luci-app-mtk/;git checkout Makefile;cd -
63 #mv package/mtk package/mtk_soc/ ./
64 #rm -rf tmp/ feeds/ target/ package/ scripts/ tools/ include/ toolchain/ rules.mk
65 #git checkout target/ package/ scripts/ tools/ include/ toolchain/ rules.mk
66 #mv ./mtk ./mtk_soc/ package/
67 cp ${BUILD_DIR}/autobuild/feeds.conf.default${OPENWRT_VER} ${BUILD_DIR}/feeds.conf.default
68
69 #update feed
70 ${BUILD_DIR}/scripts/feeds update -a
71
72 #check if manifest mtk_feed exist,if yes,overwrite and update it in feeds/
73 if [ -d ${MTK_MANIFEST_FEED} ]; then
74 rm -rf ${MTK_FEED_DIR}
75 ln -s ${MTK_MANIFEST_FEED} ${MTK_FEED_DIR}
76 ${BUILD_DIR}/scripts/feeds update -a
77 fi
78
79 #do mtk_feed prepare_sdk.sh
80 cp ${MTK_FEED_DIR}/prepare_sdk.sh ${BUILD_DIR}
81
82 #if $1 exist(mt76), keep origin openwrt patches and remove mtk local eth driver
83 if [ -z ${1} ]; then
84 ${BUILD_DIR}/prepare_sdk.sh ${MTK_FEED_DIR} || exit 1
85 else
86 ${BUILD_DIR}/prepare_sdk.sh ${MTK_FEED_DIR} ${1} || exit 1
87 rm -rf ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/
88 fi
89 #install feed
90 ${BUILD_DIR}/scripts/feeds install -a
91 ${BUILD_DIR}/scripts/feeds install -a luci
92
93 #do mtk_soc openwrt patch
94 do_patch ${BUILD_DIR}/autobuild/openwrt_patches${OPENWRT_VER}/mtk_soc || exit 1
95}
96
97add_proprietary_kernel_files() {
98 #cp mtk proprietary ko_module source to mtk target
99 #and also need to be done in release mtk target
developer20d67712022-03-02 14:09:32 +0800100
developer9b3248d2022-07-06 00:44:05 +0800101 # mean it is old process for possible build issue and should delete it gradually in the furture.
102 if [ ! -d ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/wireless/wifi_utility ]; then
103 mkdir -p ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/wireless
104 cp -rf ${BUILD_DIR}/../ko_module/gateway/proprietary_driver/drivers/wifi_utility/ ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/wireless
105 fi
developer20d67712022-03-02 14:09:32 +0800106
107 cp -fpR ${BUILD_DIR}/autobuild/target/ ${BUILD_DIR}
108}
109
110prepare_mtwifi() {
111 #remove officail OpenWRT wifi script
112 #wifi-profile pkg will install wifi_jedi instead
113 rm -rf ${BUILD_DIR}/package/base-files/files/sbin/wifi
114
115 add_proprietary_kernel_files
116
developerdbcd2cb2023-06-06 13:28:00 +0800117 #add common patch
118 cp -rfa ${BUILD_DIR}/autobuild/package ${BUILD_DIR}
119
developer20d67712022-03-02 14:09:32 +0800120 #do mtk_wifi openwrt patch
121 do_patch ${BUILD_DIR}/autobuild/openwrt_patches${OPENWRT_VER}/mtk_wifi || exit 1
122}
123
developer9b3248d2022-07-06 00:44:05 +0800124prepare_flowoffload() {
developer699cda22022-12-17 15:21:57 +0800125 #cp bridger and related utilities from master
126 cp -fpR ${BUILD_DIR}/./../mac80211_package/include/bpf.mk ${BUILD_DIR}/include
127
128 cp -fpR ${BUILD_DIR}/./../mac80211_package/include/kernel-5.15 ${BUILD_DIR}/include
129
130 cp -fpR ${BUILD_DIR}/./../mac80211_package/target/llvm-bpf ${BUILD_DIR}/target
131
132 cp -fpR ${BUILD_DIR}/./../mac80211_package/tools/llvm-bpf ${BUILD_DIR}/tools
133
134 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/kernel/bpf-headers ${BUILD_DIR}/package/kernel
135
developerdbcd2cb2023-06-06 13:28:00 +0800136 rm -rf ${BUILD_DIR}/package/network/utils/bpftool*
137 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/bpftool ${BUILD_DIR}/package/network/utils
138
139 rm -rf ${BUILD_DIR}/package/libs/libbpf
140 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/libbpf ${BUILD_DIR}/package/libs
developer699cda22022-12-17 15:21:57 +0800141
developer0d889982023-03-06 20:09:24 +0800142 rm -rf ${BUILD_DIR}/package/network/utils/iproute2
143 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/iproute2 ${BUILD_DIR}/package/network/utils
144
developer699cda22022-12-17 15:21:57 +0800145 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/services/bridger ${BUILD_DIR}/package/network/services
146
developerdbcd2cb2023-06-06 13:28:00 +0800147 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0010-add-llvm_bpf-toolchain.patch || exit 1
developer699cda22022-12-17 15:21:57 +0800148
developerdbcd2cb2023-06-06 13:28:00 +0800149 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0004-2102-netfilter-remove-nf_flow_table_hw.patch || exit 1
150 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0005-add-netfilter-netlink-ftnl-package.patch || exit 1
developerb8095712023-03-25 08:27:43 +0800151
developer9b3248d2022-07-06 00:44:05 +0800152 #rm patches for flowblock
153 rm -rf ./target/linux/generic/pending-5.4/64*.patch
154 rm -rf ./target/linux/generic/hack-5.4/647-netfilter-flow-acct.patch
155 rm -rf ./target/linux/generic/hack-5.4/650-netfilter-add-xt_OFFLOAD-target.patch
developerddea6d92023-06-05 10:57:49 +0800156 rm -rf ./target/linux/mediatek/patches-5.4/999-2708-mtkhnat-add-support-for-virtual-interface-acceleration.patch
developer14e96da2023-06-09 15:59:19 +0800157 rm -rf ./target/linux/mediatek/patches-5.4/999-2726-mtkhnat-tnl-interface-offload-check.patch
developer9b3248d2022-07-06 00:44:05 +0800158
developerc665c472023-08-25 15:29:31 +0800159 # remove patches and packages of tops and ipsec
developerfc389142023-08-18 11:06:37 +0800160 rm -rf ./target/linux/mediatek/patches-5.4/*mtk-tops*.patch
developerc665c472023-08-25 15:29:31 +0800161 rm -rf ./target/linux/mediatek/patches-5.4/999-*xfrm*.patch
162 rm -rf ./target/linux/mediatek/patches-5.4/999-41*.patch
163 rm -rf ./target/linux/mediatek/patches-5.4/999-45*.patch
developerbcaa68a2024-01-17 06:08:27 +0800164 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/tops
165 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/crypto-eip
166 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/pce
developerfc389142023-08-18 11:06:37 +0800167 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/tops-tool
168
developer699cda22022-12-17 15:21:57 +0800169 #hack mt7988 config5.4
170 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7988/config-5.4
171 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7988/config-5.4
172 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7988/config-5.4
developerdbcd2cb2023-06-06 13:28:00 +0800173 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7988/config-5.4
174 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7988/config-5.4
developer699cda22022-12-17 15:21:57 +0800175
developer9b3248d2022-07-06 00:44:05 +0800176 #hack mt7986 config5.4
177 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7986/config-5.4
178 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7986/config-5.4
179 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7986/config-5.4
developerdbcd2cb2023-06-06 13:28:00 +0800180 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7986/config-5.4
181 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7986/config-5.4
developer9b3248d2022-07-06 00:44:05 +0800182
developeree9d3082023-11-14 06:07:42 +0800183 #hack mt7981 config5.4
184 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7981/config-5.4
185 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7981/config-5.4
186 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7981/config-5.4
187 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7981/config-5.4
188 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7981/config-5.4
189
developer9b3248d2022-07-06 00:44:05 +0800190 #hack mt7622 config5.4
191 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7622/config-5.4
192 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7622/config-5.4
193 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7622/config-5.4
developerdbcd2cb2023-06-06 13:28:00 +0800194 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7622/config-5.4
195 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7622/config-5.4
developer9b3248d2022-07-06 00:44:05 +0800196}
197
developere2cc0fa2022-03-29 17:31:03 +0800198prepare_mac80211() {
developer7b9aeab2022-06-13 11:31:33 +0800199 rm -rf ${BUILD_DIR}/package/network/services/hostapd
developer0443cd32023-09-19 14:11:49 +0800200 if [ "$2" = "1" ]; then
developerdbcd2cb2023-06-06 13:28:00 +0800201 echo "========================Hostapd NEW==================="
developer683be522023-05-11 14:24:50 +0800202 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/services/hostapd ${BUILD_DIR}/package/network/services
203 rm -rf ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/services/hostapd
developer93607dd2023-08-30 04:53:00 +0800204 cp -fpR ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/services/hostapd_new ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/services/hostapd
205 do_patch ${MTK_FEED_DIR}/autobuild_mac80211_release/openwrt_patches${OPENWRT_VER}/hostapd || exit 1
developer683be522023-05-11 14:24:50 +0800206 else
developerdbcd2cb2023-06-06 13:28:00 +0800207 echo "========================Hostapd OLD==================="
developer683be522023-05-11 14:24:50 +0800208 tar xvf ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/services/hostapd/hostapd_v2.10_07730ff3.tar.gz -C ${BUILD_DIR}/package/network/services/
developer683be522023-05-11 14:24:50 +0800209 fi
developer7b9aeab2022-06-13 11:31:33 +0800210
211 rm -rf ${BUILD_DIR}/package/libs/libnl-tiny
212 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/libnl-tiny ${BUILD_DIR}/package/libs
213
214 rm -rf ${BUILD_DIR}/package/network/utils/iw
developerbd32d6d2022-06-14 13:19:41 +0800215 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/iw ${BUILD_DIR}/package/network/utils
developer7b9aeab2022-06-13 11:31:33 +0800216
217 rm -rf ${BUILD_DIR}/package/network/utils/iwinfo
218 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/iwinfo ${BUILD_DIR}/package/network/utils
219
developer3e0400f2023-02-10 08:32:03 +0800220 rm -rf ${BUILD_DIR}/package/network/config/netifd
developer0443cd32023-09-19 14:11:49 +0800221 if [ "$2" = "1" ]; then
developerb31fa0a2023-09-19 06:32:06 +0800222 echo "=========================Netifd NEW====================="
223 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/config/netifd ${BUILD_DIR}/package/network/config
224 rm -rf ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/config/netifd
225 cp -fpR ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/config/netifd_new ${MTK_FEED_DIR}/autobuild_mac80211_release/package/network/config/netifd
developer9198e8b2024-02-22 06:01:52 +0800226 #wifi-scripts
227 rm -rf ${BUILD_DIR}/package/base-files/files/sbin/wifi
228 rm -rf ${BUILD_DIR}/package/network/config/wifi-scripts
229 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/config/wifi-scripts ${BUILD_DIR}/package/network/config
developera3196032023-12-01 18:35:12 +0800230 #ucode
231 rm -rf ${BUILD_DIR}/package/utils/ucode
232 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/utils/ucode ${BUILD_DIR}/package/utils
233 #ubus
234 rm -rf ${BUILD_DIR}/package/system/ubus
235 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/ubus ${BUILD_DIR}/package/system
236 #ubox & libubox
237 rm -rf ${BUILD_DIR}/package/system/ubox
238 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/ubox ${BUILD_DIR}/package/system
239 rm -rf ${BUILD_DIR}/package/libs/libubox
240 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/libubox ${BUILD_DIR}/package/libs
241 #udebug
242 rm -rf ${BUILD_DIR}/package/libs/udebug
243 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/udebug ${BUILD_DIR}/package/libs
244 #umdns
245 rm -rf ${BUILD_DIR}/package/network/services/umdns
246 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/services/umdns ${BUILD_DIR}/package/network/services
247 #rpcd
248 rm -rf ${BUILD_DIR}/package/system/rpcd
249 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/rpcd ${BUILD_DIR}/package/system
250 rm -rf ${MTK_FEED_DIR}/autobuild_mac80211_release/package/system/rpcd
251 #procd
252 rm -rf ${BUILD_DIR}/package/system/procd
253 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/procd ${BUILD_DIR}/package/system
developerb31fa0a2023-09-19 06:32:06 +0800254 else
255 echo "=========================Netifd OLD====================="
256 fi
257
developer7b9aeab2022-06-13 11:31:33 +0800258 rm -rf ${BUILD_DIR}/package/kernel/mac80211
developer0443cd32023-09-19 14:11:49 +0800259 if [ "$1" = "1" ]; then
developer7273f5f2022-12-12 17:18:16 +0800260 echo "=========================MAC80211 v6.1==================="
261 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/kernel/mac80211 ${BUILD_DIR}/package/kernel
262 rm -rf ${MTK_FEED_DIR}/autobuild_mac80211_release/package/kernel/mac80211
developer93607dd2023-08-30 04:53:00 +0800263 cp -fpR ${MTK_FEED_DIR}/autobuild_mac80211_release/package/kernel/mac80211_dev ${MTK_FEED_DIR}/autobuild_mac80211_release/package/kernel/mac80211
developer7273f5f2022-12-12 17:18:16 +0800264 else
265 echo "=========================MAC80211 v5.15=================="
266 tar xvf ${MTK_FEED_DIR}/autobuild_mac80211_release/package/kernel/mac80211/mac80211_v5.15.81_077622a1.tar.gz -C ${BUILD_DIR}/package/kernel/
267 fi
developer7b9aeab2022-06-13 11:31:33 +0800268
269 rm -rf ${BUILD_DIR}/package/firmware/wireless-regdb
developerbd32d6d2022-06-14 13:19:41 +0800270 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/firmware/wireless-regdb ${BUILD_DIR}/package/firmware
developer7b9aeab2022-06-13 11:31:33 +0800271
developera18966d2022-12-22 14:26:02 +0800272 # do not directly remove mt76 folder, since the firmware folder will also be removed and enter an unsync state
developer3e0400f2023-02-10 08:32:03 +0800273 rm -rf ${BUILD_DIR}/package/kernel/mt76/Makefile
274 rm -rf ${BUILD_DIR}/package/kernel/mt76/patches
275 rm -rf ${BUILD_DIR}/package/kernel/mt76/src
276 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/kernel/mt76 ${BUILD_DIR}/package/kernel
developer14ab3112024-03-21 07:21:44 +0800277 rm -rf ${BUILD_DIR}/package/kernel/mt76/patches/*build-on-linux-kernel-6.6.patch
developerf0de14b2022-12-14 23:07:34 +0800278
developerdbcd2cb2023-06-06 13:28:00 +0800279 # hack hostapd config
developer9b3248d2022-07-06 00:44:05 +0800280 echo "CONFIG_MBO=y" >> ./package/network/services/hostapd/files/hostapd-full.config
developerdbcd2cb2023-06-06 13:28:00 +0800281 echo "CONFIG_SAE_PK=y" >> ./package/network/services/hostapd/files/hostapd-full.config
282 echo "CONFIG_TESTING_OPTIONS=y" >> ./package/network/services/hostapd/files/hostapd-full.config
283 echo "CONFIG_HS20=y" >> ./package/network/services/hostapd/files/hostapd-full.config
284 echo "CONFIG_P2P_MANAGER=y" >> ./package/network/services/hostapd/files/hostapd-full.config
developer9b3248d2022-07-06 00:44:05 +0800285 echo "CONFIG_WPS_UPNP=y" >> ./package/network/services/hostapd/files/hostapd-full.config
286 echo "CONFIG_DPP=y" >> ./package/network/services/hostapd/files/hostapd-full.config
287 echo "CONFIG_DPP2=y" >> ./package/network/services/hostapd/files/hostapd-full.config
288 echo "CONFIG_DPP3=y" >> ./package/network/services/hostapd/files/hostapd-full.config
289 echo "CONFIG_DPP=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
290 echo "CONFIG_DPP2=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
291 echo "CONFIG_DPP3=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
developerdbcd2cb2023-06-06 13:28:00 +0800292 # add configuration for STA wireless mode setting
developer8eb72a32023-03-30 08:32:07 +0800293 echo "CONFIG_HE_OVERRIDES=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
294 echo "CONFIG_EHT_OVERRIDES=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
developer9b3248d2022-07-06 00:44:05 +0800295
developerdbcd2cb2023-06-06 13:28:00 +0800296 # hack mt7988 config5.4
297 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7988/config-5.4
298 echo "CONFIG_BLK_MQ_VIRTIO=y" >> ./target/linux/mediatek/mt7988/config-5.4
299 echo "CONFIG_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7988/config-5.4
300 echo "CONFIG_REMOTEPROC=y" >> ./target/linux/mediatek/mt7988/config-5.4
301 echo "CONFIG_VIRTIO=y" >> ./target/linux/mediatek/mt7988/config-5.4
302 echo "CONFIG_WANT_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7988/config-5.4
303 echo "CONFIG_VIRTIO_CONSOLE=n" >> ./target/linux/mediatek/mt7988/config-5.4
304 echo "CONFIG_VIRTIO_NET=n" >> ./target/linux/mediatek/mt7988/config-5.4
305 echo "CONFIG_VIRTIO_BLK=n" >> ./target/linux/mediatek/mt7988/config-5.4
306
307 # hack mt7986 config5.4
308 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7986/config-5.4
309 echo "CONFIG_BLK_MQ_VIRTIO=y" >> ./target/linux/mediatek/mt7986/config-5.4
310 echo "CONFIG_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7986/config-5.4
311 echo "CONFIG_REMOTEPROC=y" >> ./target/linux/mediatek/mt7986/config-5.4
312 echo "CONFIG_VIRTIO=y" >> ./target/linux/mediatek/mt7986/config-5.4
313 echo "CONFIG_WANT_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7986/config-5.4
314 echo "CONFIG_VIRTIO_CONSOLE=n" >> ./target/linux/mediatek/mt7986/config-5.4
315 echo "CONFIG_VIRTIO_NET=n" >> ./target/linux/mediatek/mt7986/config-5.4
316 echo "CONFIG_VIRTIO_BLK=n" >> ./target/linux/mediatek/mt7986/config-5.4
317
developere3cb3002023-11-13 09:59:22 +0800318 # hack mt7981 config5.4
319 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7981/config-5.4
320 echo "CONFIG_BLK_MQ_VIRTIO=y" >> ./target/linux/mediatek/mt7981/config-5.4
321 echo "CONFIG_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7981/config-5.4
322 echo "CONFIG_REMOTEPROC=y" >> ./target/linux/mediatek/mt7981/config-5.4
323 echo "CONFIG_VIRTIO=y" >> ./target/linux/mediatek/mt7981/config-5.4
324 echo "CONFIG_WANT_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7981/config-5.4
325 echo "CONFIG_VIRTIO_CONSOLE=n" >> ./target/linux/mediatek/mt7981/config-5.4
326 echo "CONFIG_VIRTIO_NET=n" >> ./target/linux/mediatek/mt7981/config-5.4
327 echo "CONFIG_VIRTIO_BLK=n" >> ./target/linux/mediatek/mt7981/config-5.4
328
developerdbcd2cb2023-06-06 13:28:00 +0800329 # hack mt7622 config5.4
330 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7622/config-5.4
331
developer24684862023-08-02 08:10:38 +0800332 # MAC80211/Hostapd Script
developer0443cd32023-09-19 14:11:49 +0800333 if [ "$1" = "1" ]; then
developer24684862023-08-02 08:10:38 +0800334 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0001-wifi7-mac80211-generate-hostapd-setting-from-ap-cap.patch || exit 1
335 else
336 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0001-wifi6-mac80211-generate-hostapd-setting-from-ap-cap.patch || exit 1
337 fi
338
339 # Hostapd Makefile
developer0443cd32023-09-19 14:11:49 +0800340 if [ "$2" = "1" ]; then
developer24684862023-08-02 08:10:38 +0800341 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0002-wifi7-hostapd-makefile-for-utils.patch || exit 1
342 else
343 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0002-wifi6-hostapd-makefile-for-utils.patch || exit 1
344 fi
345
346 # MT76 Makefile
developerdbcd2cb2023-06-06 13:28:00 +0800347 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0003-master-mt76-makefile-for-new-chip.patch || exit 1
developere2cc0fa2022-03-29 17:31:03 +0800348 cp -rfa ${MTK_FEED_DIR}/autobuild_mac80211_release/package/ ${BUILD_DIR}
developer73b93122022-04-19 23:16:58 +0800349 cp -rfa ${MTK_FEED_DIR}/autobuild_mac80211_release/target/ ${BUILD_DIR}
developer6a027622023-08-29 06:38:24 +0800350
351 # Bridge Default Setting
352 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0006-network-enable-bridge-igmp_snooping-by-default.patch || exit 1
developer283b4122024-07-11 16:40:22 +0800353
354 # Relayd change trigger reload to trigger restart
355 patch -f -p1 -i ${MTK_FEED_DIR}/autobuild_mac80211_release/0007-relayd-change-trigger-reload-to-trigger-restart.patch || exit 1
developere2cc0fa2022-03-29 17:31:03 +0800356}
357
developer20d67712022-03-02 14:09:32 +0800358copy_main_Config() {
359 echo cp -rfa autobuild/$1/.config ./.config
360 cp -rfa autobuild/$1/.config ./.config
361}
362
363install_output_Image() {
364 mkdir -p ${INSTALL_DIR}/$1
365
366 files=`find bin/targets/$3/*${2}* -name "*.bin" -o -name "*.img"`
367 file_count=0
368
369 for file in $files
370 do
371 tmp=${file%.*}
372 cp -rf $file ${INSTALL_DIR}/$1/${tmp##*/}-${BUILD_TIME}.${file##*.}
373 ((file_count++))
374 done
375
376 if [ ${file_count} = 0 ]; then
377 if [ ${build_flag} -eq 0 ]; then
378 let build_flag+=1
379 echo " Restart to debug-build with "make V=s -j1", starting......"
380 build $1 -j1 || [ "$LOCAL" != "1" ]
381 else
382 echo " **********Failed to build $1, bin missing.**********"
383 fi
384 else
385 echo "Install image OK!!!"
386 echo "Build $1 successfully!"
387 fi
388}
389
390install_output_Config() {
391 echo cp -rfa autobuild/$1/.config ${INSTALL_DIR}/$1/openwrt.config
392 cp -rfa autobuild/$1/.config ${INSTALL_DIR}/$1/openwrt.config
393 [ -f tmp/kernel.config ] && cp tmp/kernel.config ${INSTALL_DIR}/$1/kernel.config
394}
395
396install_output_KernelDebugFile() {
397 KernelDebugFile=bin/targets/$3/mt${2}*/kernel-debug.tar.bz2
398 if [ -f ${KernelDebugFile} ]; then
399 echo cp -rfa ${KernelDebugFile} ${INSTALL_DIR}/$1/kernel-debug.tar.bz2
400 cp -rfa ${KernelDebugFile} ${INSTALL_DIR}/$1/kernel-debug.tar.bz2
401 fi
402}
403
404install_output_RootfsDebugFile() {
405 STAGING_DIR_ROOT=$(make -f "autobuild/get_stagingdir_root.mk" get-staging-dir-root)
406 if [ -d ${STAGING_DIR_ROOT} ]; then
407 STAGING_DIR_ROOT_PREFIX=$(dirname ${STAGING_DIR_ROOT})
408 STAGING_DIR_ROOT_NAME=$(basename ${STAGING_DIR_ROOT})
409 echo "tar -jcf ${INSTALL_DIR}/$1/rootfs-debug.tar.bz2 -C \"$STAGING_DIR_ROOT_PREFIX\" \"$STAGING_DIR_ROOT_NAME\""
410 tar -jcf ${INSTALL_DIR}/$1/rootfs-debug.tar.bz2 -C "$STAGING_DIR_ROOT_PREFIX" "$STAGING_DIR_ROOT_NAME"
411 fi
412}
413
414install_output_feeds_buildinfo() {
415 feeds_buildinfo=$(find bin/targets/$3/*${2}*/ -name "feeds.buildinfo")
416 echo "feeds_buildinfo=$feeds_buildinfo"
417 if [ -f ${feeds_buildinfo} ]; then
418 cp -rf $feeds_buildinfo ${INSTALL_DIR}/$1/feeds.buildinfo
419 else
420 echo "feeds.buildinfo is not found!!!"
421 fi
422}
423
developer699cda22022-12-17 15:21:57 +0800424install_output_at() {
developer3e0400f2023-02-10 08:32:03 +0800425 tar -zcvf to_at.tgz -C ${INSTALL_DIR}/$1 .
developer699cda22022-12-17 15:21:57 +0800426 mv to_at.tgz ${INSTALL_DIR}/
427}
428
developer20d67712022-03-02 14:09:32 +0800429install_release() {
430 temp=${1#*mt}
developerdbcd2cb2023-06-06 13:28:00 +0800431 if [ -z ${chip_name} ]; then
432 chip_name=${temp:0:4}
433 fi
developer20d67712022-03-02 14:09:32 +0800434 temp1=`grep "CONFIG_TARGET_ramips=y" autobuild/$1/.config`
435
436 if [ "${temp1}" == "CONFIG_TARGET_ramips=y" ]; then
437 arch_name="ramips"
438 else
439 arch_name="mediatek"
440 fi
441
442 #install output image
443 install_output_Image $1 ${chip_name} ${arch_name}
444
445 #install output config
446 install_output_Config $1
447
448 #install output Kernel-Debug-File
449 install_output_KernelDebugFile $1 ${chip_name} ${arch_name}
450
451 #tar unstripped rootfs for debug symbols
452 install_output_RootfsDebugFile $1
453
developer699cda22022-12-17 15:21:57 +0800454 #install output feeds buildinfo
455 install_output_feeds_buildinfo $1 ${chip_name} ${arch_name}
developer20d67712022-03-02 14:09:32 +0800456}
457
458prepare_final() {
459 #cp customized autobuild SDK patches
460 cp -fpR ${BUILD_DIR}/autobuild/$1/target/ ${BUILD_DIR}
461 cp -fpR ${BUILD_DIR}/autobuild/$1/package/ ${BUILD_DIR}
developer7273f5f2022-12-12 17:18:16 +0800462 cp -fpR ${BUILD_DIR}/autobuild/$1/tools/ ${BUILD_DIR}
developer20d67712022-03-02 14:09:32 +0800463
464
465 #cp special subtarget patches
466 case $1 in
467 mt7986*)
468 cp -rf ${BUILD_DIR}/autobuild/mt7986-AX6000/target/linux/mediatek/patches-5.4/*.* ${BUILD_DIR}/target/linux/mediatek/patches-5.4
469 ;;
470 *)
471 ;;
472 esac
473
474 #rm old legacy patch, ex old nfi nand driver
475 case $1 in
476 mt7986*|\
developer699cda22022-12-17 15:21:57 +0800477 mt7981*|\
478 mt7988*)
developer20d67712022-03-02 14:09:32 +0800479 rm -rf ${BUILD_DIR}/target/linux/mediatek/patches-5.4/0303-mtd-spinand-disable-on-die-ECC.patch
480 ;;
481 *)
482 ;;
483 esac
484
485 cd ${BUILD_DIR}
486 [ -f autobuild/$1/.config ] || {
487 echo "unable to locate autobuild/$1/.config !"
488 return
489 }
490
491 rm -rf ./tmp
492 #copy main test config(.config)
493 copy_main_Config $1
494
developer699cda22022-12-17 15:21:57 +0800495 change_config_before_defconfig
496
developer20d67712022-03-02 14:09:32 +0800497 echo make defconfig
498 make defconfig
developer699cda22022-12-17 15:21:57 +0800499
500 change_config_after_defconfig
developer20d67712022-03-02 14:09:32 +0800501}
502
503build() {
504 echo "###############################################################################"
505 echo "# $1"
506 echo "###############################################################################"
507 echo "build $1"
508
509 cd ${BUILD_DIR}
510
developer9b3248d2022-07-06 00:44:05 +0800511 #make
512
513 echo "make V=s -j $(($(nproc) + 1)) download world"
514 make V=s -j $(($(nproc) + 1)) download world || exit 1
515
516 #tar unstripped rootfs for debug symbols
517 install_release $1
518}
519
520build_log() {
521 echo "###############################################################################"
522 echo "# $1"
523 echo "###############################################################################"
524 echo "build $1"
525
526 cd ${BUILD_DIR}
527
528 #make
529
530 echo "make V=s -j $(($(nproc) + 1)) download world"
531 make V=s -j $(($(nproc) + 1)) download world || make V=s -j1 || exit 1
developer20d67712022-03-02 14:09:32 +0800532
533 #tar unstripped rootfs for debug symbols
534 install_release $1
535}