1#!/bin/bash -e
2
3DEFAULT_ROOTFS_DIR=buildroot/output/$RK_BUILDROOT_CFG/target
4
5# Usage: build_wifibt <rootfs dir> [wifi chip] [bt tty dev]
6build_wifibt()
7{
8	check_config RK_KERNEL_CFG RK_WIFIBT_CHIP || return 0
9
10	ROOTFS_DIR="${1:-$DEFAULT_ROOTFS_DIR}"
11	WIFI_CHIP="${2:-$RK_WIFIBT_CHIP}"
12	BT_TTY_DEV="${3:-$RK_WIFIBT_TTY}"
13
14	echo "=========================================="
15	echo "          Start building wifi/BT ($WIFI_CHIP - $BT_TTY_DEV)"
16	echo "=========================================="
17
18	if ls "$ROOTFS_DIR/lib/" | grep -wq ld-linux-armhf.so; then
19		ROOTFS_ARCH=arm
20	else
21		ROOTFS_ARCH=arm64
22	fi
23
24	RKWIFIBT=$SDK_DIR/external/rkwifibt
25
26	OWNER=$(stat --format %U "$RKWIFIBT")
27	if [ "$OWNER" != "root" ]; then
28		if [ "${USER:-$(id -un)}" = "root" ]; then
29			# Fixing up rkwifibt permissions
30			find "$RKWIFIBT" -user root \
31				-exec chown -h -R $OWNER:$OWNER {} \;
32
33			# Sudo to source code owner (for Debian)
34			export KMAKE="sudo -u $OWNER $KMAKE"
35		else
36			# Check for dirty files owned by root
37			echo -e "\e[36m"
38			if find "$RKWIFIBT" -user 0 | grep ""; then
39				echo -e "\e[31m"
40				echo "$RKWIFIBT is dirty for non-root building!"
41				echo "Please clear it:"
42				echo "cd $RKWIFIBT"
43				echo "git add -f ."
44				echo "sudo git reset --hard"
45				echo -e "\e[0m"
46				exit 1
47			fi
48			echo -e "\e[0m"
49		fi
50	fi
51
52	# Make sure that the kernel is ready
53	if [ ! -r kernel/include/generated/asm-offsets.h ]; then
54		echo "Kernel is not ready, building it for wifi/BT..."
55		"$SCRIPTS_DIR/mk-kernel.sh"
56	fi
57
58	# Check kernel config
59	WIFI_USB=`grep "CONFIG_USB=y" kernel/.config` || true
60	WIFI_SDIO=`grep "CONFIG_MMC=y" kernel/.config` || true
61	WIFI_PCIE=`grep "CONFIG_PCIE_DW_ROCKCHIP=y" kernel/.config` || true
62	WIFI_RFKILL=`grep "CONFIG_RFKILL=y" kernel/.config` || true
63	if [ -z "WIFI_SDIO" ]; then
64		echo "=== WARNNING CONFIG_MMC not set !!! ==="
65	fi
66	if [ -z "WIFI_RFKILL" ]; then
67		echo "=== WARNNING CONFIG_USB not set !!! ==="
68	fi
69	if [[ "$WIFI_CHIP" =~ "U" ]];then
70		if [ -z "$WIFI_USB" ]; then
71			echo "=== WARNNING CONFIG_USB not set so ABORT!!! ==="
72			exit 0
73		fi
74	fi
75	echo "kernel config: $WIFI_USB $WIFI_SDIO $WIFI_RFKILL"
76
77	if [[ "$WIFI_CHIP" =~ "ALL_AP" ]];then
78		echo "building bcmdhd sdio"
79		$KMAKE M=$RKWIFIBT/drivers/bcmdhd CONFIG_BCMDHD=m \
80			CONFIG_BCMDHD_SDIO=y CONFIG_BCMDHD_PCIE=
81		if [ -n "$WIFI_PCIE" ]; then
82			echo "building bcmdhd pcie"
83			$KMAKE M=$RKWIFIBT/drivers/bcmdhd CONFIG_BCMDHD=m \
84				CONFIG_BCMDHD_PCIE=y CONFIG_BCMDHD_SDIO=
85		fi
86		if [ -n "$WIFI_USB" ]; then
87			echo "building rtl8188fu usb"
88			$KMAKE M=$RKWIFIBT/drivers/rtl8188fu modules
89		fi
90		echo "building rtl8189fs sdio"
91		$KMAKE M=$RKWIFIBT/drivers/rtl8189fs modules
92		echo "building rtl8723ds sdio"
93		$KMAKE M=$RKWIFIBT/drivers/rtl8723ds modules
94		echo "building rtl8821cs sdio"
95		$KMAKE M=$RKWIFIBT/drivers/rtl8821cs modules
96		echo "building rtl8822cs sdio"
97		$KMAKE M=$RKWIFIBT/drivers/rtl8822cs modules
98		echo "building rtl8852bs sdio"
99		$KMAKE M=$RKWIFIBT/drivers/rtl8852bs modules \
100			DRV_PATH=$RKWIFIBT/drivers/rtl8852bs
101		if [ -n "$WIFI_PCIE" ]; then
102			echo "building rtl8852be pcie"
103			$KMAKE M=$RKWIFIBT/drivers/rtl8852be modules \
104				DRV_PATH=$RKWIFIBT/drivers/rtl8852be
105		fi
106	fi
107
108	if [[ "$WIFI_CHIP" =~ "ALL_CY" ]];then
109		echo "building CYW4354"
110		ln -sf chips/CYW4354_Makefile \
111			$RKWIFIBT/drivers/infineon/Makefile
112		$KMAKE M=$RKWIFIBT/drivers/infineon
113		echo "building CYW4373"
114		ln -sf chips/CYW4373_Makefile \
115			$RKWIFIBT/drivers/infineon/Makefile
116		$KMAKE M=$RKWIFIBT/drivers/infineon
117		echo "building CYW43438"
118		ln -sf chips/CYW43438_Makefile \
119			$RKWIFIBT/drivers/infineon/Makefile
120		$KMAKE M=$RKWIFIBT/drivers/infineon
121		echo "building CYW43455"
122		ln -sf chips/CYW43455_Makefile \
123			$RKWIFIBT/drivers/infineon/Makefile
124		$KMAKE M=$RKWIFIBT/drivers/infineon
125		echo "building CYW5557X"
126		ln -sf chips/CYW5557X_Makefile \
127			$RKWIFIBT/drivers/infineon/Makefile
128		$KMAKE M=$RKWIFIBT/drivers/infineon
129		if [ -n "$WIFI_PCIE" ]; then
130			echo "building CYW5557X_PCIE"
131			ln -sf chips/CYW5557X_PCIE_Makefile \
132				$RKWIFIBT/drivers/infineon/Makefile
133			$KMAKE M=$RKWIFIBT/drivers/infineon
134			echo "building CYW54591_PCIE"
135			ln -sf chips/CYW54591_PCIE_Makefile \
136				$RKWIFIBT/drivers/infineon/Makefile
137			$KMAKE M=$RKWIFIBT/drivers/infineon
138		fi
139		echo "building CYW54591"
140		ln -sf chips/CYW54591_Makefile \
141			$RKWIFIBT/drivers/infineon/Makefile
142		$KMAKE M=$RKWIFIBT/drivers/infineon
143
144		if [ -n "$WIFI_USB" ]; then
145			echo "building rtl8188fu usb"
146			$KMAKE M=$RKWIFIBT/drivers/rtl8188fu modules
147		fi
148		echo "building rtl8189fs sdio"
149		$KMAKE M=$RKWIFIBT/drivers/rtl8189fs modules
150		echo "building rtl8723ds sdio"
151		$KMAKE M=$RKWIFIBT/drivers/rtl8723ds modules
152		echo "building rtl8821cs sdio"
153		$KMAKE M=$RKWIFIBT/drivers/rtl8821cs modules
154		echo "building rtl8822cs sdio"
155		$KMAKE M=$RKWIFIBT/drivers/rtl8822cs modules
156		echo "building rtl8852bs sdio"
157		$KMAKE M=$RKWIFIBT/drivers/rtl8852bs modules \
158			DRV_PATH=$RKWIFIBT/drivers/rtl8852bs
159		if [ -n "$WIFI_PCIE" ]; then
160			echo "building rtl8852be pcie"
161			$KMAKE M=$RKWIFIBT/drivers/rtl8852be modules \
162				DRV_PATH=$RKWIFIBT/drivers/rtl8852be
163		fi
164	fi
165
166	if [[ "$WIFI_CHIP" =~ "AP6" ]];then
167		if [[ "$WIFI_CHIP" = "AP6275_PCIE" ]];then
168			echo "building bcmdhd pcie driver"
169			$KMAKE M=$RKWIFIBT/drivers/bcmdhd CONFIG_BCMDHD=m \
170				CONFIG_BCMDHD_PCIE=y CONFIG_BCMDHD_SDIO=
171		else
172			echo "building bcmdhd sdio driver"
173			$KMAKE M=$RKWIFIBT/drivers/bcmdhd CONFIG_BCMDHD=m \
174				CONFIG_BCMDHD_SDIO=y CONFIG_BCMDHD_PCIE=
175		fi
176	fi
177
178	if [[ "$WIFI_CHIP" = "CYW4354" ]];then
179		echo "building CYW4354"
180		ln -sf chips/CYW4354_Makefile \
181			$RKWIFIBT/drivers/infineon/Makefile
182		$KMAKE M=$RKWIFIBT/drivers/infineon
183	fi
184
185	if [[ "$WIFI_CHIP" = "CYW4373" ]];then
186		echo "building CYW4373"
187		ln -sf chips/CYW4373_Makefile \
188			$RKWIFIBT/drivers/infineon/Makefile
189		$KMAKE M=$RKWIFIBT/drivers/infineon
190	fi
191
192	if [[ "$WIFI_CHIP" = "CYW43438" ]];then
193		echo "building CYW43438"
194		ln -sf chips/CYW43438_Makefile \
195			$RKWIFIBT/drivers/infineon/Makefile
196		$KMAKE M=$RKWIFIBT/drivers/infineon
197	fi
198
199	if [[ "$WIFI_CHIP" = "CYW43455" ]];then
200		echo "building CYW43455"
201		ln -sf chips/CYW43455_Makefile \
202			$RKWIFIBT/drivers/infineon/Makefile
203		$KMAKE M=$RKWIFIBT/drivers/infineon
204	fi
205
206	if [[ "$WIFI_CHIP" = "CYW5557X" ]];then
207		echo "building CYW5557X"
208		ln -sf chips/CYW5557X_Makefile \
209			$RKWIFIBT/drivers/infineon/Makefile
210		$KMAKE M=$RKWIFIBT/drivers/infineon
211	fi
212
213	if [[ "$WIFI_CHIP" = "CYW5557X_PCIE" ]];then
214		echo "building CYW5557X_PCIE"
215		ln -sf chips/CYW5557X_PCIE_Makefile \
216			$RKWIFIBT/drivers/infineon/Makefile
217		$KMAKE M=$RKWIFIBT/drivers/infineon
218	fi
219
220	if [[ "$WIFI_CHIP" = "CYW54591" ]];then
221		echo "building CYW54591"
222		ln -sf chips/CYW54591_Makefile \
223			$RKWIFIBT/drivers/infineon/Makefile
224		$KMAKE M=$RKWIFIBT/drivers/infineon
225	fi
226
227	if [[ "$WIFI_CHIP" = "CYW54591_PCIE" ]];then
228		echo "building CYW54591_PCIE"
229		ln -sf chips/CYW54591_PCIE_Makefile \
230			$RKWIFIBT/drivers/infineon/Makefile
231		$KMAKE M=$RKWIFIBT/drivers/infineon
232	fi
233
234	if [[ "$WIFI_CHIP" = "RTL8188FU" ]];then
235		echo "building rtl8188fu driver"
236		$KMAKE M=$RKWIFIBT/drivers/rtl8188fu modules
237	fi
238
239	if [[ "$WIFI_CHIP" = "RTL8189FS" ]];then
240		echo "building rtl8189fs driver"
241		$KMAKE M=$RKWIFIBT/drivers/rtl8189fs modules
242	fi
243
244	if [[ "$WIFI_CHIP" = "RTL8723DS" ]];then
245		$KMAKE M=$RKWIFIBT/drivers/rtl8723ds modules
246	fi
247
248	if [[ "$WIFI_CHIP" = "RTL8821CS" ]];then
249		$KMAKE M=$RKWIFIBT/drivers/rtl8821cs modules
250	fi
251
252	if [[ "$WIFI_CHIP" = "RTL8822CS" ]];then
253		$KMAKE M=$RKWIFIBT/drivers/rtl8822cs modules
254	fi
255
256	if [[ "$WIFI_CHIP" = "RTL8852BS" ]];then
257		$KMAKE M=$RKWIFIBT/drivers/rtl8852bs modules
258	fi
259
260	if [[ "$WIFI_CHIP" = "RTL8852BE" ]];then
261		$KMAKE M=$RKWIFIBT/drivers/rtl8852be modules
262	fi
263
264	echo "building realtek bt drivers"
265	$KMAKE M=$RKWIFIBT/drivers/bluetooth_uart_driver
266	if [ -n "$WIFI_USB" ]; then
267		$KMAKE M=$RKWIFIBT/drivers/bluetooth_usb_driver
268	fi
269
270	mkdir -p $ROOTFS_DIR/etc/init.d
271	mkdir -p $ROOTFS_DIR/usr/bin/
272	mkdir -p $ROOTFS_DIR/usr/lib/modules/
273	mkdir -p $ROOTFS_DIR/lib/firmware/rtlbt/
274	mkdir -p $ROOTFS_DIR/system/lib/modules/
275	mkdir -p $ROOTFS_DIR/system/etc/firmware/
276
277	echo "create link system->vendor"
278	rm -rf $ROOTFS_DIR/vendor
279	ln -sf system $ROOTFS_DIR/vendor
280
281	echo "copy prebuilt tools/sh to rootfs"
282	cp $RKWIFIBT/bin/$ROOTFS_ARCH/* $ROOTFS_DIR/usr/bin/
283	cp $RKWIFIBT/sh/wifi_start.sh $ROOTFS_DIR/usr/bin/
284	cp $RKWIFIBT/sh/wifi_ap6xxx_rftest.sh $ROOTFS_DIR/usr/bin/
285	cp $RKWIFIBT/conf/wpa_supplicant.conf $ROOTFS_DIR/etc/
286	cp $RKWIFIBT/conf/dnsmasq.conf $ROOTFS_DIR/etc/
287
288	if [[ "$WIFI_CHIP" = "ALL_CY" ]];then
289		echo "copy infineon/realtek firmware/nvram to rootfs"
290		cp $RKWIFIBT/drivers/infineon/*.ko \
291			$ROOTFS_DIR/system/lib/modules/ || true
292		cp $RKWIFIBT/firmware/infineon/*/* \
293			$ROOTFS_DIR/system/etc/firmware/ || true
294
295		cp $RKWIFIBT/sh/bt_load_broadcom_firmware $ROOTFS_DIR/usr/bin/
296		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
297			$ROOTFS_DIR/usr/bin/bt_init.sh
298		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
299			$ROOTFS_DIR/usr/bin/bt_pcba_test
300
301		#reatek
302		cp $RKWIFIBT/firmware/realtek/*/* $ROOTFS_DIR/lib/firmware/
303		cp $RKWIFIBT/firmware/realtek/*/* \
304			$ROOTFS_DIR/lib/firmware/rtlbt/
305		cp $RKWIFIBT/drivers/bluetooth_uart_driver/hci_uart.ko \
306			$ROOTFS_DIR/usr/lib/modules/
307		if [ -n "$WIFI_USB" ]; then
308			cp $RKWIFIBT/drivers/bluetooth_usb_driver/rtk_btusb.ko \
309				$ROOTFS_DIR/usr/lib/modules/
310		fi
311
312		rm -rf $ROOTFS_DIR/etc/init.d/S36load_wifi_modules
313		cp $RKWIFIBT/S36load_all_wifi_modules $ROOTFS_DIR/etc/init.d/
314		sed -i "s/BT_TTY_DEV/\/dev\/${BT_TTY_DEV}/g" \
315			$ROOTFS_DIR/etc/init.d/S36load_all_wifi_modules
316	fi
317
318	if [[ "$WIFI_CHIP" = "ALL_AP" ]];then
319		echo "copy ap6xxx firmware/nvram to rootfs"
320		cp $RKWIFIBT/drivers/bcmdhd/*.ko $ROOTFS_DIR/system/lib/modules/
321		cp $RKWIFIBT/firmware/broadcom/*/wifi/* \
322			$ROOTFS_DIR/system/etc/firmware/ || true
323		cp $RKWIFIBT/firmware/broadcom/*/bt/* \
324			$ROOTFS_DIR/system/etc/firmware/ || true
325
326		cp $RKWIFIBT/sh/bt_load_broadcom_firmware $ROOTFS_DIR/usr/bin/
327		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
328			$ROOTFS_DIR/usr/bin/bt_init.sh
329		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
330			$ROOTFS_DIR/usr/bin/bt_pcba_test
331
332		#reatek
333		echo "copy realtek firmware/nvram to rootfs"
334		cp $RKWIFIBT/drivers/rtl*/*.ko $ROOTFS_DIR/system/lib/modules/
335		cp -rf $RKWIFIBT/firmware/realtek/*/* $ROOTFS_DIR/lib/firmware/
336		cp -rf $RKWIFIBT/firmware/realtek/*/* \
337			$ROOTFS_DIR/lib/firmware/rtlbt/
338		cp $RKWIFIBT/drivers/bluetooth_uart_driver/hci_uart.ko \
339			$ROOTFS_DIR/usr/lib/modules/
340		if [ -n "$WIFI_USB" ]; then
341			cp $RKWIFIBT/drivers/bluetooth_usb_driver/rtk_btusb.ko \
342				$ROOTFS_DIR/usr/lib/modules/
343		fi
344
345		echo "copy S36load_wifi_modules to rootfs"
346		rm -rf $ROOTFS_DIR/etc/init.d/S36load_wifi_modules
347		cp $RKWIFIBT/S36load_all_wifi_modules $ROOTFS_DIR/etc/init.d/
348		sed -i "s/BT_TTY_DEV/\/dev\/${BT_TTY_DEV}/g" \
349			$ROOTFS_DIR/etc/init.d/S36load_all_wifi_modules
350	fi
351
352	if [[ "$WIFI_CHIP" =~ "RTL" ]];then
353		echo "Copy RTL file to rootfs"
354		if [ -d "$RKWIFIBT/firmware/realtek/$WIFI_CHIP" ]; then
355			cp $RKWIFIBT/firmware/realtek/$WIFI_CHIP/* \
356				$ROOTFS_DIR/lib/firmware/rtlbt/
357			cp $RKWIFIBT/firmware/realtek/$WIFI_CHIP/* \
358				$ROOTFS_DIR/lib/firmware/
359		else
360			echo "INFO: $WIFI_CHIP isn't bluetooth?"
361		fi
362
363		WIFI_KO_DIR=$(echo $WIFI_CHIP | tr '[A-Z]' '[a-z]')
364
365		cp $RKWIFIBT/drivers/$WIFI_KO_DIR/*.ko \
366			$ROOTFS_DIR/system/lib/modules/
367
368		cp $RKWIFIBT/sh/bt_load_rtk_firmware $ROOTFS_DIR/usr/bin/
369		sed -i "s/BT_TTY_DEV/\/dev\/${BT_TTY_DEV}/g" \
370			$ROOTFS_DIR/usr/bin/bt_load_rtk_firmware
371		if [ -n "$WIFI_USB" ]; then
372			cp $RKWIFIBT/drivers/bluetooth_usb_driver/rtk_btusb.ko \
373				$ROOTFS_DIR/usr/lib/modules/
374			sed -i "s/BT_DRV/rtk_btusb/g" \
375				$ROOTFS_DIR/usr/bin/bt_load_rtk_firmware
376		else
377			cp $RKWIFIBT/drivers/bluetooth_uart_driver/hci_uart.ko \
378				$ROOTFS_DIR/usr/lib/modules/
379			sed -i "s/BT_DRV/hci_uart/g" \
380				$ROOTFS_DIR/usr/bin/bt_load_rtk_firmware
381		fi
382		cp $ROOTFS_DIR/usr/bin/bt_load_rtk_firmware \
383			$ROOTFS_DIR/usr/bin/bt_init.sh
384		cp $ROOTFS_DIR/usr/bin/bt_load_rtk_firmware \
385			$ROOTFS_DIR/usr/bin/bt_pcba_test
386		rm -rf $ROOTFS_DIR/etc/init.d/S36load_all_wifi_modules
387		cp $RKWIFIBT/S36load_wifi_modules $ROOTFS_DIR/etc/init.d/
388		sed -i "s/WIFI_KO/\/system\/lib\/modules\/$WIFI_CHIP.ko/g" \
389			$ROOTFS_DIR/etc/init.d/S36load_wifi_modules
390	fi
391
392	if [[ "$WIFI_CHIP" =~ "CYW" ]];then
393		echo "Copy CYW file to rootfs"
394		#firmware
395		cp $RKWIFIBT/firmware/infineon/$WIFI_CHIP/* \
396			$ROOTFS_DIR/system/etc/firmware/
397		cp $RKWIFIBT/drivers/infineon/*.ko \
398			$ROOTFS_DIR/system/lib/modules/
399		#bt
400		cp $RKWIFIBT/sh/bt_load_broadcom_firmware $ROOTFS_DIR/usr/bin/
401		sed -i "s/BT_TTY_DEV/\/dev\/${BT_TTY_DEV}/g" \
402			$ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware
403		sed -i "s/BTFIRMWARE_PATH/\/system\/etc\/firmware\//g" \
404			$ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware
405		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
406			$ROOTFS_DIR/usr/bin/bt_init.sh
407		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
408			$ROOTFS_DIR/usr/bin/bt_pcba_test
409		#wifi
410		rm -rf $ROOTFS_DIR/etc/init.d/S36load_all_wifi_modules
411		cp $RKWIFIBT/S36load_wifi_modules $ROOTFS_DIR/etc/init.d/
412		sed -i "s/WIFI_KO/\/system\/lib\/modules\/$WIFI_CHIP.ko/g" \
413			$ROOTFS_DIR/etc/init.d/S36load_wifi_modules
414	fi
415
416	if [[ "$WIFI_CHIP" =~ "AP6" ]];then
417		echo "Copy AP file to rootfs"
418		#firmware
419		cp $RKWIFIBT/firmware/broadcom/$WIFI_CHIP/wifi/* \
420			$ROOTFS_DIR/system/etc/firmware/
421		cp $RKWIFIBT/firmware/broadcom/$WIFI_CHIP/bt/* \
422			$ROOTFS_DIR/system/etc/firmware/
423		cp $RKWIFIBT/drivers/bcmdhd/*.ko $ROOTFS_DIR/system/lib/modules/
424		#bt
425		cp $RKWIFIBT/sh/bt_load_broadcom_firmware $ROOTFS_DIR/usr/bin/
426		sed -i "s/BT_TTY_DEV/\/dev\/${BT_TTY_DEV}/g" \
427			$ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware
428		sed -i "s/BTFIRMWARE_PATH/\/system\/etc\/firmware\//g" \
429			$ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware
430		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
431			$ROOTFS_DIR/usr/bin/bt_init.sh
432		cp $ROOTFS_DIR/usr/bin/bt_load_broadcom_firmware \
433			$ROOTFS_DIR/usr/bin/bt_pcba_test
434		#wifi
435		rm -rf $ROOTFS_DIR/etc/init.d/S36load_all_wifi_modules
436		cp $RKWIFIBT/S36load_wifi_modules $ROOTFS_DIR/etc/init.d/
437		if [[ "$WIFI_CHIP" =~ "AP" ]];then
438			sed -i "s/WIFI_KO/\/system\/lib\/modules\/bcmdhd.ko/g" \
439				$ROOTFS_DIR/etc/init.d/S36load_wifi_modules
440		else
441			sed -i "s/WIFI_KO/\/system\/lib\/modules\/bcmdhd_pcie.ko/g" \
442				$ROOTFS_DIR/etc/init.d/S36load_wifi_modules
443		fi
444	fi
445
446	finish_build build_wifibt $@
447}
448
449# Hooks
450
451usage_hook()
452{
453	echo -e "wifibt[:<dst dir>[:<chip>[:<tty>]]] \tbuild Wifi/BT"
454}
455
456BUILD_CMDS="wifibt"
457build_hook()
458{
459	shift
460	build_wifibt "$([ -d "$1" ] || echo $DEFAULT_ROOTFS_DIR)" $@
461}
462
463source "${BUILD_HELPER:-$(dirname "$(realpath "$0")")/../build-hooks/build-helper}"
464
465build_wifibt $@
466