blob: 41d1d3f88806b213f9680f74e0e3c0e774e14d46 [file] [log] [blame]
developerd50a5782024-07-16 02:16:44 +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
12# Bypass the hash check to prevent the related packages obtained from the
13# master branch from being affected by the changes made below, causing build fail.
14# https://github.com/openwrt/openwrt/commit/e8725a932e16eaf6ec51add8c084d959cbe32ff2
15SKIP_PKG_HASH_CHECK=1
16
17if [ -z ${BUILD_DIR} ]; then
18 LOCAL=1
19 BUILD_DIR=`pwd`
20fi
21
22MTK_FEED_DIR=${BUILD_DIR}/feeds/mtk_openwrt_feed
23MTK_MANIFEST_FEED=${BUILD_DIR}/../mtk-openwrt-feeds
24MAC80211_AUTOBUILD_RELEASE=${MTK_FEED_DIR}/autobuild/autobuild_5.4_mac80211_release
25
26if [ -z ${INSTALL_DIR} ]; then
27 INSTALL_DIR=autobuild_release
28 mkdir -p ${INSTALL_DIR}
29 if [ ! -d target/linux ]; then
30 echo "You should call this scripts from openwrt's root directory."
31 fi
32fi
33
34OPENWRT_VER=`cat ${BUILD_DIR}/feeds.conf.default | grep "src-git packages" | awk -F ";openwrt" '{print $2}'`
35if [ -z ${OPENWRT_VER} ]; then
36 OPENWRT_VER=`cat ${BUILD_DIR}/feeds.conf.default | grep "src-git-full packages" | awk -F ";openwrt" '{print $2}'`
37fi
38
39cp ${BUILD_DIR}/feeds.conf.default ${BUILD_DIR}/feeds.conf.default_ori
40
41clean() {
42 echo "clean start!"
43 echo "It will take some time ......"
44 make distclean
45 rm -rf ${INSTALL_DIR}
46 echo "clean done!"
47}
48
49do_patch(){
50 files=`find $1 -name "*.patch" | sort`
51 for file in $files
52 do
53 patch -f -p1 -i ${file} || exit 1
54 done
55}
56
57change_config_before_defconfig() {
58 return 0
59}
60
61change_config_after_defconfig() {
62 return 0
63}
64
65prepare() {
66 echo "Preparing...."
67 #FIXME : workaround HOST PC build issue
68 #cd package/mtk/applications/luci-app-mtk/;git checkout Makefile;cd -
69 #mv package/mtk package/mtk_soc/ ./
70 #rm -rf tmp/ feeds/ target/ package/ scripts/ tools/ include/ toolchain/ rules.mk
71 #git checkout target/ package/ scripts/ tools/ include/ toolchain/ rules.mk
72 #mv ./mtk ./mtk_soc/ package/
73 cp ${BUILD_DIR}/autobuild/feeds.conf.default${OPENWRT_VER} ${BUILD_DIR}/feeds.conf.default
74
75 #update feed
76 ${BUILD_DIR}/scripts/feeds update -a
77
78 #check if manifest mtk_feed exist,if yes,overwrite and update it in feeds/
79 if [ -d ${MTK_MANIFEST_FEED} ]; then
80 rm -rf ${MTK_FEED_DIR}
81 ln -s ${MTK_MANIFEST_FEED} ${MTK_FEED_DIR}
82 ${BUILD_DIR}/scripts/feeds update -a
83 fi
84
85 #do mtk_feed prepare_sdk.sh
86 cp ${MTK_FEED_DIR}/prepare_sdk.sh ${BUILD_DIR}
87
88 #if $1 exist(mt76), keep origin openwrt patches and remove mtk local eth driver
89 if [ -z ${1} ]; then
90 ${BUILD_DIR}/prepare_sdk.sh ${MTK_FEED_DIR} || exit 1
91 else
92 ${BUILD_DIR}/prepare_sdk.sh ${MTK_FEED_DIR} ${1} || exit 1
93 rm -rf ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/
94 fi
95 #install feed
96 ${BUILD_DIR}/scripts/feeds install -a
97 ${BUILD_DIR}/scripts/feeds install -a luci
98
99 #do mtk_soc openwrt patch
100 do_patch ${BUILD_DIR}/autobuild/openwrt_patches${OPENWRT_VER}/mtk_soc || exit 1
101}
102
103add_proprietary_kernel_files() {
104 #cp mtk proprietary ko_module source to mtk target
105 #and also need to be done in release mtk target
106
107 # mean it is old process for possible build issue and should delete it gradually in the furture.
108 if [ ! -d ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/wireless/wifi_utility ]; then
109 mkdir -p ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/wireless
110 cp -rf ${BUILD_DIR}/../ko_module/gateway/proprietary_driver/drivers/wifi_utility/ ${BUILD_DIR}/target/linux/mediatek/files-5.4/drivers/net/wireless
111 fi
112
113 cp -fpR ${BUILD_DIR}/autobuild/target/ ${BUILD_DIR}
114}
115
116prepare_mtwifi() {
117 #remove officail OpenWRT wifi script
118 #wifi-profile pkg will install wifi_jedi instead
119 rm -rf ${BUILD_DIR}/package/base-files/files/sbin/wifi
120
121 add_proprietary_kernel_files
122
123 #do mtk_wifi openwrt patch
124 do_patch ${BUILD_DIR}/autobuild/openwrt_patches${OPENWRT_VER}/mtk_wifi || exit 1
125}
126
127prepare_flowoffload() {
128 #cp bridger and related utilities from master
129 cp -fpR ${BUILD_DIR}/./../mac80211_package/include/bpf.mk ${BUILD_DIR}/include
130
131 cp -fpR ${BUILD_DIR}/./../mac80211_package/include/kernel-5.15 ${BUILD_DIR}/include
132
133 cp -fpR ${BUILD_DIR}/./../mac80211_package/target/llvm-bpf ${BUILD_DIR}/target
134
135 cp -fpR ${BUILD_DIR}/./../mac80211_package/tools/llvm-bpf ${BUILD_DIR}/tools
136
137 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/kernel/bpf-headers ${BUILD_DIR}/package/kernel
138
139 rm -rf ${BUILD_DIR}/package/network/utils/bpftool*
140 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/bpftool ${BUILD_DIR}/package/network/utils
141
142 rm -rf ${BUILD_DIR}/package/libs/libbpf
143 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/libbpf ${BUILD_DIR}/package/libs
144
145 rm -rf ${BUILD_DIR}/package/network/utils/iproute2
146 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/iproute2 ${BUILD_DIR}/package/network/utils
147
148 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/services/bridger ${BUILD_DIR}/package/network/services
149
150 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0010-add-llvm_bpf-toolchain.patch || exit 1
151 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0004-2102-netfilter-remove-nf_flow_table_hw.patch || exit 1
152 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0005-add-netfilter-netlink-ftnl-package.patch || exit 1
153
154 #rm patches for flowblock
155 rm -rf ./target/linux/generic/pending-5.4/64*.patch
156 rm -rf ./target/linux/generic/hack-5.4/647-netfilter-flow-acct.patch
157 rm -rf ./target/linux/generic/hack-5.4/650-netfilter-add-xt_OFFLOAD-target.patch
158 rm -rf ./target/linux/mediatek/patches-5.4/999-2708-mtkhnat-add-support-for-virtual-interface-acceleration.patch
159 rm -rf ./target/linux/mediatek/patches-5.4/999-2726-mtkhnat-tnl-interface-offload-check.patch
160
161 # remove patches and packages of tops and ipsec
162 rm -rf ./target/linux/mediatek/patches-5.4/*mtk-tops*.patch
163 rm -rf ./target/linux/mediatek/patches-5.4/999-*xfrm*.patch
164 rm -rf ./target/linux/mediatek/patches-5.4/999-41*.patch
165 rm -rf ./target/linux/mediatek/patches-5.4/999-45*.patch
166 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/tops
167 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/crypto-eip
168 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/pce
169 rm -rf ${BUILD_DIR}/package/feeds/mtk_openwrt_feed/tops-tool
170
171 #hack mt7988 config5.4
172 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7988/config-5.4
173 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7988/config-5.4
174 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7988/config-5.4
175 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7988/config-5.4
176 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7988/config-5.4
177
178 #hack mt7986 config5.4
179 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7986/config-5.4
180 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7986/config-5.4
181 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7986/config-5.4
182 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7986/config-5.4
183 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7986/config-5.4
184
185 #hack mt7981 config5.4
186 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7981/config-5.4
187 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7981/config-5.4
188 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7981/config-5.4
189 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7981/config-5.4
190 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7981/config-5.4
191
192 #hack mt7622 config5.4
193 echo "CONFIG_BRIDGE_NETFILTER=y" >> ./target/linux/mediatek/mt7622/config-5.4
194 echo "CONFIG_NETFILTER_FAMILY_BRIDGE=y" >> ./target/linux/mediatek/mt7622/config-5.4
195 echo "CONFIG_SKB_EXTENSIONS=y" >> ./target/linux/mediatek/mt7622/config-5.4
196 echo "CONFIG_NETFILTER=y" >> ./target/linux/mediatek/mt7622/config-5.4
197 echo "CONFIG_NETFILTER_ADVANCED=y" >> ./target/linux/mediatek/mt7622/config-5.4
198}
199
200prepare_mac80211() {
201 rm -rf ${BUILD_DIR}/package/network/services/hostapd
202 if [ "$2" = "1" ]; then
203 echo "========================Hostapd NEW==================="
204 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/services/hostapd ${BUILD_DIR}/package/network/services
205 rm -rf ${MAC80211_AUTOBUILD_RELEASE}/package/network/services/hostapd
206 cp -fpR ${MAC80211_AUTOBUILD_RELEASE}/package/network/services/hostapd_new ${MAC80211_AUTOBUILD_RELEASE}/package/network/services/hostapd
207 do_patch ${MAC80211_AUTOBUILD_RELEASE}/openwrt_patches${OPENWRT_VER}/hostapd || exit 1
208 else
209 echo "========================Hostapd OLD==================="
210 tar xvf ${MAC80211_AUTOBUILD_RELEASE}/package/network/services/hostapd/hostapd_v2.10_07730ff3.tar.gz -C ${BUILD_DIR}/package/network/services/
211 fi
212
213 rm -rf ${BUILD_DIR}/package/libs/libnl-tiny
214 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/libnl-tiny ${BUILD_DIR}/package/libs
215
216 rm -rf ${BUILD_DIR}/package/network/utils/iw
217 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/iw ${BUILD_DIR}/package/network/utils
218
219 rm -rf ${BUILD_DIR}/package/network/utils/iwinfo
220 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/utils/iwinfo ${BUILD_DIR}/package/network/utils
221
222 rm -rf ${BUILD_DIR}/package/network/config/netifd
223 if [ "$2" = "1" ]; then
224 echo "=========================Netifd NEW====================="
225 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/config/netifd ${BUILD_DIR}/package/network/config
226 rm -rf ${MAC80211_AUTOBUILD_RELEASE}/package/network/config/netifd
227 cp -fpR ${MAC80211_AUTOBUILD_RELEASE}/package/network/config/netifd_new ${MAC80211_AUTOBUILD_RELEASE}/package/network/config/netifd
228 #wifi-scripts
229 rm -rf ${BUILD_DIR}/package/base-files/files/sbin/wifi
230 rm -rf ${BUILD_DIR}/package/network/config/wifi-scripts
231 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/config/wifi-scripts ${BUILD_DIR}/package/network/config
232 #ucode
233 rm -rf ${BUILD_DIR}/package/utils/ucode
234 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/utils/ucode ${BUILD_DIR}/package/utils
235 #ubus
236 rm -rf ${BUILD_DIR}/package/system/ubus
237 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/ubus ${BUILD_DIR}/package/system
238 #ubox & libubox
239 rm -rf ${BUILD_DIR}/package/system/ubox
240 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/ubox ${BUILD_DIR}/package/system
241 rm -rf ${BUILD_DIR}/package/libs/libubox
242 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/libubox ${BUILD_DIR}/package/libs
243 #udebug
244 rm -rf ${BUILD_DIR}/package/libs/udebug
245 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/libs/udebug ${BUILD_DIR}/package/libs
246 #umdns
247 rm -rf ${BUILD_DIR}/package/network/services/umdns
248 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/network/services/umdns ${BUILD_DIR}/package/network/services
249 #rpcd
250 rm -rf ${BUILD_DIR}/package/system/rpcd
251 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/rpcd ${BUILD_DIR}/package/system
252 rm -rf ${MAC80211_AUTOBUILD_RELEASE}/package/system/rpcd
253 #procd
254 rm -rf ${BUILD_DIR}/package/system/procd
255 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/system/procd ${BUILD_DIR}/package/system
256 else
257 echo "=========================Netifd OLD====================="
258 fi
259
260 rm -rf ${BUILD_DIR}/package/kernel/mac80211
261 if [ "$1" = "1" ]; then
262 echo "=========================MAC80211 v6.1==================="
263 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/kernel/mac80211 ${BUILD_DIR}/package/kernel
264 rm -rf ${MAC80211_AUTOBUILD_RELEASE}/package/kernel/mac80211
265 cp -fpR ${MAC80211_AUTOBUILD_RELEASE}/package/kernel/mac80211_dev ${MAC80211_AUTOBUILD_RELEASE}/package/kernel/mac80211
266 else
267 echo "=========================MAC80211 v5.15=================="
268 tar xvf ${MAC80211_AUTOBUILD_RELEASE}/package/kernel/mac80211/mac80211_v5.15.81_077622a1.tar.gz -C ${BUILD_DIR}/package/kernel/
269 fi
270
271 rm -rf ${BUILD_DIR}/package/firmware/wireless-regdb
272 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/firmware/wireless-regdb ${BUILD_DIR}/package/firmware
273
274 # do not directly remove mt76 folder, since the firmware folder will also be removed and enter an unsync state
275 rm -rf ${BUILD_DIR}/package/kernel/mt76/Makefile
276 rm -rf ${BUILD_DIR}/package/kernel/mt76/patches
277 rm -rf ${BUILD_DIR}/package/kernel/mt76/src
278 cp -fpR ${BUILD_DIR}/./../mac80211_package/package/kernel/mt76 ${BUILD_DIR}/package/kernel
279 rm -rf ${BUILD_DIR}/package/kernel/mt76/patches/*build-on-linux-kernel-6.6.patch
280
281 # hack hostapd config
282 echo "CONFIG_MBO=y" >> ./package/network/services/hostapd/files/hostapd-full.config
283 echo "CONFIG_SAE_PK=y" >> ./package/network/services/hostapd/files/hostapd-full.config
284 echo "CONFIG_TESTING_OPTIONS=y" >> ./package/network/services/hostapd/files/hostapd-full.config
285 echo "CONFIG_HS20=y" >> ./package/network/services/hostapd/files/hostapd-full.config
286 echo "CONFIG_P2P_MANAGER=y" >> ./package/network/services/hostapd/files/hostapd-full.config
287 echo "CONFIG_WPS_UPNP=y" >> ./package/network/services/hostapd/files/hostapd-full.config
288 echo "CONFIG_DPP=y" >> ./package/network/services/hostapd/files/hostapd-full.config
289 echo "CONFIG_DPP2=y" >> ./package/network/services/hostapd/files/hostapd-full.config
290 echo "CONFIG_DPP3=y" >> ./package/network/services/hostapd/files/hostapd-full.config
291 echo "CONFIG_DPP=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
292 echo "CONFIG_DPP2=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
293 echo "CONFIG_DPP3=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
294 # add configuration for STA wireless mode setting
295 echo "CONFIG_HE_OVERRIDES=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
296 echo "CONFIG_EHT_OVERRIDES=y" >> ./package/network/services/hostapd/files/wpa_supplicant-full.config
297
298 # hack mt7988 config5.4
299 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7988/config-5.4
300 echo "CONFIG_BLK_MQ_VIRTIO=y" >> ./target/linux/mediatek/mt7988/config-5.4
301 echo "CONFIG_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7988/config-5.4
302 echo "CONFIG_REMOTEPROC=y" >> ./target/linux/mediatek/mt7988/config-5.4
303 echo "CONFIG_VIRTIO=y" >> ./target/linux/mediatek/mt7988/config-5.4
304 echo "CONFIG_WANT_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7988/config-5.4
305 echo "CONFIG_VIRTIO_CONSOLE=n" >> ./target/linux/mediatek/mt7988/config-5.4
306 echo "CONFIG_VIRTIO_NET=n" >> ./target/linux/mediatek/mt7988/config-5.4
307 echo "CONFIG_VIRTIO_BLK=n" >> ./target/linux/mediatek/mt7988/config-5.4
308
309 # hack mt7986 config5.4
310 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7986/config-5.4
311 echo "CONFIG_BLK_MQ_VIRTIO=y" >> ./target/linux/mediatek/mt7986/config-5.4
312 echo "CONFIG_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7986/config-5.4
313 echo "CONFIG_REMOTEPROC=y" >> ./target/linux/mediatek/mt7986/config-5.4
314 echo "CONFIG_VIRTIO=y" >> ./target/linux/mediatek/mt7986/config-5.4
315 echo "CONFIG_WANT_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7986/config-5.4
316 echo "CONFIG_VIRTIO_CONSOLE=n" >> ./target/linux/mediatek/mt7986/config-5.4
317 echo "CONFIG_VIRTIO_NET=n" >> ./target/linux/mediatek/mt7986/config-5.4
318 echo "CONFIG_VIRTIO_BLK=n" >> ./target/linux/mediatek/mt7986/config-5.4
319
320 # hack mt7981 config5.4
321 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7981/config-5.4
322 echo "CONFIG_BLK_MQ_VIRTIO=y" >> ./target/linux/mediatek/mt7981/config-5.4
323 echo "CONFIG_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7981/config-5.4
324 echo "CONFIG_REMOTEPROC=y" >> ./target/linux/mediatek/mt7981/config-5.4
325 echo "CONFIG_VIRTIO=y" >> ./target/linux/mediatek/mt7981/config-5.4
326 echo "CONFIG_WANT_DEV_COREDUMP=y" >> ./target/linux/mediatek/mt7981/config-5.4
327 echo "CONFIG_VIRTIO_CONSOLE=n" >> ./target/linux/mediatek/mt7981/config-5.4
328 echo "CONFIG_VIRTIO_NET=n" >> ./target/linux/mediatek/mt7981/config-5.4
329 echo "CONFIG_VIRTIO_BLK=n" >> ./target/linux/mediatek/mt7981/config-5.4
330
331 # hack mt7622 config5.4
332 echo "CONFIG_RELAY=y" >> ./target/linux/mediatek/mt7622/config-5.4
333
334 # MAC80211/Hostapd Script
335 if [ "$1" = "1" ]; then
336 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0001-wifi7-mac80211-generate-hostapd-setting-from-ap-cap.patch || exit 1
337 else
338 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0001-wifi6-mac80211-generate-hostapd-setting-from-ap-cap.patch || exit 1
339 fi
340
341 # Hostapd Makefile
342 if [ "$2" = "1" ]; then
343 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0002-wifi7-hostapd-makefile-for-utils.patch || exit 1
344 else
345 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0002-wifi6-hostapd-makefile-for-utils.patch || exit 1
346 fi
347
348 # MT76 Makefile
349 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0003-master-mt76-makefile-for-new-chip.patch || exit 1
350 cp -rfa ${MAC80211_AUTOBUILD_RELEASE}/package/ ${BUILD_DIR}
351 cp -rfa ${MAC80211_AUTOBUILD_RELEASE}/target/ ${BUILD_DIR}
352
353 # Bridge Default Setting
354 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0006-network-enable-bridge-igmp_snooping-by-default.patch || exit 1
355
356 # Relayd change trigger reload to trigger restart
357 patch -f -p1 -i ${MAC80211_AUTOBUILD_RELEASE}/0007-relayd-change-trigger-reload-to-trigger-restart.patch || exit 1
358}
359
360prepare_opensync() {
361 for pch in autobuild/$1/patch_for_local/*; do patch -p1 < $pch; done
362 cp -rfa ${BUILD_DIR}/../app/opensync/* ${BUILD_DIR}/../
363}
364
365copy_main_Config() {
366 echo cp -rfa autobuild/$1/.config ./.config
367 cp -rfa autobuild/$1/.config ./.config
368}
369
370install_output_Image() {
371 mkdir -p ${INSTALL_DIR}/$1
372
373 files=`find bin/targets/$3/*${2}* -name "*.bin" -o -name "*.img"`
374 file_count=0
375
376 for file in $files
377 do
378 tmp=${file%.*}
379 cp -rf $file ${INSTALL_DIR}/$1/${tmp##*/}-${BUILD_TIME}.${file##*.}
380 ((file_count++))
381 done
382
383 if [ ${file_count} = 0 ]; then
384 if [ ${build_flag} -eq 0 ]; then
385 let build_flag+=1
386 echo " Restart to debug-build with "make V=s -j1", starting......"
387 build $1 -j1 || [ "$LOCAL" != "1" ]
388 else
389 echo " **********Failed to build $1, bin missing.**********"
390 fi
391 else
392 echo "Install image OK!!!"
393 echo "Build $1 successfully!"
394 fi
395}
396
397install_output_Config() {
398 echo cp -rfa autobuild/$1/.config ${INSTALL_DIR}/$1/openwrt.config
399 cp -rfa autobuild/$1/.config ${INSTALL_DIR}/$1/openwrt.config
400 [ -f tmp/kernel.config ] && cp tmp/kernel.config ${INSTALL_DIR}/$1/kernel.config
401}
402
403install_output_KernelDebugFile() {
404 KernelDebugFile=bin/targets/$3/mt${2}*/kernel-debug.tar.zst
405 if [ -f ${KernelDebugFile} ]; then
406 echo cp -rfa ${KernelDebugFile} ${INSTALL_DIR}/$1/kernel-debug.tar.zst
407 cp -rfa ${KernelDebugFile} ${INSTALL_DIR}/$1/kernel-debug.tar.zst
408 fi
409}
410
411install_output_RootfsDebugFile() {
412 STAGING_DIR_ROOT=$(make -f "autobuild/get_stagingdir_root.mk" get-staging-dir-root)
413 if [ -d ${STAGING_DIR_ROOT} ]; then
414 STAGING_DIR_ROOT_PREFIX=$(dirname ${STAGING_DIR_ROOT})
415 STAGING_DIR_ROOT_NAME=$(basename ${STAGING_DIR_ROOT})
416 echo "tar -jcf ${INSTALL_DIR}/$1/rootfs-debug.tar.bz2 -C \"$STAGING_DIR_ROOT_PREFIX\" \"$STAGING_DIR_ROOT_NAME\""
417 tar -jcf ${INSTALL_DIR}/$1/rootfs-debug.tar.bz2 -C "$STAGING_DIR_ROOT_PREFIX" "$STAGING_DIR_ROOT_NAME"
418 fi
419}
420
421install_output_feeds_buildinfo() {
422 feeds_buildinfo=$(find bin/targets/$3/*${2}*/ -name "feeds.buildinfo")
423 echo "feeds_buildinfo=$feeds_buildinfo"
424 if [ -f ${feeds_buildinfo} ]; then
425 cp -rf $feeds_buildinfo ${INSTALL_DIR}/$1/feeds.buildinfo
426 else
427 echo "feeds.buildinfo is not found!!!"
428 fi
429}
430
431install_output_at() {
432 tar -zcvf to_at.tgz -C ${INSTALL_DIR}/$1 .
433 mv to_at.tgz ${INSTALL_DIR}/
434}
435
436install_release() {
437 temp=${1#*mt}
438 if [ -z ${chip_name} ]; then
439 chip_name=${temp:0:4}
440 fi
441 temp1=`grep "CONFIG_TARGET_ramips=y" autobuild/$1/.config`
442
443 if [ "${temp1}" == "CONFIG_TARGET_ramips=y" ]; then
444 arch_name="ramips"
445 else
446 arch_name="mediatek"
447 fi
448
449 #install output image
450 install_output_Image $1 ${chip_name} ${arch_name}
451
452 #install output config
453 install_output_Config $1
454
455 #install output Kernel-Debug-File
456 install_output_KernelDebugFile $1 ${chip_name} ${arch_name}
457
458 #tar unstripped rootfs for debug symbols
459 install_output_RootfsDebugFile $1
460
461 #install output feeds buildinfo
462 install_output_feeds_buildinfo $1 ${chip_name} ${arch_name}
463
464 #tarball for AT
465 install_output_at $1
466}
467
468prepare_final() {
469 #cp customized autobuild SDK patches
470 cp -fpR ${BUILD_DIR}/autobuild/$1/target/ ${BUILD_DIR}
471 cp -fpR ${BUILD_DIR}/autobuild/$1/package/ ${BUILD_DIR}
472 cp -fpR ${BUILD_DIR}/autobuild/$1/tools/ ${BUILD_DIR}
473
474
475 #cp special subtarget patches
476 case $1 in
477 mt7986*)
478 cp -rf ${BUILD_DIR}/autobuild/mt7986-AX6000/target/linux/mediatek/patches-5.4/*.* ${BUILD_DIR}/target/linux/mediatek/patches-5.4
479 ;;
480 *)
481 ;;
482 esac
483
484 #rm old legacy patch, ex old nfi nand driver
485 case $1 in
486 mt7986*|\
487 mt7981*|\
488 mt7988*)
489 rm -rf ${BUILD_DIR}/target/linux/mediatek/patches-5.4/0303-mtd-spinand-disable-on-die-ECC.patch
490 ;;
491 *)
492 ;;
493 esac
494
495 cd ${BUILD_DIR}
496 [ -f autobuild/$1/.config ] || {
497 echo "unable to locate autobuild/$1/.config !"
498 return
499 }
500
501 rm -rf ./tmp
502 #copy main test config(.config)
503 copy_main_Config $1
504
505 change_config_before_defconfig
506
507 echo make defconfig
508 make defconfig
509
510 change_config_after_defconfig
511}
512
513build() {
514 echo "###############################################################################"
515 echo "# $1"
516 echo "###############################################################################"
517 echo "build $1"
518
519 cd ${BUILD_DIR}
520
521 #make
522
523 if [ ${SKIP_PKG_HASH_CHECK} -eq 1 ]; then
524 echo "make V=1 -j $(($(nproc) + 1)) download world PKG_HASH=skip PKG_MIRROR_HASH=skip"
525 make V=1 -j $(($(nproc) + 1)) download world PKG_HASH=skip PKG_MIRROR_HASH=skip || \
526 make V=s -j $(($(nproc) + 1)) PKG_HASH=skip PKG_MIRROR_HASH=skip || exit 1
527 else
528 echo "make V=1 -j $(($(nproc) + 1)) download world"
529 make V=1 -j $(($(nproc) + 1)) download world || make V=s -j $(($(nproc) + 1)) || exit 1
530 fi
531
532 #tar unstripped rootfs for debug symbols
533 install_release $1
534}
535
536build_log() {
537 echo "###############################################################################"
538 echo "# $1"
539 echo "###############################################################################"
540 echo "build $1"
541
542 cd ${BUILD_DIR}
543
544 echo ln -s ../dl dl
545 ln -s ../dl dl
546
547 #make
548
549 if [ ${SKIP_PKG_HASH_CHECK} -eq 1 ]; then
550 echo "make V=1 -j $(($(nproc) + 1)) download world PKG_HASH=skip PKG_MIRROR_HASH=skip"
551 make V=1 -j $(($(nproc) + 1)) download world PKG_HASH=skip PKG_MIRROR_HASH=skip || \
552 make V=s -j1 PKG_HASH=skip PKG_MIRROR_HASH=skip || exit 1
553 else
554 echo "make V=1 -j $(($(nproc) + 1)) download world"
555 make V=1 -j $(($(nproc) + 1)) download world || make V=s -j1 || exit 1
556 fi
557
558 #tar unstripped rootfs for debug symbols
559 install_release $1
560}