xref: /openwifi/user_space/prepare_kernel.sh (revision abdb610f56e6ff7bc54e8ad29637bde718951d91)
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
66
67source $XILINX_DIR/SDK/2018.3/settings64.sh
68export ARCH=$ARCH_NAME
69export CROSS_COMPILE=$CROSS_COMPILE_NAME
70
71make oldconfig && make prepare && make modules_prepare
72
73if [ "$#" -gt 2 ]; then
74    # if [ -f "$OPENWIFI_DIR/$LINUX_KERNEL_SRC_DIR_NAME/arch/$ARCH_NAME/boot/$IMAGE_TYPE" ]; then
75    #     echo "Kernel found! Skip the time costly Linux kernel compiling."
76    # else
77        make -j12 $IMAGE_TYPE UIMAGE_LOADADDR=0x8000
78        make modules
79    # fi
80fi
81
82cd $home_dir
83