#!/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;
|