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