#!/bin/bash PRJ_PATH=`pwd` # update by top build.sh BOARD=igkboard BSP_BRANCH=lf-5.10.52-2.1.0 CROSS_TOOL=/opt/buildroot/cortexA7/bin/arm-linux- TAR_PATH=${PRJ_PATH}/../tarball DRV_PATH=../rootfs/driver WIFI_SRC=rtl8188fu JOBS=`cat /proc/cpuinfo | grep processor | wc -l` set -u set -e STAGE=0 function msg_banner() { STAGE=`expr $STAGE + 1` echo "" echo "+---------------------------------------------+" printf " Stage $STAGE: $1\n" echo "+---------------------------------------------+" echo "" } function do_fetch() { msg_banner "Fetch ${WIFI_SRC} source code" if [ -d ${WIFI_SRC} ] ; then printf "\n\n -- ${WIFI_SRC} fetched already -- \n\n" return 0; fi printf "\n -- decompress ${WIFI_SRC}.tar.bz2 now ... -- \n\n" tar -xjf ${TAR_PATH}/${WIFI_SRC}.tar.bz2 } function build_wifi_driver() { if [ ! -d ${WIFI_SRC} ] ; then return ; fi msg_banner "Build for USB WiFi driver" cd ${WIFI_SRC} sed -i "s|^CROSS_COMPILE ?=.*|CROSS_COMPILE ?= ${CROSS_TOOL}|g" Makefile sed -i "s|^ARCH ?=.*|ARCH ?= arm|g" Makefile sed -i "s|^KVER.*|KVER := 5.10.52|g" Makefile sed -i "s|^KSRC.*|KSRC := ../../kernel/linux-imx/|g" Makefile sed -i "s|^MODDESTDIR.*|MODDESTDIR := ../${DRV_PATH}/|g" Makefile sed -i "s|^#define CONFIG_DEBUG|//#define CONFIG_DEBUG|g" include/autoconf.h sed -i "/nolinked power/d" core/rtw_pwrctrl.c sed -i "/request firmware/d" hal/rtl8188f/rtl8188f_hal_init.c make -j ${JOBS} mkdir -p ../${DRV_PATH}/lib/firmware/rtlwifi/ cp firmware/rtl8188fufw.bin ../${DRV_PATH}/lib/firmware/rtlwifi/ cd ${PRJ_PATH} } function build_users_driver() { if [ ! -d users ] ; then return ; fi msg_banner "Build for users driver" cd users sed -i "s|^CROSS_COMPILE ?=.*|CROSS_COMPILE ?= ${CROSS_TOOL}|g" Makefile make DRV_PATH=../${DRV_PATH} cd ${PRJ_PATH} } function do_build() { build_users_driver build_wifi_driver } function do_clean() { msg_banner "Clean drivers source code" rm -rf ${WIFI_SRC} cd users && make clean } function do_usage() { echo "" echo "Usage:" echo " $0 [-b] [p] [-c] [-h]" echo " -b: build $PRJ_NAME" echo " -c: clean the source code" echo " -h: show this help message" echo "" exit; } while getopts "bpch" OPTNAME do case "${OPTNAME}" in "b") break; ;; "c") do_clean exit; ;; "*") do_usage exit; ;; esac done # Default do build action do_fetch do_build exit;