xref: /openwifi/user_space/transfer_kernel_image_module_to_board.sh (revision a47b55e6cafa759d041cd8d309e454edc8a51770)
16a4d7ceaSXianjun Jiao
26a4d7ceaSXianjun Jiao#!/bin/bash
36a4d7ceaSXianjun Jiao
46a4d7ceaSXianjun Jiao# Author: Xianjun Jiao
56a4d7ceaSXianjun Jiao# SPDX-FileCopyrightText: 2019 UGent
66a4d7ceaSXianjun Jiao# SPDX-License-Identifier: AGPL-3.0-or-later
76a4d7ceaSXianjun Jiao
86a4d7ceaSXianjun Jiao# Setup Eth connection before this script!
96a4d7ceaSXianjun Jiao# Host: 192.168.10.1
106a4d7ceaSXianjun Jiao# Board: 192.168.10.122
116a4d7ceaSXianjun Jiao# Commands onboard to setup:
126a4d7ceaSXianjun Jiao# ifconfig eth0 192.168.10.122 netmask 255.255.255.0
136a4d7ceaSXianjun Jiao# ifconfig eth0 up
146a4d7ceaSXianjun Jiao# route add default gw 192.168.10.1
156a4d7ceaSXianjun Jiao
166a4d7ceaSXianjun Jiaoif [ "$#" -ne 2 ]; then
176a4d7ceaSXianjun Jiao    echo "You have input $# arguments."
186a4d7ceaSXianjun Jiao    echo "You must enter \$DIR_TO_ADI_LINUX_KERNEL and \$BOARD_NAME as argument"
196a4d7ceaSXianjun Jiao    exit 1
206a4d7ceaSXianjun Jiaofi
216a4d7ceaSXianjun Jiao
226a4d7ceaSXianjun JiaoDIR_TO_ADI_LINUX_KERNEL=$1
236a4d7ceaSXianjun JiaoBOARD_NAME=$2
246a4d7ceaSXianjun Jiao
25*a47b55e6SJiao Xianjunif [ "$BOARD_NAME" != "antsdr" ] && [ "$BOARD_NAME" != "antsdr_e200" ] && [ "$BOARD_NAME" != "e310v2" ] && [ "$BOARD_NAME" != "sdrpi" ] && [ "$BOARD_NAME" != "neptunesdr" ] && [ "$BOARD_NAME" != "zc706_fmcs2" ] && [ "$BOARD_NAME" != "zc702_fmcs2" ] && [ "$BOARD_NAME" != "zed_fmcs2" ] && [ "$BOARD_NAME" != "adrv9361z7035" ] && [ "$BOARD_NAME" != "adrv9364z7020" ] && [ "$BOARD_NAME" != "zcu102_fmcs2" ]; then
266a4d7ceaSXianjun Jiao    echo "\$BOARD_NAME is not correct. Please check!"
276a4d7ceaSXianjun Jiao    exit 1
286a4d7ceaSXianjun Jiaoelse
296a4d7ceaSXianjun Jiao    echo "\$BOARD_NAME is found!"
306a4d7ceaSXianjun Jiaofi
316a4d7ceaSXianjun Jiao
326a4d7ceaSXianjun Jiaoif [ "$BOARD_NAME" == "zcu102_fmcs2" ] || [ "$BOARD_NAME" == "zcu102_9371" ]; then
336a4d7ceaSXianjun Jiao    LINUX_KERNEL_IMAGE=$DIR_TO_ADI_LINUX_KERNEL/arch/arm64/boot/Image
34ce4469b3SXianjun Jiao    DTB_FILENAME="system.dtb"
356a4d7ceaSXianjun Jiaoelse
366a4d7ceaSXianjun Jiao    LINUX_KERNEL_IMAGE=$DIR_TO_ADI_LINUX_KERNEL/arch/arm/boot/uImage
37ce4469b3SXianjun Jiao    DTB_FILENAME="devicetree.dtb"
386a4d7ceaSXianjun Jiaofi
396a4d7ceaSXianjun Jiao
406a4d7ceaSXianjun Jiaomkdir -p kernel_modules
416a4d7ceaSXianjun Jiaorm -rf ./kernel_modules/*
426a4d7ceaSXianjun Jiaofind $DIR_TO_ADI_LINUX_KERNEL/ -name \*.ko -exec cp {} ./kernel_modules/ \;
436a4d7ceaSXianjun Jiao
44b72abc17SXianjun Jiaocp $DIR_TO_ADI_LINUX_KERNEL/Module.symvers ./kernel_modules/
45b72abc17SXianjun Jiaocp $DIR_TO_ADI_LINUX_KERNEL/modules.builtin ./kernel_modules/
46b72abc17SXianjun Jiaocp $DIR_TO_ADI_LINUX_KERNEL/modules.builtin.modinfo ./kernel_modules/
47b72abc17SXianjun Jiaocp $DIR_TO_ADI_LINUX_KERNEL/modules.order ./kernel_modules/
48b72abc17SXianjun Jiao
496a4d7ceaSXianjun Jiaoif test -f "$LINUX_KERNEL_IMAGE"; then
506a4d7ceaSXianjun Jiao    cp $LINUX_KERNEL_IMAGE ./kernel_modules/
516a4d7ceaSXianjun Jiaofi
526a4d7ceaSXianjun Jiao
536a4d7ceaSXianjun Jiaoif test -f "../kernel_boot/boards/$BOARD_NAME/output_boot_bin/BOOT.BIN"; then
546a4d7ceaSXianjun Jiao    cp ../kernel_boot/boards/$BOARD_NAME/output_boot_bin/BOOT.BIN ./kernel_modules/
556a4d7ceaSXianjun Jiaofi
56ce4469b3SXianjun Jiaoif test -f "../kernel_boot/boards/$BOARD_NAME/$DTB_FILENAME"; then
57ce4469b3SXianjun Jiao    cp ../kernel_boot/boards/$BOARD_NAME/$DTB_FILENAME ./kernel_modules/
58ce4469b3SXianjun Jiaofi
596a4d7ceaSXianjun Jiaotar -zcvf kernel_modules.tar.gz kernel_modules
606a4d7ceaSXianjun Jiao
616a4d7ceaSXianjun Jiaoscp kernel_modules.tar.gz root@192.168.10.122:
626a4d7ceaSXianjun Jiao
636a4d7ceaSXianjun Jiao# scp $LINUX_KERNEL_IMAGE [email protected]:
646a4d7ceaSXianjun Jiao
656a4d7ceaSXianjun Jiaoscp populate_kernel_image_module_reboot.sh root@192.168.10.122:
66