139 lines
4.5 KiB
Plaintext
139 lines
4.5 KiB
Plaintext
|
|
#!/bin/bash -e
|
||
|
|
|
||
|
|
function check_help {
|
||
|
|
case "$1" in
|
||
|
|
"--help" | "-h")
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "*** HELP ***************************************************"
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "*** Run the script without parameter to build and ***"
|
||
|
|
echo "*** install the driver. The build script will creates a ***"
|
||
|
|
echo "*** build directory (./tmp_build). ***"
|
||
|
|
echo "*** To specify a build directory just pass a directory ***"
|
||
|
|
echo "*** path. ***"
|
||
|
|
echo "*** ***"
|
||
|
|
echo "*** e.g.: ***"
|
||
|
|
echo "*** mkdir ./my_build_path ***"
|
||
|
|
echo "*** ./build_install_driver ./my_build_path ***"
|
||
|
|
echo "************************************************************"
|
||
|
|
exit 0
|
||
|
|
;;
|
||
|
|
*)
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
builddir="./tmp_build/"
|
||
|
|
if (( "$#" >= "1" )); then
|
||
|
|
check_help $1
|
||
|
|
if [ -d "${1}" ]; then
|
||
|
|
builddir=$(realpath "${1}")
|
||
|
|
else
|
||
|
|
echo "Error - Given parameter \"$1\" is not a folder or does not exist!"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
mkdir -p "${builddir}"
|
||
|
|
fi
|
||
|
|
|
||
|
|
# check if directories contain white spaces...
|
||
|
|
invalid_path=$(pwd | { grep " " || true; } )
|
||
|
|
if [ "${invalid_path}" != "" ]; then
|
||
|
|
echo "Error - path contains spaces (\"${PWD}\")! Please use path without."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
invalid_path=$(echo ${builddir} | { grep " " || true; } )
|
||
|
|
if [ "${invalid_path}" != "" ]; then
|
||
|
|
echo "Error - path contains spaces (\"${builddir}\")! Please use path without."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
if [ -d "${builddir}/libcifx" ] || [ -d "${builddir}/uio_netx" ]; then
|
||
|
|
echo "********************************************************************************"
|
||
|
|
echo "NOTE: The build folder (\"${builddir}\") is not empty! Force overwrting (yes=y)?"
|
||
|
|
echo " Or pass a new build folder (./build_install_driver [my_build_folder]."
|
||
|
|
echo "********************************************************************************"
|
||
|
|
read delete_files
|
||
|
|
if [ "${delete_files}" = "y" ]; then
|
||
|
|
echo "...deleting build folder!"
|
||
|
|
rm -rf "${builddir}/libcifx"
|
||
|
|
rm -rf "${builddir}/uio_netx"
|
||
|
|
else
|
||
|
|
echo "...canceled build process!"
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
fi
|
||
|
|
|
||
|
|
driver_src=$(dirname $(realpath $0))
|
||
|
|
scripts_dir="${driver_src}/scripts"
|
||
|
|
|
||
|
|
cur_path=$PWD
|
||
|
|
kernelversion=""
|
||
|
|
ret=0
|
||
|
|
|
||
|
|
install_step="uio_netx"
|
||
|
|
while [ "$install_step" != "stop" ]
|
||
|
|
do
|
||
|
|
case $install_step in
|
||
|
|
error)
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "**** An error occured during the installation ***"
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "Please check the error message in the previous steps."
|
||
|
|
echo "When the problem is fixed restart the installation."
|
||
|
|
install_step="stop"
|
||
|
|
ret=1
|
||
|
|
;;
|
||
|
|
uio_netx)
|
||
|
|
install_step="firmware"
|
||
|
|
mkdir -p "${builddir}/uio_netx"
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "**** Start building kernel module uio_netx ***"
|
||
|
|
echo "************************************************************"
|
||
|
|
if ! "${scripts_dir}/"install_uio_netx build "${builddir}/uio_netx"; then # build module
|
||
|
|
echo "Error building kernel module!"
|
||
|
|
install_step="error"
|
||
|
|
fi
|
||
|
|
if ! "${scripts_dir}/"install_uio_netx install "${builddir}/uio_netx"; then # install module
|
||
|
|
echo "Error installing kernel module!"
|
||
|
|
install_step="error"
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
firmware)
|
||
|
|
install_step="libcifx"
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "**** Installing kernel module and firmware ***"
|
||
|
|
echo "************************************************************"
|
||
|
|
install_step="libcifx"
|
||
|
|
if ! "${scripts_dir}/"install_firmware install ; then # install firmware
|
||
|
|
echo "Error installing firmware!"
|
||
|
|
install_step="error"
|
||
|
|
fi
|
||
|
|
if ! "${scripts_dir}/"install_uio_netx update ; then # load driver
|
||
|
|
echo "Error updating module dependencies!"
|
||
|
|
install_step="error"
|
||
|
|
fi
|
||
|
|
if ! "${scripts_dir}/"install_uio_netx unload ; then
|
||
|
|
echo "Error unloading driver!"
|
||
|
|
install_step="error"
|
||
|
|
fi
|
||
|
|
if ! "${scripts_dir}/"install_uio_netx load; then
|
||
|
|
echo "Error loading driver!"
|
||
|
|
install_step="error"
|
||
|
|
fi
|
||
|
|
;;
|
||
|
|
libcifx)
|
||
|
|
echo "************************************************************"
|
||
|
|
echo "**** Building and installing user space library libcifx ***"
|
||
|
|
echo "************************************************************"
|
||
|
|
mkdir -p "${builddir}/libcifx"
|
||
|
|
"${scripts_dir}/"install_libcifx "${builddir}/libcifx"
|
||
|
|
install_step="stop"
|
||
|
|
;;
|
||
|
|
esac
|
||
|
|
done
|
||
|
|
cd ..
|
||
|
|
|
||
|
|
exit $ret
|