| #!/bin/bash |
| |
| exec_name=$0 |
| cpu_num=$(grep -c processor /proc/cpuinfo) |
| |
| set -o errtrace |
| trap 'echo Fatal error: script ${exec_name} aborting at line $LINENO, command \"$BASH_COMMAND\" returned $?; exit 1' ERR |
| |
| DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| |
| function usage(){ |
| echo "Usage: ${exec_name} <kernel_ver> <board> [workspace path]" |
| echo "supported boards: lumia-proto lumia-p0 lumia-x2-p0 swift-p1 swift-p2" |
| } |
| |
| if (( $# < 2 )) |
| then |
| usage |
| exit 2 |
| fi |
| |
| kernel_version=$1 |
| board=$2 |
| readonly workspace_path=$3 |
| |
| if [ "$board" == "lumia-proto" ]; then |
| board="longan-p0" |
| elif [ "$board" == "lumia-x2-p0" ]; then |
| board="lumia-p0" |
| fi |
| |
| readonly product=`echo ${board} | cut -d "-" -f1` |
| |
| case $product in |
| longan | lumia | swift) |
| echo "product: $product" |
| ;; |
| *) |
| echo "unknown product: $product" |
| exit 1 |
| esac |
| |
| wifi_drv_path=${DIR}/wlan_src |
| |
| if [ "$kernel_version"x == "6.6"x ]; then |
| KERNELDIR=${DIR}/../kernel-6.6 |
| kernel_out_dir=kernel_6.6 |
| else |
| KERNELDIR=${DIR}/../kernel |
| kernel_out_dir=kernel |
| fi |
| CROSS_COMPILE=${DIR}/../prebuilt/toolchain/aarch64/bin/aarch64-cros-linux-gnu- |
| make_options="KERNELDIR=${KERNELDIR} CROSS_COMPILE=${CROSS_COMPILE} CC=${CROSS_COMPILE}gcc LD=${CROSS_COMPILE}ld" |
| |
| pushd ${DIR} |
| cd ${wifi_drv_path} |
| make clean |
| make ${make_options} -j${cpu_num} |
| |
| popd |
| |
| if [ ! -z $workspace_path ]; then |
| product_prebuilt_path=${workspace_path}/vendor/amlogic/${product}/prebuilt |
| |
| wifi_drv_out_dir=${product_prebuilt_path}/${kernel_out_dir}/modules |
| fct_wifi_drv_out_dir=${product_prebuilt_path}/factory/${kernel_out_dir}/modules |
| mkdir -p ${wifi_drv_out_dir} |
| rm -rf ${wifi_drv_out_dir}/mlan.${board}.ko |
| rm -rf ${wifi_drv_out_dir}/moal.${board}.ko |
| mkdir -p ${fct_wifi_drv_out_dir} |
| rm -rf ${fct_wifi_drv_out_dir}/mlan.${board}.ko |
| rm -rf ${fct_wifi_drv_out_dir}/moal.${board}.ko |
| |
| cp -v ${wifi_drv_path}/mlan.ko ${wifi_drv_out_dir}/mlan.${board}.ko |
| cp -v ${wifi_drv_path}/moal.ko ${wifi_drv_out_dir}/moal.${board}.ko |
| cp -v ${wifi_drv_path}/mlan.ko ${fct_wifi_drv_out_dir}/mlan.${board}.ko |
| cp -v ${wifi_drv_path}/moal.ko ${fct_wifi_drv_out_dir}/moal.${board}.ko |
| fi |