--- /dev/null
+#!/bin/bash
+MOD_DIR="usr/tmp_mod"
+MOD_IMG="usr/modules.img"
+MOD_SIZE=32
+NCPUS=`grep ^processor /proc/cpuinfo | wc -l`
+NCPUS=$(($NCPUS * 2))
+
+# Check this system has ccache
+check_ccache()
+{
+ type ccache
+ if [ "$?" -eq "0" ]; then
+ CCACHE=ccache
+ fi
+}
+
+function mk_modules() {
+ [ -e /usr/bin/make_ext4fs ] && USE_MAKE_EXT4FS=1
+ if [ "$USE_MAKE_EXT4FS" != "1" ]; then
+ sudo ls > /dev/null
+ fi
+
+ make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" modules_prepare
+ make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" modules -j ${NCPUS}
+
+ if [ "$?" != "0" ]; then
+ echo "Failed to make modules"
+ exit 1
+ fi
+
+ [ -d ${MOD_DIR} ] || mkdir ${MOD_DIR}
+
+ make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" modules_install INSTALL_MOD_PATH=${MOD_DIR} INSTALL_MOD_STRIP=1
+
+ if [ "$USE_MAKE_EXT4FS" == "1" ]; then
+ /usr/bin/make_ext4fs -b 4096 -L modules -l ${MOD_SIZE}M $MOD_IMG ${MOD_DIR}/lib/modules/
+ else
+ dd if=/dev/zero of=${MOD_IMG} bs=1M count=${MOD_SIZE}
+ mkfs.ext4 -F -b 4096 -L modules ${MOD_IMG}
+ [ -d ${MOD_DIR}/mnt ] || mkdir ${MOD_DIR}/mnt
+ sudo mount -o loop ${MOD_IMG} ${MOD_DIR}/mnt
+ sudo cp -rf ${MOD_DIR}/lib/modules/* ${MOD_DIR}/mnt
+ sync
+ sudo umount ${MOD_DIR}/mnt
+ fi
+ rm -rf ${MOD_DIR}
+ ls -al ${MOD_IMG}
+}
+
+check_ccache
+
+echo "riscv64"
+rm -f arch/riscv/boot/Image
+rm -f arch/riscv/boot/dts/starfive/*.dtb
+rm -f output/Image
+rm -f output/*.dtb
+rm -f output/modules.img
+rm -f output/*.tar
+
+CROSS_COMPILER=riscv64-linux-gnu-
+ARCH=riscv
+if ! [ -e .config ] ; then
+ make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" tizen_vf2_defconfig
+fi
+make ARCH=${ARCH} CROSS_COMPILE="$CROSS_COMPILER" -j8
+if [ ! -f "./arch/riscv/boot/Image" ]; then
+ echo "Build fail"
+ exit 1
+fi
+
+# Make module.img file
+mk_modules
+
+if [ ! -d output ] ; then
+ mkdir ./output
+fi
+
+cp usr/modules.img ./output
+
+cp ./arch/riscv/boot/Image ./output
+cp ./arch/riscv/boot/dts/starfive/*.dtb ./output
+tar cvf linux-visionfive2.tar -C output Image jh7110-visionfive-v2.dtb modules.img
+mv linux-visionfive2.tar ./output/