1 2#!/bin/bash 3 4# Author: Xianjun Jiao 5# SPDX-FileCopyrightText: 2019 UGent 6# SPDX-License-Identifier: AGPL-3.0-or-later 7 8if [ "$#" -lt 2 ]; then 9 echo "You must enter at least 2 arguments: \$XILINX_DIR ARCH_BIT(32 or 64)" 10 exit 1 11fi 12 13OPENWIFI_DIR=$(pwd)/../ 14XILINX_DIR=$1 15ARCH_OPTION=$2 16 17if [ -f "$OPENWIFI_DIR/LICENSE" ]; then 18 echo "\$OPENWIFI_DIR is found!" 19else 20 echo "\$OPENWIFI_DIR is not correct. Please check!" 21 exit 1 22fi 23 24if [ -d "$XILINX_DIR/SDK" ]; then 25 echo "\$XILINX_DIR is found!" 26else 27 echo "\$XILINX_DIR is not correct. Please check!" 28 exit 1 29fi 30 31if [ "$ARCH_OPTION" != "32" ] && [ "$ARCH_OPTION" != "64" ]; then 32 echo "\$ARCH_OPTION is not correct. Should be 32 or 64. Please check!" 33 exit 1 34else 35 echo "\$ARCH_OPTION is valid!" 36fi 37 38if [ "$ARCH_OPTION" == "64" ]; then 39 LINUX_KERNEL_SRC_DIR_NAME=adi-linux-64 40 LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config_zynqmp 41 ARCH_NAME="arm64" 42 CROSS_COMPILE_NAME="aarch64-linux-gnu-" 43 IMAGE_TYPE=Image 44else 45 LINUX_KERNEL_SRC_DIR_NAME=adi-linux 46 LINUX_KERNEL_CONFIG_FILE=$OPENWIFI_DIR/kernel_boot/kernel_config 47 ARCH_NAME="arm" 48 CROSS_COMPILE_NAME="arm-linux-gnueabihf-" 49 IMAGE_TYPE=uImage 50fi 51 52home_dir=$(pwd) 53 54set -x 55 56cd $OPENWIFI_DIR/ 57git submodule init $LINUX_KERNEL_SRC_DIR_NAME 58git submodule update $LINUX_KERNEL_SRC_DIR_NAME 59cd $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME 60git checkout 2019_R1 61git pull origin 2019_R1 62git reset --hard 63# git reset --hard 4e81f0927cfb2fada92fc762dbd65d002848405a 64cp $LINUX_KERNEL_CONFIG_FILE ./.config 65cp $OPENWIFI_DIR/driver/ad9361/ad9361.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361.c -rf 66cp $OPENWIFI_DIR/driver/ad9361/ad9361_conv.c $OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/drivers/iio/adc/ad9361_conv.c -rf 67 68source $XILINX_DIR/SDK/2018.3/settings64.sh 69export ARCH=$ARCH_NAME 70export CROSS_COMPILE=$CROSS_COMPILE_NAME 71 72make oldconfig && make prepare && make modules_prepare 73 74if [ "$#" -gt 2 ]; then 75 # if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then 76 # echo "Kernel found! Skip the time costly Linux kernel compiling." 77 # else 78 make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000 79 make modules 80 # fi 81fi 82 83cd $home_dir 84