From 98d6403d29f1e5ca0f3888b3cbd355f01408b061 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Sat, 18 Dec 2021 14:37:53 +0800 Subject: [PATCH] update build.sh support driver build --- bsp/drivers/users/Makefile | 2 bsp/kernel/build.sh | 1 bsp/drivers/build.sh | 134 ++++++++++++++++++++++++++++++++++++++++++++ bsp/build.sh | 1 4 files changed, 137 insertions(+), 1 deletions(-) diff --git a/bsp/build.sh b/bsp/build.sh index 8682796..a9f2521 100755 --- a/bsp/build.sh +++ b/bsp/build.sh @@ -126,6 +126,7 @@ fi do_action bootloader $action do_action kernel $action + do_action drivers $action elif [ $1 == "image" ] ; then do_root "yes" do_action rootfs $action diff --git a/bsp/drivers/build.sh b/bsp/drivers/build.sh new file mode 100755 index 0000000..fed4ee2 --- /dev/null +++ b/bsp/drivers/build.sh @@ -0,0 +1,134 @@ +#!/bin/bash + +PRJ_PATH=`pwd` + +BOARD=igkboard + +CROSS_TOOL=/opt/buildroot/cortexA7/bin/arm-linux- + +# wifi driver tarball path +TAR_PATH=${PRJ_PATH}/../tarball + +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 := ../../rootfs/driver/|g" Makefile + + make -j ${JOBS} + + 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 + + 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; + diff --git a/bsp/drivers/users/Makefile b/bsp/drivers/users/Makefile index 46bdd9d..d245b04 100644 --- a/bsp/drivers/users/Makefile +++ b/bsp/drivers/users/Makefile @@ -11,7 +11,7 @@ # #********************************************************************************/ -CROSS_COMPILE=/opt/buildroot/cortexA7/bin/arm-linux- +CROSS_COMPILE ?= /opt/buildroot/cortexA7/bin/arm-linux- LINUX_SRC = ${shell pwd}/../../kernel/linux-imx/ DRV_INSTPATH = ${shell pwd}/../../rootfs/driver/ diff --git a/bsp/kernel/build.sh b/bsp/kernel/build.sh index aece0e5..ae6c5f1 100755 --- a/bsp/kernel/build.sh +++ b/bsp/kernel/build.sh @@ -98,6 +98,7 @@ set +x if [ $INST_DRIVER != 0 ] ;then + rm -rf ${PRJ_PATH}/../rootfs/driver make modules_install INSTALL_MOD_PATH=${PRJ_PATH}/../rootfs/driver INSTALL_MOD_STRIP=1 fi -- Gitblit v1.9.1