2021-12-29 17:18:25 +00:00
|
|
|
#!/bin/sh
|
2021-12-29 16:56:27 +00:00
|
|
|
#
|
|
|
|
# Setup WANPIPE WAN Router Installation/Removal Script.
|
|
|
|
#
|
2021-12-29 17:15:08 +00:00
|
|
|
# Copyright (c) 1996-2008, Sangoma Technologies Inc.
|
2021-12-29 16:56:27 +00:00
|
|
|
#
|
|
|
|
# This program is free software; you can redistribute it and/or
|
|
|
|
# modify it under the terms of the GNU General Public License
|
|
|
|
# as published by the Free Software Foundation; either version
|
|
|
|
# 2 of the License, or (at your option) any later version.
|
|
|
|
# ----------------------------------------------------------------------------
|
2021-12-29 17:18:25 +00:00
|
|
|
# Mar 12, 2008 Konrad Hammel Updated for Zaptel-1.4.9 (kernel sub-dir)
|
|
|
|
# Jan 24, 2008 Jignesh Patel Zaptel Patch Update for 1.4.x
|
|
|
|
# Nov 13, 2007 Konrad Hammel Minor Updates for aesthetics and usability
|
2021-12-29 16:57:21 +00:00
|
|
|
# Nov 27, 2005 David Rokhvarg Added Echo Debugging option
|
2021-12-29 16:56:27 +00:00
|
|
|
# Mar 18, 2002 Nenad Corbic Added BSCSTRM protocol
|
|
|
|
# Mar 01, 2002 Nenad Corbic Added option to split rpm build into
|
|
|
|
# two packages: util and mod.
|
|
|
|
# Jan 05, 2002 Nenad Corbic Updated for 2.2.4 Release
|
|
|
|
# Mar 02, 2001 Nenad Corbic Added 2.4.2 kernel support
|
|
|
|
# Added a check for MODVERSIONS
|
|
|
|
# Feb 21, 2001 Nenad Corbic Fixed the kernel gcc compile bug.
|
|
|
|
# Feb 20, 2001 Nenad Corbic Fixed the kernel upgrade bug.
|
|
|
|
# Jan 31, 2001 Nenad Corbic Updated all help messages
|
|
|
|
# Added kernel upgrade feature
|
|
|
|
# Added WANPIPE driver compile feature
|
|
|
|
# Dec 25, 2000 Nenad Corbic Updated for v2.2.0
|
|
|
|
# Feb 29, 2000 Nenad Corbic Removed print statements in file verification
|
|
|
|
# procedure.
|
|
|
|
# Oct 04, 1999 Nenad Corbic Updated for v2.1.0
|
|
|
|
# Aug 26, 1999 Nenad Corbic Updated for v2.0.7
|
|
|
|
# Aug 04, 1999 Nenad Corbic Updated for v2.0.5
|
|
|
|
# Oct 13, 1998 Jaspreet Singh Updated for v2.0.4
|
|
|
|
# Aug 31, 1998 Jaspreet Singh Updated for v2.0.3
|
|
|
|
# Dev 09, 1997 Jaspreet Singh Updated for v2.0.2
|
|
|
|
# Nov 28, 1997 Jaspreet Singh Updated for v2.0.1
|
|
|
|
# Nov 06, 1997 Jaspreet Singh Updated for v2.0.0
|
|
|
|
# Oct 16, 1997 Jaspreet Singh Added UID = 0 check
|
|
|
|
# Aug 26, 1997 Farhan Thawar Added patches.txt info
|
|
|
|
# Jul 28, 1997 Jaspreet Singh Updated for v1.0.5
|
|
|
|
# Jul 10, 1997 Jaspreet Singh Updated for v1.0.4
|
|
|
|
# Jan 15, 1997 Gene Kozin Added patch selection and upgrade features
|
|
|
|
# Dec 16, 1996 Gene Kozin Initial version based on Sangoma's WANPIPE(tm)
|
|
|
|
# ============================================================================
|
|
|
|
|
|
|
|
####### FUNCTION DEFINITIONS #################################################
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Clear the screen if it is supported.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
clearscr()
|
|
|
|
{
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $setup_install_quick = "YES" ]; then
|
|
|
|
[ "$TERM" ] && clear 2> /dev/null
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
# check if the terminal environment is set up
|
|
|
|
[ "$TERM" ] && clear 2> /dev/null
|
|
|
|
}
|
|
|
|
|
|
|
|
check_bash ()
|
|
|
|
{
|
|
|
|
BASH_SUPPORT=`echo $BASH_VERSION | cut -d'.' -f1 2> /dev/null`
|
|
|
|
}
|
|
|
|
|
|
|
|
check_gcc ()
|
|
|
|
{
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ "$USR_CC" != "" ]; then
|
|
|
|
eval "$USR_CC --version 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Error: Failed to find version of $USR_CC"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
eval "$USR_CC --version | grep \"^2\" > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
GCC_VER=2;
|
|
|
|
else
|
|
|
|
GCC_VER=3;
|
|
|
|
fi
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
GCC_VER=3
|
|
|
|
|
|
|
|
eval "gcc --version 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
CC=gcc
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
cd $DRIVER_UPDATE_DIR/src/net
|
|
|
|
eval "gcc --version | grep \"^2\" > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
GCC_VER=2;
|
|
|
|
else
|
|
|
|
GCC_VER=3;
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
eval "cc --version 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
CC=cc
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
check_awk ()
|
|
|
|
{
|
|
|
|
eval "type awk 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
AWK_SUPPORT=YES
|
|
|
|
else
|
|
|
|
AWK_SUPPORT=NO
|
|
|
|
fi
|
|
|
|
}
|
2021-12-29 16:59:00 +00:00
|
|
|
#fix for 2.6.18 kernels
|
|
|
|
check_inode_struct ()
|
|
|
|
{
|
|
|
|
if [ -e $SOURCEDIR/include/linux/fs.h ];then
|
|
|
|
eval "grep i_private $SOURCEDIR/include/linux/fs.h >/dev/null 2>/dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANPIPE_USE_I_PRIVATE"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Display error message.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
error()
|
|
|
|
{
|
|
|
|
echo -e "Error: $*!" >&2
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Pause.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
pause()
|
|
|
|
{
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
local force_pause=$1
|
|
|
|
|
|
|
|
if [ -z $force_pause ]; then
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
shift
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
[ $# -ne 0 ] && echo -e $* >&2
|
|
|
|
echo -e "Press [Enter] to continue...\c" >&2
|
|
|
|
read tmp
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Prompt user for input.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
prompt()
|
|
|
|
{
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -ne "$*" >&2
|
|
|
|
read CMD rest
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Get Yes/No
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
getyn()
|
|
|
|
{
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
while prompt "$* (y/n) "
|
|
|
|
do case $CMD in
|
|
|
|
[yY]) return 0
|
|
|
|
;;
|
|
|
|
[nN]) return 1
|
|
|
|
;;
|
|
|
|
*) echo -e "\nPlease answer y or n" >&2
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Select an item from the list.
|
|
|
|
# Return: 0 - selection is in $SEL
|
|
|
|
# 1 - quit or empty list
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
get_select()
|
|
|
|
{
|
|
|
|
[ $# -eq 0 ] && return 1
|
|
|
|
|
|
|
|
while prompt "Please enter your selection (1..$# or q) ->"
|
|
|
|
do case ${CMD:="0"} in
|
|
|
|
[0-9]|[0-9][0-9])
|
|
|
|
[ $CMD -lt 1 -o $CMD -gt $# ] && continue
|
|
|
|
CMD=`expr $# - $CMD + 1 2>/dev/null`
|
|
|
|
until [ $# -eq $CMD ]
|
|
|
|
do shift
|
|
|
|
done
|
|
|
|
SEL=$1
|
|
|
|
return 0
|
|
|
|
;;
|
|
|
|
q|Q) return 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Select an item from the list.
|
|
|
|
# Return: 0 - selection is in $SEL
|
|
|
|
# 1 - quit or empty list
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
select_list()
|
|
|
|
{
|
|
|
|
[ $# -eq 0 ] && return 1
|
|
|
|
|
|
|
|
col=`expr $# / 10 + 1`
|
|
|
|
cnt=0
|
|
|
|
for option in $*
|
|
|
|
do cnt=`expr $cnt + 1`
|
|
|
|
echo -en "\t$cnt) $option"
|
|
|
|
[ `expr $cnt % $col` -eq 0 ] && echo ""
|
|
|
|
done
|
|
|
|
echo -e "\tq) quit\n"
|
|
|
|
get_select $*
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Parse product version.
|
|
|
|
# $1 product version X.Y.Z
|
|
|
|
#
|
|
|
|
# On exit, environment varibles are set as follows:
|
|
|
|
# MAJVER=X
|
|
|
|
# MINVER=Y
|
|
|
|
# SUBVER=Z
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
parse_version()
|
|
|
|
{
|
|
|
|
eval `echo $1 | awk '
|
|
|
|
BEGIN { FS = "." }
|
|
|
|
NR == 1 {
|
|
|
|
printf " MAJVER=%s", $1;
|
|
|
|
printf " MINVER=%s", $2;
|
|
|
|
printf " SUBVER=%s", $3
|
|
|
|
}
|
|
|
|
'`
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Display banner.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
banner()
|
|
|
|
{
|
|
|
|
clearscr
|
|
|
|
echo -e "\t----------------------------------------------------------"
|
2021-12-29 17:12:33 +00:00
|
|
|
echo -e "\t WANPIPE v$PROD_VER Installation Script"
|
2021-12-29 17:14:12 +00:00
|
|
|
echo -e "\t Copyright (c) 1995-2008, Sangoma Technologies Inc."
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -e "\t----------------------------------------------------------"
|
|
|
|
echo ""
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
welcome_zaptel()
|
2021-12-29 16:56:27 +00:00
|
|
|
{
|
2021-12-29 17:20:30 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
${DISTR_NAME} INSTALLATION FOR ZAPTEL
|
|
|
|
|
|
|
|
You are about to install ${DISTR_NAME} TDM Voice drivers
|
|
|
|
for Asterisk/Zaptel framework.
|
|
|
|
|
|
|
|
You will be prompted for path to ZAPTEL source.
|
|
|
|
|
|
|
|
From Zaptel 1.4 and greater:
|
|
|
|
wanpipe drivers compile into zaptel WITHOUT any
|
|
|
|
zaptel patching or need to recompile zaptel.
|
|
|
|
For Zaptel 1.2:
|
|
|
|
wanpipe drivers will offer to patch zaptel for DCHAN HDLC
|
|
|
|
optimization. Setup will offer you to recompile
|
|
|
|
zaptel after patching is complete.
|
|
|
|
|
|
|
|
You must have Linux Kernel Headers along with
|
|
|
|
full development tools (i.e. GNU C compiler and utilities)
|
|
|
|
installed in order to be able to install this product.
|
|
|
|
|
|
|
|
If you have previoulsy installed WANPIPE, this release
|
|
|
|
will overrite/upgrade full release without the need to
|
|
|
|
uninstall first!
|
|
|
|
|
|
|
|
IMPORTANT:
|
|
|
|
It is always recommended to say YES to all options
|
|
|
|
prompted during the install!
|
|
|
|
|
|
|
|
Please visit: http://wiki.sangoma.com for more info.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
welcome_default()
|
|
|
|
{
|
|
|
|
|
|
|
|
cat << ENDOFTEXT
|
2021-12-29 16:56:27 +00:00
|
|
|
${DISTR_NAME} INSTALLATION
|
2021-12-29 17:12:33 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
You are about to install ${DISTR_NAME} Multi-Protocol
|
|
|
|
TDM Voice & WAN Router into your system.
|
|
|
|
|
|
|
|
This script will examine your system, then install, create
|
2021-12-29 16:56:27 +00:00
|
|
|
and/or modify necessary files and directories.
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
You must have Linux Kernel Headers along with
|
2021-12-29 17:20:30 +00:00
|
|
|
full development tools (i.e. GNU C compiler and utilities)
|
2021-12-29 16:56:27 +00:00
|
|
|
installed in order to be able to install this product.
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
This script will automatically compile all WANPIPE kernel
|
|
|
|
drivers and install them in their appropriate directory.
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
If you are installing Wanpipe for ASTERISK/ZAPTEL this
|
|
|
|
script will will prompt you for zaptel source location.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
If you have previoulsy installed WANPIPE, this release
|
|
|
|
will overrite/upgrade full release without the need to
|
|
|
|
uninstall first!
|
|
|
|
|
|
|
|
IMPORTANT:
|
|
|
|
It is always recommended to say YES to all options
|
|
|
|
prompted during the install!
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
Please visit: http://wiki.sangoma.com for more info.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Show welcome screen.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
welcome()
|
|
|
|
{
|
|
|
|
banner
|
|
|
|
|
|
|
|
if [ $zaptel_auto_install = "YES" ]; then
|
|
|
|
|
|
|
|
welcome_zaptel
|
|
|
|
else
|
|
|
|
|
|
|
|
welcome_default
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
getyn "Would you like to install WANPIPE now? [y]"
|
2021-12-29 16:56:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Goodbye.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
goodbye()
|
|
|
|
{
|
|
|
|
banner
|
|
|
|
|
|
|
|
if test "$DRIVERS_COMPILED" = yes; then
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
WANPIPE (LITE) INSTALLATON: COMPLETE
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
WANPIPE installation is now complete. WANPIPE (LITE) kernel drivers
|
2021-12-29 16:56:27 +00:00
|
|
|
and configuration/debug utilities have been compiled and installed.
|
|
|
|
|
|
|
|
1) Proceed to configure the WANPIPE (LITE) drivers using the
|
|
|
|
/usr/sbin/wanhdlc configurator and ifconfig utility.
|
|
|
|
2) To uninstall WANPIPE (LITE) package run ./Setup remove
|
|
|
|
|
|
|
|
Please read WanpipeInstallation.(pdf/txt) manual for further instructions.
|
|
|
|
|
|
|
|
IMPORTANT:
|
|
|
|
---------
|
2021-12-29 16:59:00 +00:00
|
|
|
HOTPLUG may conflict with WANPIPE
|
|
|
|
Wanpipe interfaces names should be added to the
|
|
|
|
HOTPLUG igore list, located in /etc/hotplug/net.agent
|
|
|
|
or in /etc/hotplug.d/net.agent file.
|
|
|
|
Please read the ./docs/README.faq for more info.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
IMPORTANT:
|
|
|
|
---------
|
|
|
|
The Linux Kernel and Modules in $SOURCEDIR:
|
|
|
|
DO NOT have to be manually recompiled!
|
|
|
|
|
|
|
|
WANPIPE (LITE) kernel modules are already installed :)
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
return
|
|
|
|
else
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
WANPIPE INSTALLATON: COMPLETE
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
WANPIPE installation is now complete. WANPIPE kernel drivers
|
2021-12-29 16:56:27 +00:00
|
|
|
and configuration/debug utilities have been compiled and installed.
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
1) Proceed to configure the WANPIPE drivers:
|
|
|
|
Asterisk/Zaptel: /usr/sbin/wancfg_zaptel
|
|
|
|
TDM API : /usr/sbin/wancfg_tdmapi
|
|
|
|
SMG SS7 : /usr/sbin/wancfg_smg
|
|
|
|
WAN Routing/API: /usr/sbin/wancfg
|
2021-12-29 16:56:27 +00:00
|
|
|
2) Use the /usr/sbin/wanrouter startup scrip to start and stop
|
2021-12-29 17:12:33 +00:00
|
|
|
the router. (eg: wanrouter start)
|
|
|
|
3) To uninstall WANPIPE package run ./Setup remove
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
Please read http://wiki.sangoma.com for further instructions.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
2021-12-29 17:12:33 +00:00
|
|
|
WANPIPE (LITE) INSTALLATION: PARTIAL COMPLETE
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
WANPIPE (LITE) utilities and configurators:
|
|
|
|
Installed sucessfully.
|
|
|
|
|
|
|
|
WANPIPE (LITE) kernel modules:
|
|
|
|
FAILED to install or compilation failed.
|
|
|
|
|
|
|
|
Please re-run ./Setup install to recompile WANPIPE (LITE) modules.
|
|
|
|
In case of failure, please contact Sangoma Tech Support.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
else
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
2021-12-29 17:12:33 +00:00
|
|
|
WANPIPE INSTALLATION: PARTIAL COMPLETE
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
WANPIPE utilities and configurators:
|
|
|
|
Installed sucessfully.
|
|
|
|
|
|
|
|
WANPIPE kernel modules:
|
2021-12-29 17:12:33 +00:00
|
|
|
Drivers were not installed/compiled
|
2021-12-29 17:02:04 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
1) Proceed to configure the WANPIPE drivers:
|
|
|
|
Asterisk/Zaptel: /usr/sbin/wancfg_zaptel
|
|
|
|
TDM API : /usr/sbin/wancfg_tdmapi
|
|
|
|
SMG SS7 : /usr/sbin/wancfg_smg
|
|
|
|
WAN Routing/API: /usr/sbin/wancfg
|
|
|
|
2) Use the /usr/sbin/wanrouter startup scrip to start and stop
|
|
|
|
the router. (eg: wanrouter start)
|
|
|
|
3) The temporary wanpipe directory can now be deleted
|
|
|
|
4) To uninstall WANPIPE package run ./Setup remove
|
|
|
|
|
|
|
|
Please read http://wiki.sangoma.com for further instructions.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Prepare for installation.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
prepare()
|
|
|
|
{
|
2021-12-29 16:59:00 +00:00
|
|
|
banner
|
|
|
|
# Verify filelist.
|
|
|
|
[ -f "$FILELIST" ] || {
|
|
|
|
error "File list ($FILELIST) not found"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
# Verify files and fix permissions.
|
|
|
|
if [ $superuser = "YES" ]; then
|
|
|
|
echo "Fixing file permissions..."
|
|
|
|
fix_perms || {
|
|
|
|
error "Product is not completely installed. Please re-install"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
#Check if wanpipe modules are currently loaded
|
|
|
|
eval "lsmod | grep sdladrv > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "Warning: Wanpipe Modules are currently running!"
|
|
|
|
echo "Its recommended to unload Wanpipe Modules before proceeding"
|
|
|
|
echo "with installation."
|
|
|
|
echo
|
|
|
|
getyn "\nWould you like to proceed?" || return 1
|
|
|
|
fi
|
|
|
|
missing_packages=" "
|
|
|
|
echo -n "Checking for C developement tools ..."
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
check_gcc
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "($CC) OK"
|
|
|
|
else
|
|
|
|
echo -e "\n\tWarning: Wanpipe package requires C development tools to complete
|
|
|
|
the installation. Please install development package
|
|
|
|
before proceeding. GCC/KGCC/CC compiler not found"
|
|
|
|
return 1
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for C++ developement tools ..."
|
|
|
|
eval "g++ --version > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"g++ "
|
|
|
|
fi
|
|
|
|
echo -n "Checking for Make utility ..."
|
|
|
|
eval "make --version > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"make "
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for ncurses library ... "
|
|
|
|
if [ ! -f "/usr/include/ncurses.h" ] && [ ! -f "/usr/include/ncurses/ncurses.h" ]; then
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"ncurses "
|
|
|
|
else
|
|
|
|
echo "OK"
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for Perl developement tools ..."
|
|
|
|
eval "perl --version 2>/dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"perl "
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for AWK ..."
|
|
|
|
eval "type awk 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"awk "
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for FLEX ..."
|
|
|
|
eval "type flex 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"flex "
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for Patch ..."
|
|
|
|
eval "patch --version 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"patch "
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "Checking for libtermcap-devel..."
|
|
|
|
if [ -f "/usr/include/termcap.h" ]; then
|
|
|
|
echo "OK"
|
|
|
|
else
|
|
|
|
"Failed!"
|
|
|
|
missing_packages=$missing_packages"libtermcap-devel "
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
echo -n "Checking for bison..."
|
|
|
|
eval "type bison 2> /dev/null > /dev/null"
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "OK"
|
2021-12-29 17:20:30 +00:00
|
|
|
else
|
|
|
|
echo "Failed!"
|
|
|
|
missing_packages=$missing_packages"bison "
|
2021-12-29 16:59:00 +00:00
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo
|
|
|
|
if [ ! "$missing_packages" = " " ]; then
|
|
|
|
echo "WARNING: You are missing some prerequisites"
|
|
|
|
echo "Missing Packages $missing_packages" >> $CMP_LOG
|
|
|
|
for package in $missing_packages
|
|
|
|
do
|
|
|
|
case $package in
|
|
|
|
g++)
|
|
|
|
echo -e "\n C++ Compiler (g++)."
|
|
|
|
echo -e " Required for Wanpipe Utilities."
|
|
|
|
echo -e " Install gcc-c++ package (e.g yum install gcc-c++)."
|
|
|
|
;;
|
|
|
|
make)
|
|
|
|
echo -e "\n make utility."
|
|
|
|
echo -e " Required for compiling packages."
|
|
|
|
echo -e " Install make package (e.g yum install make)."
|
|
|
|
;;
|
|
|
|
|
|
|
|
bash)
|
|
|
|
echo -e "\n Bash v2 or greater."
|
|
|
|
echo -e " Required for wancfg and cfgft1 configuration utilities."
|
|
|
|
;;
|
|
|
|
ncurses)
|
|
|
|
echo -e "\n ncurses library."
|
|
|
|
echo -e " Required for wancfg and cfgft1 configuration utilities."
|
|
|
|
echo -e " Install ncurses development package (e.g yum install ncurses-devel)."
|
|
|
|
;;
|
|
|
|
perl)
|
|
|
|
echo -e "\n Perl development tools."
|
|
|
|
echo -e " Required for Wanpipe package."
|
|
|
|
echo -e " Install ncurses Perl package (e.g yum install perl)."
|
|
|
|
;;
|
|
|
|
awk)
|
|
|
|
echo -e "\n AWK."
|
|
|
|
echo -e " Required for wanrouter startup script."
|
|
|
|
echo -e " Install AWK package (e.g yum install gawk)."
|
|
|
|
;;
|
|
|
|
patch)
|
|
|
|
echo -e "\n Patch ."
|
|
|
|
echo -e " Required for Wanpipe Setup installation script."
|
|
|
|
echo -e " Install Patch package (e.g yum install patch)."
|
|
|
|
;;
|
|
|
|
libtermcap-devel)
|
|
|
|
echo -e "\n Libtermcap development tools ."
|
|
|
|
echo -e " Required for Wanpipe Utilities."
|
|
|
|
echo -e " Install libtermcap-devel package (e.g yum install libtermcap-devel)."
|
|
|
|
;;
|
|
|
|
flex)
|
|
|
|
echo -e "\n Flex package ."
|
|
|
|
echo -e " Required for Wancfg configuration utility."
|
|
|
|
echo -e " Install flex package (e.g yum install flex)."
|
|
|
|
;;
|
2021-12-29 17:20:30 +00:00
|
|
|
bison)
|
|
|
|
echo -e "\n Bison."
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -e " Required for Wanpipe Utilities."
|
2021-12-29 17:20:30 +00:00
|
|
|
echo -e " Install bison package (e.g yum install bison)."
|
2021-12-29 16:59:00 +00:00
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
echo
|
|
|
|
getyn "Press Y to continue, N to abort installation"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo "Stopping install per users request"
|
|
|
|
echo
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
pause
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
return 0
|
2021-12-29 16:56:27 +00:00
|
|
|
}
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Verify files and fix permissions.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
fix_perms()
|
|
|
|
{
|
|
|
|
echo -n -e "\nVerifying files and fixing permissions ..."
|
|
|
|
|
|
|
|
while read TYPE TARGET MODE OWNER GROUP rest
|
|
|
|
do
|
|
|
|
[ -z "$TARGET" ] && continue
|
|
|
|
[ -z "$MODE" -o -z "$OWNER" -o -z "$GROUP" ] && continue
|
|
|
|
|
|
|
|
#Remove wanpipe/ directory from the
|
|
|
|
#target path, since we are in wanpipe
|
|
|
|
#directory :)
|
|
|
|
|
|
|
|
TARGET=${TARGET#*/}
|
|
|
|
|
|
|
|
case $TYPE in
|
|
|
|
d)
|
|
|
|
[ -d $TARGET ] || {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
;;
|
|
|
|
f)
|
|
|
|
[ -f $TARGET ] || {
|
|
|
|
continue
|
|
|
|
}
|
|
|
|
;;
|
|
|
|
*) continue
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
echo "chmod $MODE $TARGET" > /dev/null
|
|
|
|
chmod $MODE $TARGET
|
|
|
|
echo "chown $OWNER $TARGET" > /dev/null
|
|
|
|
chown $OWNER $TARGET
|
|
|
|
chgrp $GROUP $TARGET
|
|
|
|
#echo "Ok."
|
|
|
|
done < $FILELIST
|
|
|
|
echo "Done";
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
apply_pre_211_fix ()
|
|
|
|
{
|
|
|
|
\cp -f $PROD_PATCH/$FIX_211 $SOURCEDIR
|
|
|
|
cd $SOURCEDIR
|
|
|
|
echo "Patching kernel lower than 2.2.11 !"
|
|
|
|
gzip -cd $FIX_211 | patch -p1 || {
|
|
|
|
getyn "\nWould you like to continue?" || return 1
|
|
|
|
search_rej
|
|
|
|
rm $SOURCEDIR/$FIX_211
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
rm $SOURCEDIR/$FIX_211
|
|
|
|
}
|
|
|
|
|
|
|
|
update_wanpipe_drivers ()
|
|
|
|
{
|
|
|
|
local res=;
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo -n "Upgrading ${DISTR_NAME} kernel documentation ..."
|
|
|
|
cd $PROD_HOME
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
|
|
|
if [ -d "$SOURCEDIR/Documentation" ]; then
|
|
|
|
eval "cp -f README $SOURCEDIR/Documentation/networking/wanpipe.txt"
|
|
|
|
eval "cp -f README $SOURCEDIR/Documentation/networking/wan-router.txt"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -e "Done.\n"
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo -n "Upgrading ${DISTR_NAME} kernel headers ..."
|
|
|
|
|
|
|
|
if [ ! -d $SOURCEDIR/include/linux ]; then
|
|
|
|
echo
|
|
|
|
echo "ERROR: Directory $SOURCEDIR/include/linux not found!"
|
|
|
|
echo " Corrupted linux headers in $SOURCEDIR dir."
|
|
|
|
echo
|
|
|
|
return 1
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
cd $DRIVER_UPDATE_DIR/include/
|
|
|
|
|
|
|
|
if [ ! -e $WANPIPE_INCLUDE_DIR ]; then
|
|
|
|
eval "\mkdir -p $WANPIPE_INCLUDE_DIR"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -e $WANPIPE_INCLUDE_DIR/linux ]; then
|
|
|
|
cd $WANPIPE_INCLUDE_DIR
|
|
|
|
ln -s . linux
|
|
|
|
cd $DRIVER_UPDATE_DIR/include/
|
|
|
|
fi
|
|
|
|
|
|
|
|
eval "\cp -f *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
|
|
|
|
|
|
|
|
cd $DRIVER_UPDATE_DIR/wanec
|
|
|
|
eval "\cp -rf oct6100_api/include/ $WANPIPE_INCLUDE_DIR/oct6100_api 2> /dev/null"
|
|
|
|
eval "\cp -rf *.h $WANPIPE_INCLUDE_DIR/ 2> /dev/null"
|
|
|
|
eval "\cp -rf wanec_iface.h $SOURCEDIR/include/linux 2> /dev/null"
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
cd $DRIVER_UPDATE_DIR/include/
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $superuser = "YES" ] && [ -e /usr/include/linux ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
eval "\cp -f *.h /usr/include/linux/ 2> /dev/null"
|
|
|
|
fi
|
|
|
|
|
|
|
|
eval "\cp -f *.h $SOURCEDIR/include/linux/ 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ -e $DRIVER_UPDATE_DIR/include/annexg ]; then
|
|
|
|
|
|
|
|
cd $DRIVER_UPDATE_DIR/include/annexg
|
|
|
|
|
|
|
|
if [ -e /usr/include/linux ]; then
|
|
|
|
eval "\cp -f *.h /usr/include/linux/ 2> /dev/null"
|
|
|
|
fi
|
|
|
|
|
|
|
|
eval "\cp -f *.h $SOURCEDIR/include/linux/ 2> /dev/null"
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $DRIVER_UPDATE_DIR/include/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echo -n "Upgrading ${DISTR_NAME} kernel drivers ..."
|
|
|
|
|
|
|
|
if [ -d $SOURCEDIR/$LINUXDRIVERS_WAN ]; then
|
|
|
|
cd $DRIVER_UPDATE_DIR/src/wanrouter
|
|
|
|
|
|
|
|
echo $PROD_VER > $SOURCEDIR/net/wanrouter/patchlevel
|
|
|
|
|
|
|
|
eval "cp -f *.c $SOURCEDIR/$LINUXDRIVERS_WAN 2> /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d $SOURCEDIR/$LINUXDRIVERS_NET ]; then
|
|
|
|
cd $DRIVER_UPDATE_DIR/src/net
|
|
|
|
|
|
|
|
eval "cp -f *.c $SOURCEDIR/$LINUXDRIVERS_NET 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo -e "Done.\n"
|
|
|
|
fi
|
|
|
|
|
|
|
|
#The latest release 2.2.3 and above contain two extra files
|
|
|
|
#sdla_te1.c sdla_56k.c. The kernel make files must be updated
|
|
|
|
#when we perform the module updates.
|
|
|
|
|
|
|
|
cd $SOURCEDIR
|
|
|
|
|
|
|
|
if [ $KPATCH -eq 2 ]; then
|
|
|
|
|
|
|
|
res=`grep sdla_56k.o drivers/net/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
echo "Updating $SOURCEDIR/drivers/net/Makefile"
|
|
|
|
\cp -f $PROD_HOME/patches/$MAKE_PATCH_22X .
|
|
|
|
patch -p1 < $MAKE_PATCH_22X > /dev/null 2> /dev/null
|
|
|
|
\rm -f $MAKE_PATCH_22X
|
|
|
|
fi
|
|
|
|
|
|
|
|
res=`grep wanpipe_utils.o drivers/net/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
echo "Updating $SOURCEDIR/drivers/net/Makefile"
|
|
|
|
\cp -f $PROD_HOME/patches/$MAKE_UTILS_PATCH_22X .
|
|
|
|
patch -p1 < $MAKE_UTILS_PATCH_22X > /dev/null 2> /dev/null
|
|
|
|
rm -f $MAKE_UTILS_PATCH_22X
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
elif [ $KPATCH -eq 4 ]; then
|
|
|
|
|
|
|
|
ORIGMAKE="drivers/net/wan/Makefile"
|
|
|
|
NEWMAKE="drivers/net/wan/Makefile.nex"
|
|
|
|
|
|
|
|
cp $ORIGMAKE $ORIGMAKE.orig
|
|
|
|
|
|
|
|
res=`grep sdla_56k.o drivers/net/wan/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
echo "Updating T1/E1 in $SOURCEDIR/drivers/net/wan/Makefile"
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("sdla_ft1.o", "sdla_ft1.o sdla_56k.o sdla_te1.o ") ; print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
fi
|
|
|
|
|
|
|
|
res=`grep wanpipe_utils.o drivers/net/wan/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
echo "Updating Utils in $SOURCEDIR/drivers/net/wan/Makefile"
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("sdla_ft1.o", "sdla_ft1.o wanpipe_utils.o ") ; print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
res=`grep wanpipe_abstr.o drivers/net/wan/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
echo "Updating Abstr in $SOURCEDIR/drivers/net/wan/Makefile"
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("sdla_ft1.o", "sdla_ft1.o wanpipe_abstr.o ") ; print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
res=`grep wanpipe_syncppp.o drivers/net/wan/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
echo "Updating Syncppp in $SOURCEDIR/drivers/net/wan/Makefile"
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("export-objs.*=\t", "export-objs =\twanpipe_syncppp.o ") ; print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
res=`grep wanpipe_multppp.o drivers/net/wan/Makefile`
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
|
|
|
|
echo "Updating MultPPP in $SOURCEDIR/drivers/net/wan/Makefile"
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("sdla_ppp.o", "sdla_ppp.o\nwanpipe-$(CONFIG_WANPIPE_MULTPPP) += wanpipe_multppp.o"); print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
res=`grep sdla_mp_fr.o drivers/net/wan/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
echo "Updating MultFR in $SOURCEDIR/drivers/net/wan/Makefile"
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("wanpipe_multppp.o", "wanpipe_multppp.o\nwanpipe-$(CONFIG_WANPIPE_MULTFR) += sdla_mp_fr.o"); print }' > $NEWMAKE
|
|
|
|
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
rm -f $NEWMAKE
|
|
|
|
|
|
|
|
|
|
|
|
ORIGMAKE=net/wanrouter/Makefile
|
|
|
|
NEWMAKE=net/wanrouter/Makefile.nex
|
|
|
|
|
|
|
|
cp $ORIGMAKE $ORIGMAKE.orig
|
|
|
|
|
|
|
|
res=`grep af_wanpipe net/wanrouter/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("obj-m.*:=", "obj-m := af_wanpipe.o"); print }' > $NEWMAKE
|
|
|
|
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
|
|
|
|
echo "Updating af_wanpipe in $SOURCEDIR/net/wanrouter/Makefile"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
res=`grep waniface.o net/wanrouter/Makefile`
|
|
|
|
if [ "$res" = "" ]; then
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("obj-y.*:=", "obj-y := waniface.o"); print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
|
|
|
|
cat $ORIGMAKE | awk '{ gsub("export-objs.*:=", "export-objs := waniface.o"); print }' > $NEWMAKE
|
|
|
|
mv $NEWMAKE $ORIGMAKE
|
|
|
|
|
|
|
|
echo "Updating Waniface in $SOURCEDIR/net/wanrouter/Makefile"
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
rm -f $NEWMAKE
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
get_kernel_ver ()
|
|
|
|
{
|
|
|
|
local tmp_ifs=$IFS
|
|
|
|
local err=0
|
|
|
|
IFS="="
|
|
|
|
|
|
|
|
while read name value;
|
|
|
|
do
|
|
|
|
|
|
|
|
if [ $AWK_SUPPORT = YES ]; then
|
|
|
|
name=`echo $name | awk '{ gsub(" ", "") ; print }'`
|
|
|
|
elif [ $BASH_SUPPORT -gt 1 ]; then
|
|
|
|
name=${name// /}
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $AWK_SUPPORT = YES ]; then
|
|
|
|
value=`echo $value | awk '{ gsub(" ", "") ; print }'`
|
|
|
|
elif [ $BASH_SUPPORT -gt 1 ]; then
|
|
|
|
value=${value// /}
|
|
|
|
fi
|
|
|
|
|
|
|
|
case $name in
|
|
|
|
|
|
|
|
VERSION)
|
|
|
|
KVER=$value
|
|
|
|
;;
|
|
|
|
PATCHLEVEL)
|
|
|
|
KPATCH=$value
|
|
|
|
;;
|
|
|
|
SUBLEVEL)
|
|
|
|
KLVL=$value
|
|
|
|
;;
|
|
|
|
EXTRAVERSION)
|
|
|
|
KEVER=$value
|
|
|
|
break
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
done < $1/Makefile
|
|
|
|
|
|
|
|
KERNEL_VERSION=$KVER"."$KPATCH"."$KLVL$KEVER
|
|
|
|
|
|
|
|
if [ $KVER -eq 2 ] && [ $KPATCH -eq 6 ]; then
|
|
|
|
KERN_VER=26;
|
|
|
|
LINUXDRIVERS_NET="drivers/net/wan"
|
|
|
|
KLVL=${KLVL:-6}
|
|
|
|
elif [ $KVER -eq 2 ] && [ $KPATCH -eq 4 ]; then
|
|
|
|
KERN_VER=24;
|
|
|
|
LINUXDRIVERS_NET="drivers/net/wan"
|
|
|
|
elif [ $KVER -eq 2 ] && [ $KPATCH -eq 2 ]; then
|
|
|
|
KERN_VER=22;
|
|
|
|
LINUXDRIVERS_NET="drivers/net"
|
|
|
|
if [ $ADSL_PROT = YES ];then
|
|
|
|
echo "Warning: ADSL driver is only supported on 2.4.X & 2.6.X kernels!"
|
|
|
|
ADSL_PROT=NO
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
#It is possible that we couldn't find the kernel version from the Makefile
|
|
|
|
#Possible on SUSE kernels.
|
|
|
|
#Use the uname -r info obtained at the begining of the
|
|
|
|
#Setup sctipt.
|
|
|
|
|
|
|
|
|
|
|
|
IFS=$tmp_ifs
|
|
|
|
return $err
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Apply kernel patches.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
apply_patches()
|
|
|
|
{
|
|
|
|
local before_14
|
|
|
|
local rc
|
|
|
|
|
|
|
|
banner
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
Installing ${DISTR_NAME} Device Drivers: Linux KERNEL
|
2021-12-29 17:02:04 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
To integrate ${DISTR_NAME} Multi-Protocol Voice & WAN Router
|
|
|
|
modules into the Linux kernel, the kernel has to be
|
|
|
|
updated with latest wanpipe sources. Install will only
|
|
|
|
modify existing wanpipe source that is already in the
|
|
|
|
Kernel.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
IMPORTANT:
|
2021-12-29 17:12:33 +00:00
|
|
|
It is always recommended to say YES to all options
|
|
|
|
prompted during the install!
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
getyn "Would you like build wanpipe kernel drivers? [y]" || return 0
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
banner
|
|
|
|
|
|
|
|
if [ $WITH_LINUX_OP = NO ]; then
|
|
|
|
echo -e "\nPlease specify absolute path name of your linux directory"
|
2021-12-29 17:12:33 +00:00
|
|
|
echo -e "\nPress Enter for Default: $SOURCEDIR\n"
|
|
|
|
echo -n "#>"
|
2021-12-29 16:56:27 +00:00
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
read response
|
|
|
|
|
|
|
|
[ $response ] && {
|
|
|
|
SOURCEDIR=$response
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -e "Setting linux directory to $SOURCEDIR\n";
|
|
|
|
INCLUDE=$SOURCEDIR/include/linux;
|
|
|
|
|
|
|
|
|
|
|
|
# Check kernel source directory
|
|
|
|
[ -d $SOURCEDIR ] || {
|
|
|
|
banner
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
WARNING: Kernel source directory $SOURCEDIR not found!
|
|
|
|
|
|
|
|
You may choose to continue installation and then apply patches after
|
|
|
|
you install kernel source. To apply patches after ${DISTR_NAME} installation
|
|
|
|
has been completed run './Setup drivers'.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
getyn "Would you like to continue?" || return 1
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
cd $PROD_HOME/patches
|
|
|
|
|
|
|
|
get_kernel_ver $SOURCEDIR
|
|
|
|
if [ $? -eq 1 ]; then
|
|
|
|
pause
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
eval "echo "$SOURCEDIR/include" > $PROD_HOME/.sysinclude"
|
|
|
|
|
|
|
|
#If the kernel has already been patched, offer an
|
|
|
|
#upgrade option.
|
|
|
|
check_kernel_patch_level $SOURCEDIR
|
|
|
|
#if [ $? -ne 0 ]; then
|
|
|
|
if [ 1 ]; then
|
|
|
|
echo
|
|
|
|
#echo "The kernel source in $SOURCEDIR has already been patched!"
|
|
|
|
#getyn "Would you like to upgrade ${DISTR_NAME} to the current version ?" || return 0
|
|
|
|
|
|
|
|
update_wanpipe_drivers
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "
|
|
|
|
ERROR: Failed to upgrade ${DISTR_NAME} device drivers!
|
|
|
|
|
|
|
|
Make sure that following directories exist:
|
|
|
|
'$SOURCEDIR/$LINUXDRIVERS_WAN'
|
|
|
|
'$SOURCEDIR/$LINUXDRIVERS_NET'
|
|
|
|
|
|
|
|
Make sure that current kernel image version
|
|
|
|
matches the kernel version in $SOURCEDIR !!!
|
|
|
|
"
|
|
|
|
echo
|
|
|
|
getyn "Would you like to proceed ?" || return 1
|
|
|
|
else
|
|
|
|
echo "${DISTR_NAME} device drivers upgraded successfully!"
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME/patches
|
|
|
|
|
|
|
|
#-------- Pathching 2.0.X Kernels------------------------
|
|
|
|
if [ $KPATCH -eq 0 ]
|
|
|
|
then
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WARINIG
|
|
|
|
-------
|
|
|
|
Kernel 2.0.X detected!
|
|
|
|
This version of wanpipe does not support the 2.0.X kernels.
|
|
|
|
Please upgrade to 2.2.X or 2.4.X kernels, or use the
|
|
|
|
older version of wanpipe.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
return 1;
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
#---------- Patching 2.2.X kernels -----------------------
|
|
|
|
if [ $KPATCH -eq 2 ]
|
|
|
|
then
|
|
|
|
#patch a 2.2 kernel
|
|
|
|
PATCH=$PROD-v2214.gz
|
|
|
|
echo -e "\n\t2.2.X Kernel Detected!\n"
|
|
|
|
|
|
|
|
[ -f $PATCH ] || { getyn "Patch file missing $PATCH, Continue?";
|
|
|
|
return; }
|
|
|
|
|
|
|
|
if [ $KLVL -lt 11 ]; then
|
|
|
|
apply_pre_211_fix || return 1;
|
|
|
|
PATCH=$PROD-v2213.gz
|
|
|
|
|
|
|
|
elif [ $KLVL -lt 14 ]; then
|
|
|
|
echo "Patching kernel 2.2.$KLVL."
|
|
|
|
PATCH=$PROD-v2213.gz
|
|
|
|
|
|
|
|
elif [ $KLVL -eq 14 ]; then
|
|
|
|
echo "Patching kernel 2.2.$KLVL."
|
|
|
|
PATCH=$PROD-v2214.gz
|
|
|
|
|
|
|
|
elif [ $KLVL -lt 18 ]; then
|
|
|
|
echo "Patching kernel 2.2.$KLVL."
|
|
|
|
PATCH=$PROD-v2215.gz
|
|
|
|
|
|
|
|
elif [ $KLVL -eq 18 ]; then
|
|
|
|
echo "Patching kernel 2.2.$KLVL"
|
|
|
|
PATCH=$PROD-v2218.gz
|
|
|
|
else
|
|
|
|
echo "Patching kernel 2.2.$KLVL"
|
|
|
|
PATCH=$PROD-v2219.gz
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
#----------- Patching 2.4.X Kernels --------------------------------
|
|
|
|
if [ $KPATCH -eq 4 ]
|
|
|
|
then
|
|
|
|
echo -e "\n\t2.4.X Kernel Detected!\n"
|
|
|
|
|
|
|
|
if [ $KLVL -lt 4 ]; then
|
|
|
|
PATCH=$PROD-v240.gz
|
|
|
|
echo -e "Patching a 2.4.$KLVL Kernel!\n"
|
|
|
|
|
|
|
|
elif [ $KLVL -lt 9 ]; then
|
|
|
|
echo "Patching a 2.4.$KLVL Kernel"
|
|
|
|
PATCH=$PROD-v244.gz
|
|
|
|
|
|
|
|
elif [ $KLVL -lt 16 ]; then
|
|
|
|
echo "Patching a 2.4.$KLVL Kernel"
|
|
|
|
PATCH=$PROD-v249.gz
|
|
|
|
else
|
|
|
|
echo "Patching a 2.4.$KLVL Kernel"
|
|
|
|
PATCH=$PROD-v2416.gz
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
[ -f $PATCH ] || { getyn "Patch file missing $PATCH, Continue?";
|
|
|
|
return; }
|
|
|
|
|
|
|
|
cp $PROD_PATCH/$PATCH $SOURCEDIR
|
|
|
|
cd $SOURCEDIR
|
|
|
|
gzip -cd $PATCH | patch -p1 || {
|
|
|
|
|
|
|
|
echo "ERROR: Patching failed!"
|
|
|
|
echo "The kernel source used is not supported!"
|
|
|
|
echo "Call Sangoma at 905-474-1990 or use an older kernel"
|
|
|
|
echo
|
|
|
|
echo "If the patch failed in the documentation section"
|
|
|
|
echo "the failure should be ignored! Thus, proceed with"
|
|
|
|
echo "installation."
|
|
|
|
echo
|
|
|
|
echo "Note, that this kernel patch is only relevant"
|
|
|
|
echo "if you are going to recompile the kernel with"
|
|
|
|
echo "wanpipe drivers!."
|
|
|
|
echo
|
|
|
|
echo "If you are using the ./Setup script to recompile"
|
|
|
|
echo "wanpipe modules, the patch failure can be ignored !"
|
|
|
|
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
|
|
|
|
rm $SOURCEDIR/$PATCH
|
|
|
|
getyn "\nWould you like to continue?" || return 1
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo "Repeat the build procedure to ignore the error!"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
rm $SOURCEDIR/$PATCH
|
|
|
|
|
|
|
|
update_wanpipe_drivers
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "
|
|
|
|
ERROR: Failed to patch ${DISTR_NAME} device drivers!
|
|
|
|
|
|
|
|
Make sure that following directories exist:
|
|
|
|
'$SOURCEDIR/$LINUXDRIVERS_WAN'
|
|
|
|
'$SOURCEDIR/$LINUXDRIVERS_NET'
|
|
|
|
|
|
|
|
Make sure that current running kernel image version
|
|
|
|
matches the kernel version in $SOURCEDIR !!!
|
|
|
|
"
|
|
|
|
echo
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
getyn "Would you like to proceed ?" || return 1
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo -e "\nWanpipe drivers patched successfully!\n"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Remove backup files and re-biuld kernel source dependencies.
|
|
|
|
cd $SOURCEDIR
|
|
|
|
echo "Cleaning up. Please wait..."
|
|
|
|
rm -f `find . -name *.orig` 2> /dev/null
|
|
|
|
|
|
|
|
pause
|
|
|
|
#search_rej
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Install configuration files.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
install_config()
|
|
|
|
{
|
|
|
|
banner
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
|
|
|
|
get_conf_dir
|
|
|
|
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
WANPIPE (LITE) CONFIGURATION
|
|
|
|
|
|
|
|
Please read the wanpipe_lite_manual.(pdf/txt) manual for further
|
|
|
|
information.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
WANPIPE META CONFIGURATION
|
|
|
|
|
|
|
|
There are two configuration files associated with WANPIPE.
|
|
|
|
|
|
|
|
1) $META_CONF:
|
|
|
|
- defines locations of important files such as lock
|
|
|
|
and configuration files as well as start/stop
|
|
|
|
order of multiple WANPIPE devices.
|
|
|
|
2) $PROD_CONF:
|
|
|
|
- main configuration file for each WANPIPE device.
|
|
|
|
- defines interfaces, hardware and protocol information.
|
|
|
|
- this file can be created using the 'wancfg' GUI
|
|
|
|
utility or manually based on sample files located
|
2021-12-29 17:18:25 +00:00
|
|
|
in /etc/wanpipe/samples.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
Please read the WanpipeInstallation.(pdf/txt) manual for further
|
|
|
|
information.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
|
|
|
|
# Create meta-configuration file.
|
|
|
|
create_mataconf
|
|
|
|
|
|
|
|
fi
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function get_conf_dir ()
|
|
|
|
{
|
|
|
|
local response
|
|
|
|
|
|
|
|
#banner
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
echo -e "\nPlease specify a desired location for ${DISTR_NAME} configuration files."
|
2021-12-29 17:18:25 +00:00
|
|
|
echo -e "\n\t(Press Enter for Default: /etc/wanpipe)\n"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -n "<specify path:>"
|
|
|
|
read response
|
|
|
|
|
|
|
|
if [ $response ]; then
|
|
|
|
WAN_CONF_DIR=$response
|
|
|
|
else
|
|
|
|
WAN_CONF_DIR=/etc/wanpipe
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
WAN_CONF_DIR=/etc/wanpipe
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -d $WAN_CONF_DIR ]; then
|
|
|
|
\mkdir -p $WAN_CONF_DIR
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Check kernel source directory
|
|
|
|
if [ ! -d $WAN_CONF_DIR ]; then
|
|
|
|
echo -e "\nERROR: Directory $WAN_CONF_DIR not found !\n"
|
|
|
|
getyn "Would you like to try again"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
WAN_CONF_DIR=/etc/wanpipe
|
|
|
|
else
|
|
|
|
get_conf_dir
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
function get_bin_dir ()
|
|
|
|
{
|
|
|
|
local response
|
|
|
|
|
|
|
|
#banner
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
echo -e "\nPlease specify a location for WANPIPE binary, firmware files."
|
2021-12-29 17:18:25 +00:00
|
|
|
echo -e "\n\t(Press Enter for Default: /etc/wanpipe/firmware)\n"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -n "<specify path:>"
|
|
|
|
read response
|
|
|
|
|
|
|
|
if [ $response ]; then
|
|
|
|
WAN_FIRMWARE_DIR=$response
|
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_FIRMWARE_DIR=/etc/wanpipe/firmware
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_FIRMWARE_DIR=/etc/wanpipe/firmware
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -d $WAN_FIRMWARE_DIR ]; then
|
|
|
|
\mkdir -p $WAN_FIRMWARE_DIR
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -d $WAN_FIRMWARE_DIR ]; then
|
|
|
|
echo -e "\nERROR: Directory $WAN_FIRMWARE_DIR not found !\n"
|
|
|
|
getyn "Would you like to try again?"
|
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_FIRMWARE_DIR=/etc/wanpipe/firmware
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
|
|
|
get_bin_dir
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function get_intr_dir ()
|
|
|
|
{
|
|
|
|
local response=no
|
|
|
|
local response1
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_INTR_DIR=/etc/wanpipe/interfaces
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ ! -d $WAN_INTR_DIR ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
\mkdir -p $WAN_INTR_DIR
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# if [ -d "/etc/sysconfig/network-scripts" ]; then
|
|
|
|
# echo -e "\nWould you like to use the NEW network interface types?"
|
|
|
|
# echo "(RedHat feature:"
|
|
|
|
# echo " * Interface files will be written into"
|
|
|
|
# echo " /etc/sysconfig/network-scripts directory."
|
|
|
|
# echo " * Interface file names will start with ifcfg-<ifname>"
|
|
|
|
# echo " * Enables the usage of ifup and ifdown scripts"
|
|
|
|
# echo -n "(y/n): "
|
|
|
|
# read response
|
|
|
|
# case $response in
|
|
|
|
# [yY]) WAN_INTR_DIR=/etc/sysconfig/network-scripts
|
|
|
|
# NEW_IF_TYPE=YES;
|
|
|
|
# response=yes
|
|
|
|
# ;;
|
|
|
|
# *) response=no
|
|
|
|
# ;;
|
|
|
|
# esac
|
|
|
|
# fi
|
|
|
|
#
|
|
|
|
# echo
|
|
|
|
|
|
|
|
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
if [ $response = no ]; then
|
|
|
|
|
|
|
|
echo -e "\nPlease specify a desired location for WANPIPE interface files."
|
|
|
|
echo -e "\n\t(Press Enter for Default: $WAN_INTR_DIR)\n"
|
|
|
|
echo -n "<specify path:>"
|
|
|
|
read response1
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_INTR_DIR=/etc/wanpipe/interfaces
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ $response1 ]; then
|
|
|
|
WAN_INTR_DIR=$response1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
# Check kernel source directory
|
|
|
|
if [ ! -d $WAN_INTR_DIR ]; then
|
|
|
|
echo -e "\nERROR: Directory $WAN_INTR_DIR not found !\n"
|
|
|
|
getyn "Would you like to try again?"
|
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_INTR_DIR=/etc/wanpipe/interfaces
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
|
|
|
get_intr_dir
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Create meta-configuration file.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
create_mataconf()
|
|
|
|
{
|
|
|
|
local response
|
|
|
|
|
|
|
|
# Select directory for the log file.
|
|
|
|
if [ -d /var/log ]; then
|
|
|
|
LOG_FILE=/var/log/$PROD
|
|
|
|
elif [ -d /var/adm wanpipe1]; then
|
|
|
|
LOG_FILE=/var/adm/$PROD
|
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
LOG_FILE=/etc/wanpipe/$PROD.log
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Select directory for the lock file.
|
|
|
|
if [ -d /var/lock/subsys ]; then
|
|
|
|
LOCK_FILE=/var/lock/subsys/$PROD
|
|
|
|
LOCK_DIR=/var/lock/subsys
|
|
|
|
elif [ -d /var/lock ]; then
|
|
|
|
LOCK_FILE=/var/lock/$PROD
|
|
|
|
LOCK_DIR=/var/lock
|
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
LOCK_FILE=/etc/wanpipe/$PROD.lck
|
|
|
|
LOCK_DIR=/etc/wanpipe
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ -f $ROOT/etc/wanpipe/wanrouter.rc ]; then
|
|
|
|
. /etc/wanpipe/wanrouter.rc
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$WAN_DEVICES" = "" ]; then
|
|
|
|
WAN_DEVICES="wanpipe1"
|
|
|
|
else
|
|
|
|
echo
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Wanpipe META config file found in /etc/wanpipe directory"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
echo "Wanpipe startup sequence: $WAN_DEVICES"
|
|
|
|
echo
|
|
|
|
getyn "Would you like to keep the original wanpipe startup sequence?"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "New wanpipe startup sequence: wanpipe1"
|
|
|
|
WAN_DEVICES="wanpipe1"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
get_conf_dir
|
|
|
|
get_intr_dir
|
|
|
|
|
|
|
|
get_bin_dir
|
|
|
|
|
|
|
|
ENABLE_IP_FWD=NO
|
|
|
|
|
|
|
|
# cat << EOF
|
|
|
|
#
|
|
|
|
#IP Forwarding enables/disables kernel packet routing.
|
|
|
|
# If this machine is a router select Y
|
|
|
|
# If this machine is a firewall select N
|
|
|
|
#
|
|
|
|
#Note:
|
|
|
|
# If ip forwarding is disabled the kernel will not
|
|
|
|
# route packets. Firewalling policy tables will have
|
|
|
|
# to be generaded first.
|
|
|
|
#
|
|
|
|
#Options:
|
|
|
|
#--------
|
|
|
|
# Yes: Enable ip forwarding on router startup.
|
|
|
|
# No: Leave ip forwarding unchanged.
|
|
|
|
#
|
|
|
|
#EOF
|
|
|
|
#
|
|
|
|
# getyn "Enable IP Forwarding on Wanrouter Startup"
|
|
|
|
# if [ $? -ne 0 ]; then
|
|
|
|
# ENABLE_IP_FWD=NO
|
|
|
|
# else
|
|
|
|
# ENABLE_IP_FWD=YES
|
|
|
|
# fi
|
|
|
|
#
|
|
|
|
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
ENABLE_IP_FWD=NO
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $ANNEXG_PROT = YES ]; then
|
|
|
|
ANNEXG_LOAD=YES;
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat > $META_CONF << ENDOFTEXT
|
2021-12-29 17:18:25 +00:00
|
|
|
#!/bin/sh
|
2021-12-29 16:56:27 +00:00
|
|
|
# router.rc WAN router meta-configuration file.
|
|
|
|
#
|
|
|
|
# This file defines variables used by the router shell scripts
|
2021-12-29 17:18:25 +00:00
|
|
|
# and should be located in /etc/wanpipe directory. These are:
|
2021-12-29 16:56:27 +00:00
|
|
|
#
|
|
|
|
# ROUTER_BOOT = Boot flag (YES/NO).
|
|
|
|
# WAN_CONF_DIR = Where to put wanpipe config files.
|
|
|
|
# WAN_INTR_DIR = Where to put wanpipe interface files.
|
|
|
|
# WAN_LOG = Where to put start-up log file.
|
|
|
|
# WAN_LOCK = File used as a lock.
|
|
|
|
# WAN_LOCK_DIR =
|
|
|
|
# WAN_IP_FORWARD = Enable IP Forwarding on startup.
|
|
|
|
# WAN_DEVICES = Name of the wanpipe devices to be
|
|
|
|
# loaded on 'wanrouter start'
|
|
|
|
# (ex: "wanpipe1 wanpipe2 wanpipe3...")
|
|
|
|
#
|
|
|
|
# Note: Name of wanpipe devices correspond
|
|
|
|
# to the configuration files in
|
|
|
|
# WANPIPE_CONF_DIR directory:
|
|
|
|
# (ex. $WAN_CONF_DIR/wanpipe1.conf )
|
|
|
|
#
|
|
|
|
# Note: This file is 'executed' by the shell script, so
|
|
|
|
# the usual shell syntax must be observed.
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
echo "ROUTER_BOOT=YES" >> $META_CONF
|
|
|
|
echo "WAN_CONF_DIR=$WAN_CONF_DIR" >> $META_CONF
|
|
|
|
echo "WAN_INTR_DIR=$WAN_INTR_DIR" >> $META_CONF
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "WAN_BIN_DIR=/usr/sbin" >> $META_CONF
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "WAN_LOG=$LOG_FILE" >> $META_CONF
|
|
|
|
echo "WAN_LOCK=$LOCK_FILE" >> $META_CONF
|
|
|
|
echo "WAN_LOCK_DIR=$LOCK_DIR" >> $META_CONF
|
|
|
|
echo "WAN_IP_FORWARD=$ENABLE_IP_FWD" >> $META_CONF
|
|
|
|
echo "NEW_IF_TYPE=$NEW_IF_TYPE" >> $META_CONF
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "WAN_LIB_DIR=/etc/wanpipe/lib" >> $META_CONF
|
|
|
|
echo "WAN_ADSL_LIST=/etc/wanpipe/wan_adsl.list" >> $META_CONF
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "WAN_ANNEXG_LOAD=$ANNEXG_LOAD" >> $META_CONF
|
2021-12-29 17:03:21 +00:00
|
|
|
echo "WAN_SCTP_LOAD=$SCTP_LOAD" >> $META_CONF
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "WAN_LIP_LOAD=$LIP_LOAD" >> $META_CONF
|
|
|
|
echo "WAN_DYN_WANCONFIG=NO" >> $META_CONF
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "WAN_SCRIPTS_DIR=/etc/wanpipe/scripts" >> $META_CONF
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "WAN_FIRMWARE_DIR=$WAN_FIRMWARE_DIR" >> $META_CONF
|
|
|
|
echo "WAN_DEVICES_REV_STOP_ORDER=YES" >> $META_CONF
|
|
|
|
echo "WAN_DEVICES=\"$WAN_DEVICES\"" >> $META_CONF
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
2021-12-29 17:18:25 +00:00
|
|
|
#Install initialization scripts.
|
2021-12-29 16:56:27 +00:00
|
|
|
# ----------------------------------------------------------------------------
|
2021-12-29 17:14:12 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
install_init()
|
2021-12-29 17:14:12 +00:00
|
|
|
{
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
2021-12-29 17:14:12 +00:00
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $NO_AUTO_START -eq 1 ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
banner
|
2021-12-29 17:14:12 +00:00
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
WANPIPE BOOTSTRAP CONFIGURATION
|
|
|
|
|
|
|
|
Your system uses System V -style initialization scripts. You have an option
|
|
|
|
to add router start-up script to those scripts so that the router will start
|
|
|
|
automatically when system enters multi-user mode and shut down when it enters
|
|
|
|
single-user mode or when it is halted.
|
|
|
|
|
|
|
|
i.e. By selecting this option WANPIPE will startup on system bootup and
|
|
|
|
stop on system shutdown.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
2021-12-29 17:18:25 +00:00
|
|
|
|
|
|
|
getyn "Would you like to install WANPIPE start-up scripts?" || return 0
|
|
|
|
|
|
|
|
cd $PROD_HOME/util/wancfg_zaptel
|
|
|
|
eval "./wancfg_zaptel.pl --silent --install_boot_script"
|
|
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Failed to install boot scripts"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$TDM_PROT" = "YES" ]; then
|
2021-12-29 17:14:12 +00:00
|
|
|
getyn "Would you like to auto-execute ztcfg after wanrouter start?" || return 0
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -d $ROOT$WAN_CONF_DIR/scripts ]; then
|
|
|
|
eval "\mkdir -p $ROOT$WAN_CONF_DIR/scripts >/dev/null 2>/dev/null"
|
2021-12-29 17:14:12 +00:00
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
eval "\cp -f $PROD_HOME/samples/wanpipe_zaptel_start $ROOT$WAN_CONF_DIR/scripts/start > /dev/null 2> /dev/null"
|
|
|
|
if [ ! -f $ROOT$WAN_CONF_DIR/scripts/start ]; then
|
2021-12-29 17:14:12 +00:00
|
|
|
echo "Error: Could not copy auto-ztcfg script"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
cd $PROD_HOME
|
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
}
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Old Install initialization scripts.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
install_init_old()
|
2021-12-29 16:56:27 +00:00
|
|
|
{
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $NO_AUTO_START -eq 1 ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
# Examine system bootstrap files.
|
|
|
|
if [ -d /etc/rc0.d ]
|
|
|
|
then RC_DIR=/etc
|
|
|
|
elif [ -d /etc/rc.d/rc0.d ]
|
|
|
|
then RC_DIR=/etc/rc.d
|
|
|
|
else return 0
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
eval "find $RC_DIR -name 'S*wanrouter' | xargs rm 2> /dev/null"
|
|
|
|
eval "find $RC_DIR -name 'K*wanrouter' | xargs rm 2> /dev/null"
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
banner
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
WANPIPE BOOTSTRAP CONFIGURATION
|
|
|
|
|
|
|
|
Your system uses System V -style initialization scripts. You have an option
|
|
|
|
to add router start-up script to those scripts so that the router will start
|
|
|
|
automatically when system enters multi-user mode and shut down when it enters
|
|
|
|
single-user mode or when it is halted.
|
|
|
|
|
|
|
|
i.e. By selecting this option WANPIPE will startup on system bootup and
|
|
|
|
stop on system shutdown.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
getyn "Would you like to install WANPIPE start-up scripts?" || return 0
|
|
|
|
|
|
|
|
PROD_INIT=$PROD_INIT$PROD
|
|
|
|
echo -e "\n\t WANPIPE Setup for boot startup "
|
|
|
|
|
|
|
|
if test -z $ROOT; then
|
|
|
|
# Install start scripts.
|
|
|
|
[ -d $RC_DIR/rc2.d ] && ln -sf $PROD_INIT $RC_DIR/rc2.d/$START_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc3.d ] && ln -sf $PROD_INIT $RC_DIR/rc3.d/$START_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc4.d ] && ln -sf $PROD_INIT $RC_DIR/rc4.d/$START_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc5.d ] && ln -sf $PROD_INIT $RC_DIR/rc5.d/$START_SCRIPT
|
|
|
|
|
|
|
|
# Install stop scripts.
|
|
|
|
[ -d $RC_DIR/rc0.d ] && ln -sf $PROD_INIT $RC_DIR/rc0.d/$STOP_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc1.d ] && ln -sf $PROD_INIT $RC_DIR/rc1.d/$STOP_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc6.d ] && ln -sf $PROD_INIT $RC_DIR/rc6.d/$STOP_SCRIPT
|
|
|
|
[ -d $RC_DIR/init.d ] && ln -sf $PROD_INIT $RC_DIR/init.d/$PROD
|
|
|
|
else
|
|
|
|
# Install start scripts.
|
2021-12-29 16:59:00 +00:00
|
|
|
[ -d $RC_DIR/rc2.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc2.d/$START_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc3.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc3.d/$START_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc4.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc4.d/$START_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc5.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc5.d/$START_SCRIPT
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
# Install stop scripts.
|
2021-12-29 16:59:00 +00:00
|
|
|
[ -d $RC_DIR/rc0.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc0.d/$STOP_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc1.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc1.d/$STOP_SCRIPT
|
|
|
|
[ -d $RC_DIR/rc6.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/rc6.d/$STOP_SCRIPT
|
|
|
|
[ -d $RC_DIR/init.d ] && install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$RC_DIR/init.d/$PROD
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ "$TDM_PROT" = "YES" ]; then
|
|
|
|
getyn "Would you like to auto-execute ztcfg after wanrouter start?" || return 0
|
2021-12-29 17:03:37 +00:00
|
|
|
if [ ! -d $WAN_CONF_DIR/scripts ]; then
|
|
|
|
eval "\mkdir -p $WAN_CONF_DIR/scripts >/dev/null 2>/dev/null"
|
2021-12-29 17:18:25 +00:00
|
|
|
fi
|
|
|
|
eval "\cp -f $PROD_HOME/samples/wanpipe_zaptel_start $WAN_CONF_DIR/scripts/start >/dev/null 2>/dev/null"
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ ! -f $WAN_CONF_DIR/scripts/start ]; then
|
|
|
|
echo "Error: Could not copy auto-ztcfg script"
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 17:03:37 +00:00
|
|
|
pause
|
2021-12-29 16:56:27 +00:00
|
|
|
return 0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Remove product.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
remove()
|
|
|
|
{
|
|
|
|
banner
|
2021-12-29 17:12:33 +00:00
|
|
|
echo "You are about to uninstall WANPIPE package!"
|
2021-12-29 16:56:27 +00:00
|
|
|
getyn "\nAre you sure?" || return 0
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
# Remove wanpipe modules
|
|
|
|
echo " "
|
|
|
|
echo "Removing Wanpipe modules"
|
|
|
|
module_list="sdladrv wanrouter wanpipe_lip wanpipe_syncppp wanpipe af_wanpipe wanec"
|
|
|
|
for module_name in $module_list
|
|
|
|
do
|
|
|
|
eval "modprobe -l |grep $module_name > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
module_path=`modprobe -l |grep $module_name`
|
|
|
|
\rm -f $module_path >/dev/null
|
|
|
|
echo " $module_path removed"
|
|
|
|
else
|
|
|
|
echo " $module_name module not found"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
echo "Probing for modules (depmod -a)..."
|
|
|
|
eval "depmod -a"
|
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
# Read meta-configuration file.
|
|
|
|
if [ -f $ROUTER_RC ]; then
|
|
|
|
source $ROUTER_RC
|
|
|
|
fi
|
|
|
|
# X25API_CONF=${X25API_CONF:=$X25API_CONF}
|
|
|
|
ROUTER_LOG=${ROUTER_LOG:=/var/log/$PROD}
|
|
|
|
ROUTER_LOCK=${ROUTER_LOCK:=/var/lock/$PROD}
|
|
|
|
|
|
|
|
[ -f $ROUTER_LOCK ] && {
|
|
|
|
error "Router appears to be running. Stop it first"
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
# Remove start-up scripts.
|
|
|
|
remove_init
|
|
|
|
|
|
|
|
# Remove log and configuration files.
|
|
|
|
echo "Removing log and configuration files..."
|
|
|
|
[ -f $ROUTER_RC ] && rm -f $ROUTER_RC
|
|
|
|
[ -f $ROUTER_LOG ] && rm -f $ROUTER_LOG
|
|
|
|
|
|
|
|
#FIXME: Find a better way of doing this
|
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ -d /etc/wanpipe ]; then
|
|
|
|
rm -rf /etc/wanpipe
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
IFCFG_LIST=`ls /etc/wanpipe/ifcfg-* 2>/dev/null`
|
2021-12-29 16:56:27 +00:00
|
|
|
for ifcfg in $IFCFG_LIST; do
|
|
|
|
[ -f "$ifcfg" ] && rm -f $ifcfg
|
|
|
|
done
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Remove contents of the home directory.
|
|
|
|
echo -e "\nYou can now delete $PROD_HOME directory and its contents."
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
# Remove initialization scripts.
|
|
|
|
# ----------------------------------------------------------------------------
|
|
|
|
remove_init()
|
|
|
|
{
|
|
|
|
# Examine system bootstrap files.
|
|
|
|
if [ -d /etc/rc0.d ]
|
|
|
|
then RC_DIR=/etc
|
|
|
|
elif [ -d /etc/rc.d/rc0.d ]
|
|
|
|
then RC_DIR=/etc/rc.d
|
|
|
|
else return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "Removing start-up scripts..."
|
|
|
|
[ -f $RC_DIR/rc2.d/$START_SCRIPT ] && rm -f $RC_DIR/rc2.d/$START_SCRIPT
|
|
|
|
[ -f $RC_DIR/rc3.d/$START_SCRIPT ] && rm -f $RC_DIR/rc3.d/$START_SCRIPT
|
|
|
|
[ -f $RC_DIR/rc5.d/$START_SCRIPT ] && rm -f $RC_DIR/rc4.d/$START_SCRIPT
|
|
|
|
[ -f $RC_DIR/rc5.d/$START_SCRIPT ] && rm -f $RC_DIR/rc5.d/$START_SCRIPT
|
|
|
|
[ -f $RC_DIR/rc0.d/$STOP_SCRIPT ] && rm -f $RC_DIR/rc0.d/$STOP_SCRIPT
|
|
|
|
[ -f $RC_DIR/rc1.d/$STOP_SCRIPT ] && rm -f $RC_DIR/rc1.d/$STOP_SCRIPT
|
|
|
|
[ -f $RC_DIR/rc6.d/$STOP_SCRIPT ] && rm -f $RC_DIR/rc6.d/$STOP_SCRIPT
|
|
|
|
[ -f $RC_DIR/init.d/$PROD ] && rm -f $RC_DIR/init.d/$PROD
|
2021-12-29 17:12:33 +00:00
|
|
|
|
|
|
|
eval "find $RC_DIR -name 'S*wanrouter' | xargs rm 2> /dev/null"
|
|
|
|
eval "find $RC_DIR -name 'K*wanrouter' | xargs rm 2> /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
search_rej ()
|
|
|
|
{
|
|
|
|
|
|
|
|
echo -e "\nLooking for Reject files"
|
|
|
|
find $SOURCEDIR/. -name '*.rej' > $PROD_HOME/REJECT_FILE
|
|
|
|
if [ -s $PROD_HOME/REJECT_FILE ]
|
|
|
|
then
|
|
|
|
echo -e "\n!!! Reject Files found: check the $PROD_HOME/REJECT_FILE !!!"
|
|
|
|
echo -e " WARNING: Patching is not completed"
|
|
|
|
echo -e "\n If the patch version matches the kernel version, there should be "
|
|
|
|
echo -e " no errors, thus copy a fresh kernel into the $SOURCEDIR"
|
|
|
|
echo -e " directory and try again."
|
|
|
|
echo -e "\n If the patch verison is different from the kernel version, check"
|
|
|
|
echo -e " the reject files in $PROD_HOME/REJECT_FILE. A patch will have"
|
|
|
|
echo -e " to be added in manually. Refer to the README file in "
|
|
|
|
echo -e " ftp.sangoma.com /pub/linux/v2.2.X/(Kernel Version) directory. "
|
|
|
|
echo -e "\n For further assistance email ncorbic@sangoma.com or contact Sangoma"
|
|
|
|
echo -e " at (905) 474 1990.\n"
|
|
|
|
pause
|
|
|
|
else
|
|
|
|
echo -e "\n PATCH SUCCESSFUL: no reject files found :)\n"
|
|
|
|
rm $PROD_HOME/REJECT_FILE
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
compile_src ()
|
|
|
|
{
|
|
|
|
banner
|
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
|
|
|
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
WANPIPE UTILITIES SETUP
|
|
|
|
|
|
|
|
WANPIPE utilities are used to:
|
|
|
|
1) create WANPIPE configuration files.
|
|
|
|
(/usr/sbin/wancfg)
|
2021-12-29 16:59:00 +00:00
|
|
|
2) create configuration files for Zaptel and Asterisk
|
2021-12-29 17:03:21 +00:00
|
|
|
(/usr/sbin/wancfg_zaptel)
|
|
|
|
3) start,stop,restart individual/all devices and interfaces.
|
2021-12-29 16:56:27 +00:00
|
|
|
(/usr/sbin/wanrouter)
|
2021-12-29 17:03:21 +00:00
|
|
|
4) debug line, protocol and driver problems.
|
2021-12-29 16:56:27 +00:00
|
|
|
(/usr/sbin/wanpipemon)
|
2021-12-29 17:12:33 +00:00
|
|
|
5) aid in WANPIPE API development
|
2021-12-29 17:18:25 +00:00
|
|
|
(/etc/wanpipe/api)
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
Refer to the WanpipeInstallation.(pdf/txt) for more information.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
|
|
|
|
[ -d $INCLUDE ] || {
|
|
|
|
echo -e "\n\t\tERROR: System environment setup failure !!\n"
|
|
|
|
echo -e "\tLinux include directory does not exist: $INCLUDE\n"
|
|
|
|
echo -e "\tCompilation process requires the above path"
|
|
|
|
echo -e "\tthe $INCLUDE directory must point to the location of the"
|
|
|
|
echo -e "\tWANPIPE header files, found in linux source include directory\n"
|
|
|
|
|
|
|
|
echo -e "\tPlease install the Linux source in $SOURCEDIR before"
|
|
|
|
echo -e "\tproceeding"
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
if [ ! -e $SOURCEDIR/include/asm ]; then
|
|
|
|
echo -e "
|
|
|
|
WARNING: The Linux source in $SOURCEDIR has not been configured.
|
|
|
|
Please proceed to configure the source before compiling
|
|
|
|
wanpipe utilities (ex: make menuconfig and make dep)."
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -e $SOURCEDIR/include/linux/version.h ]; then
|
|
|
|
echo -e "
|
|
|
|
WARNING: The Linux source in $SOURCEDIR has not been configured.
|
|
|
|
Please proceed to configure the source before compiling
|
|
|
|
wanpipe utilities (ex: make menuconfig and make dep)."
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
check_gcc
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
echo -e "\n\tWarning: Wanpipe package requires C development tools to complete
|
|
|
|
the installation. Please install development package
|
|
|
|
before proceeding. GCC/KGCC/CC compiler not found"
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
delete_old_tools;
|
|
|
|
|
|
|
|
cd $PROD_HOME/util
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo -n "Compiling ${DISTR_NAME} Utilities ..."
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
MAKEINC=
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ "$ADSL_PROT" = "YES" ]; then
|
2021-12-29 16:57:21 +00:00
|
|
|
MAKEINC=$MAKEINC" PROTOCOL_DEFS=-DCONFIG_PRODUCT_WANPIPE_ADSL "
|
|
|
|
fi
|
|
|
|
if [ $ENABLE_ECHO_DEBUG -eq 1 ]; then
|
|
|
|
MAKEINC=$MAKEINC" ENABLE_WANPIPEMON_ZAP=YES "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "make CC=$CC SYSINC=$SOURCEDIR/include WANINCDIR=$WANPIPE_INCLUDE_DIR $MAKEINC >> $CMP_LOG 2>> $CMP_LOG"
|
2021-12-29 17:18:25 +00:00
|
|
|
#eval "make CC=$CC SYSINC=$DRIVER_INC_DIR WANINCDIR=$WANPIPE_INCLUDE_DIR $MAKEINC >> $CMP_LOG 2>> $CMP_LOG"
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]
|
|
|
|
then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
2021-12-29 16:57:21 +00:00
|
|
|
echo
|
|
|
|
echo "make CC=$CC SYSINC=$SOURCEDIR/include $MAKEINC"
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "make CC=$CC SYSINC=$SOURCEDIR/include $MAKEINC"
|
2021-12-29 16:57:21 +00:00
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -e "Failed!\n"
|
|
|
|
echo -e "\n\t\t!!! ${DISTR_NAME} Tools Compilation Failed !!!"
|
|
|
|
echo -e "\tPossible solution:"
|
|
|
|
echo -e "\t\t Wanpipe header files were not installed properly"
|
|
|
|
echo -e "\t\t in $SOURCEDIR/include directory"
|
|
|
|
echo -e "\tPlease contact Sangoma Tech. at 905 474-1990\n"
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Compiling ${DISTR_NAME} WanCfg Utility ..."
|
|
|
|
|
|
|
|
WANCFG_DEFS=
|
|
|
|
if [ "$TDM_PROT" = "YES" ]; then
|
2021-12-29 17:15:08 +00:00
|
|
|
WANCFG_DEFS=$WANCFG_DEFS" ENABLE_ZAPTEL_PARSER=YES ZAPINC=$ZAPTEL_SOURCE_DIR"
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "make -C wancfg all CC=$CC SYSINC=$SOURCEDIR/include $WANCFG_DEFS >> $CMP_LOG 2>> $CMP_LOG"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ $? -eq 0 ]
|
|
|
|
then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
echo -e "\n\t\t!!! ${DISTR_NAME} WanCfg Compilation Failed !!!"
|
|
|
|
echo -e "\tPossible solution:"
|
|
|
|
echo -e "\t\t FLEX Package not installed"
|
|
|
|
echo -e "\t\t Non-standard C/C++ library (eg: ulibc)\n"
|
|
|
|
echo -e "\tPlease contact Sangoma Tech. at 905 474-1990\n"
|
|
|
|
|
|
|
|
getyn "Proceed with installation without WanCfg ?" || return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME/util/misc
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo -n "Compiling WANPIPE Misc Utilities ..."
|
2021-12-29 16:57:21 +00:00
|
|
|
eval "make CC=$CC SYSINC=$SOURCEDIR/include > /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -e "Done.\n"
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo
|
|
|
|
echo -n "Compiling WANPIPE LibSangoma TDM API library ..."
|
|
|
|
|
|
|
|
cd $PROD_HOME/api
|
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ $superuser = "YES" ] && [ -z $ROOT ]; then
|
|
|
|
eval "find /usr/local/lib -name 'libsangoma*' > /dev/null 2>/dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
eval "find /usr/local/lib -name 'libsangoma*' | xargs rm > /dev/null 2>/dev/null"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
cd libsangoma
|
2021-12-29 17:14:12 +00:00
|
|
|
eval "./configure --prefix=$ROOT/usr >> $CMP_LOG 2>> $CMP_LOG"
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "make clean >> $CMP_LOG 2>> $CMP_LOG"
|
|
|
|
eval "make CC=$CC SYSINC=$SOURCEDIR/include >> $CMP_LOG 2>> $CMP_LOG"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed. \n"
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
eval "make install >> $CMP_LOG 2>> $CMP_LOG"
|
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ $superuser = "YES" ] && [ -z $ROOT ]; then
|
|
|
|
eval "ldconfig > /dev/null 2> /dev/null"
|
2021-12-29 17:18:25 +00:00
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
#Default install in /usr/lib no need for additional
|
|
|
|
# if [ 0 ]; then
|
|
|
|
# if [ $superuser = "YES" ]; then
|
|
|
|
# if [ -d /etc/ld.so.conf.d ]; then
|
|
|
|
# if [ ! -e $ROOT/etc/ld.so.conf.d/ ]; then
|
|
|
|
# \mkdir -p $ROOT/etc/ld.so.conf.d/
|
|
|
|
# fi
|
|
|
|
# \cp -f libsangoma.so.conf $ROOT/etc/ld.so.conf.d/
|
|
|
|
#
|
|
|
|
# if [ $superuser = "YES" ]; then
|
|
|
|
# eval "ldconfig"
|
|
|
|
# fi
|
|
|
|
# elif [ -f /etc/ld.so.conf ]; then
|
|
|
|
# if [ $superuser = "YES" ]; then
|
|
|
|
# cat /etc/ld.so.conf libsangoma.so.conf > ldconf.$$
|
|
|
|
# mv ldconf.$$ /etc/ld.so.conf
|
|
|
|
# eval "ldconfig"
|
|
|
|
# fi
|
|
|
|
# else
|
|
|
|
# echo
|
|
|
|
# echo "Warning: LD Conf files not found in /etc directory"
|
|
|
|
# echo "Please add /usr/local/lib to the LD_LIBRARY_PATH"
|
|
|
|
# echo
|
|
|
|
# eval "ldconfig"
|
|
|
|
# pause
|
|
|
|
# fi
|
|
|
|
# fi
|
|
|
|
# fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
echo -n "Compiling WANPIPE API Development Utilities ..."
|
|
|
|
|
|
|
|
cd $PROD_HOME/api
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "make CC=$CC SYSINC=$SOURCEDIR/include >> $CMP_LOG 2>> $CMP_LOG"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
echo -e "\tERROR: Failed to compile WANPIPE API Tools !!!"
|
|
|
|
echo -e "\t\nPlease contact Sangoma Technologies"
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ -d $PROD_HOME/util/wanec_client ] && [ -d $DRIVER_UPDATE_DIR/wanec ] ; then
|
|
|
|
echo
|
|
|
|
echo -n "Compiling WANPIPE HWEC Utilities ..."
|
|
|
|
cd $PROD_HOME/util/wanec_client
|
|
|
|
eval "make CC=$CC SYSINC=$SOURCEDIR/include WANEC_DIR=$DRIVER_UPDATE_DIR/wanec >> $CMP_LOG 2>> $CMP_LOG "
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
echo -e "\tERROR: Failed to compile WANPIPE HWEC Tools !!!"
|
|
|
|
echo -e "\t\nPlease contact Sangoma Technologies"
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo -n "WANPIPE HWEC Utilities not installed"
|
|
|
|
echo
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -e "\tWANPIPE Environment Setup Complete !!!\n"
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
delete_old_tools()
|
|
|
|
{
|
|
|
|
cd $PROD_HOME/util
|
|
|
|
make clean 2> /dev/null > /dev/null
|
|
|
|
|
|
|
|
cd $PROD_HOME
|
|
|
|
}
|
|
|
|
|
|
|
|
check_kernel_patch_level ()
|
|
|
|
{
|
|
|
|
|
|
|
|
local DIR=$1;
|
|
|
|
local val
|
|
|
|
|
|
|
|
if [ -f "$DIR/net/wanrouter/patchlevel" ]; then
|
|
|
|
val=`cat $DIR/net/wanrouter/patchlevel`
|
|
|
|
echo -e "\tCurrent WANPIPE kernel patch is $val"
|
|
|
|
if [ $val = "2.0.3" ]; then
|
|
|
|
return 0
|
|
|
|
elif [ $val = "2.2.1" ]; then
|
|
|
|
if [ $KPATCH -eq 4 ] && [ $KLVL -gt 3 ]; then
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
clean_up ()
|
|
|
|
{
|
|
|
|
[ -f "/usr/sbin/router" ] && rm -f /usr/sbin/router
|
|
|
|
|
|
|
|
[ -f $RC_DIR/rc2.d/$OLD_START ] && rm -f $RC_DIR/rc2.d/$OLD_START
|
|
|
|
[ -f $RC_DIR/rc3.d/$OLD_START ] && rm -f $RC_DIR/rc3.d/$OLD_START
|
|
|
|
[ -f $RC_DIR/rc5.d/$OLD_START ] && rm -f $RC_DIR/rc4.d/$OLD_START
|
|
|
|
[ -f $RC_DIR/rc5.d/$OLD_START ] && rm -f $RC_DIR/rc5.d/$OLD_START
|
|
|
|
[ -f $RC_DIR/rc0.d/$OLD_STOP ] && rm -f $RC_DIR/rc0.d/$OLD_STOP
|
|
|
|
[ -f $RC_DIR/rc1.d/$OLD_STOP ] && rm -f $RC_DIR/rc1.d/$OLD_STOP
|
|
|
|
[ -f $RC_DIR/rc6.d/$OLD_STOP ] && rm -f $RC_DIR/rc6.d/$OLD_STOP
|
|
|
|
|
|
|
|
[ -f "/etc/router.rc" ] && rm -f /etc/router.rc
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
get_distrib()
|
|
|
|
{
|
|
|
|
grep -i "red *hat" "/etc/issue" > /dev/null
|
|
|
|
if [ $? -eq 0 ]
|
|
|
|
then
|
|
|
|
return 1; #RedHat Found
|
|
|
|
else
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
function check_for_af_wanpipe_updates()
|
|
|
|
{
|
|
|
|
if [ $KVER -eq 2 ] && [ $KPATCH -eq 6 ]; then
|
|
|
|
if [ $KLVL -eq 11 ]; then
|
|
|
|
eval "grep sk_zapped $SOURCEDIR/include/net/sock.h > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
AF_EXTRA_FLAGS="$AF_EXTRA_FLAGS -DAF_WANPIPE_2612_FORCE_UPDATE"
|
|
|
|
fi
|
|
|
|
elif [ $KLVL -gt 11 ]; then
|
|
|
|
AF_EXTRA_FLAGS="$AF_EXTRA_FLAGS -DAF_WANPIPE_2612_FORCE_UPDATE"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
function wan_kernel_version_conflict_fix()
|
|
|
|
{
|
|
|
|
local FLAGS=
|
|
|
|
|
|
|
|
if [ $LINUX_VANILLA -gt 0 ]; then
|
|
|
|
return;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $KVER -eq 2 ] && [ $KPATCH -eq 6 ]; then
|
|
|
|
if [ $KLVL -eq 11 ]; then
|
|
|
|
if [ "$KEVER" != "" ]; then
|
|
|
|
FLAGS="$FLAGS -DAF_WANPIPE_2612_FORCE_UPDATE"
|
|
|
|
fi
|
|
|
|
elif [ $KLVL -gt 11 ]; then
|
|
|
|
FLAGS="$FLAGS -DAF_WANPIPE_2612_FORCE_UPDATE"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $KLVL -eq 5 ]; then
|
|
|
|
if [ "$KEVER" != "" ]; then
|
|
|
|
FLAGS="$FLAGS -DWANPIPE_MOD_266_FORCE_UPDATE"
|
|
|
|
fi
|
|
|
|
elif [ $KLVL -gt 5 ]; then
|
|
|
|
FLAGS="$FLAGS -DWANPIPE_MOD_266_FORCE_UPDATE"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$FLAGS" != "" ]; then
|
|
|
|
echo "Wan Update Flags: $FLAGS"
|
|
|
|
CFLAGS="$CFLAGS $FLAGS "
|
|
|
|
fi
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function is_distr_fedora2()
|
|
|
|
{
|
|
|
|
local distr
|
|
|
|
|
|
|
|
if [ ! -f /etc/issue ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
distr=`cat /etc/issue | grep "(Tettnang)"`
|
|
|
|
|
|
|
|
#If release is not Fedora2 then
|
|
|
|
#get out
|
|
|
|
if [ "$distr" = "" ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function update_redhat_as()
|
|
|
|
{
|
|
|
|
local distr
|
|
|
|
local rc
|
|
|
|
local cmd=$1
|
|
|
|
|
|
|
|
if [ ! -f /etc/issue ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
distr=`cat /etc/issue | grep "(Panama)"`
|
|
|
|
|
|
|
|
#If release is not RedHat AS then
|
|
|
|
#get out
|
|
|
|
if [ "$distr" = "" ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -f $SOURCEDIR/include/linux/version.h ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $cmd -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ ! -d /tmp ]; then
|
|
|
|
mkdir /tmp
|
|
|
|
fi
|
|
|
|
|
|
|
|
\cp -f $SOURCEDIR/include/linux/version.h /tmp/version.h
|
|
|
|
|
|
|
|
rc=`cat /tmp/version.h | awk '{ gsub("132105", "132106") ; print }' > $SOURCEDIR/include/linux/version.h`
|
|
|
|
else
|
|
|
|
if [ -f /tmp/version.h ]; then
|
|
|
|
\cp -f /tmp/version.h $SOURCEDIR/include/linux/version.h
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
function wan_get_kernel_flags()
|
|
|
|
{
|
|
|
|
# echo "make -C $SOURCEDIR SUBDIRS=$PWD drivers/net/wan/sdladrv 2> /dev/null"
|
|
|
|
|
|
|
|
if [ ! -d $SOURCEDIR/wanpipe ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
mkdir -p $SOURCEDIR/wanpipe
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
cp $DRIVER_UPDATE_DIR/src/net/sdladrv.c $SOURCEDIR/wanpipe
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
tmp1=`make -C $SOURCEDIR SUBDIRS=$PWD wanpipe/sdladrv 2> /dev/null`
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
# echo "TMP =---$tmp---"
|
|
|
|
|
|
|
|
tmp=${tmp1#*gcc}
|
|
|
|
|
|
|
|
tmp1=$tmp;
|
|
|
|
|
|
|
|
# echo "TMP1 =---$tmp1---"
|
|
|
|
|
|
|
|
tmp=${tmp1%%wanpipe/*}
|
|
|
|
|
|
|
|
tmp1=$tmp
|
|
|
|
|
|
|
|
tmp=${tmp1%%-m elf*}
|
|
|
|
|
|
|
|
tmp1=$tmp;
|
|
|
|
|
|
|
|
tmp=${tmp1%%-c *};
|
|
|
|
|
|
|
|
tmp1=$tmp;
|
|
|
|
|
|
|
|
tmp=${tmp1//-Iinclude\//-I$SOURCEDIR\/include/}
|
|
|
|
|
|
|
|
CFLAGS_EXTRA=$tmp
|
|
|
|
|
|
|
|
if [ $DISABLE_GCC_DEBUG -gt 0 ]; then
|
|
|
|
tmp=${CFLAGS_EXTRA//-g/}
|
|
|
|
CFLAGS_EXTRA=$tmp
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$CFLAGS_EXTRA" = "" ]; then
|
|
|
|
echo "Major Error: Failed to obtain kernel CFLAGS from $SOURCEDIR"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d $SOURCEDIR/wanpipe ]; then
|
|
|
|
\rm -rf $SOURCEDIR/wanpipe
|
|
|
|
fi
|
|
|
|
|
|
|
|
#echo "CFLAGS_EXTRA=$CFLAGS_EXTRA"
|
|
|
|
|
|
|
|
|
|
|
|
echo
|
|
|
|
}
|
|
|
|
|
|
|
|
function build_kernel_module()
|
|
|
|
{
|
|
|
|
modname=$1
|
|
|
|
modfiles=$2
|
|
|
|
extra_flags=$3
|
|
|
|
local_link=$4
|
|
|
|
bin_link=$4
|
|
|
|
ofiles=
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
extra_flags=$extra_flags" -I/$WANPIPE_INCLUDE_DIR -I$WANPIPE_INCLUDE_DIR/oct6100_api -I$WANPIPE_INCLUDE_DIR/oct6100_api/oct6100api "
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ $KBUILD_DISABLE -ne 1 ] && [ $KERN_VER -eq 26 ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
for file in $modfiles
|
|
|
|
do
|
|
|
|
ofiles=$ofiles"$file.o "
|
|
|
|
local_link=$local_link" $file.o "
|
|
|
|
done
|
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
echo "make MODULE_NAME=$modname OBJS=\"$ofiles\" SUBDIRS=$PWD CC=$CC KDIR=$SOURCEDIR \
|
2021-12-29 16:56:27 +00:00
|
|
|
EXTRA_CFLAGS=\"-D__LINUX__ $PROTOCOL_DEFINES $extra_flags \"" >> $CMP_BUILD
|
|
|
|
|
|
|
|
chmod 755 $CMP_BUILD
|
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
make MODULE_NAME=$modname OBJS="$ofiles" CC=$CC SUBDIRS=$PWD KBUILD_VERBOSE=$KBUILD_VERBOSE KDIR=$SOURCEDIR \
|
2021-12-29 16:56:27 +00:00
|
|
|
EXTRA_CFLAGS="-D__LINUX__ $PROTOCOL_DEFINES $extra_flags " >> $CMP_LOG 2>> $CMP_LOG
|
|
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "---------------------------------------------"
|
|
|
|
echo
|
|
|
|
cat $CMP_LOG
|
|
|
|
echo
|
|
|
|
echo "---------------------------------------------"
|
|
|
|
echo
|
|
|
|
exit 1;
|
2021-12-29 16:57:21 +00:00
|
|
|
else
|
|
|
|
if [ $KBUILD_VERBOSE -eq 1 ]; then
|
|
|
|
cat $CMP_LOG
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$bin_link" != "" ]; then
|
|
|
|
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo "ld $LD_ELF -r -o $modname.o $local_link"
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo
|
|
|
|
|
|
|
|
echo "ld $LD_ELF -r -o $modname.o $local_link" >> $CMP_BUILD
|
|
|
|
$EVALCMD "ld $LD_ELF -r -o $modname.o $local_link"
|
|
|
|
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo "ld $LD_ELF -r -o $modname.ko $modname.o $modname.mod.o"
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo
|
|
|
|
|
|
|
|
echo "ld $LD_ELF -r -o $modname.ko $modname.o $modname.mod.o" >> $CMP_BUILD
|
|
|
|
$EVALCMD "ld $LD_ELF -r -o $modname.ko $modname.o $modname.mod.o"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
|
|
|
|
for file in $modfiles
|
|
|
|
do
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo "$CFLAGS $PROTOCOL_DEFINES $extra_flags -DKBUILD_BASENAME=$file -DKBUILD_MODNAME=$modname -c -o tmp/$file.o $file.c"
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo
|
|
|
|
|
|
|
|
$EVALCMD "$CFLAGS $PROTOCOL_DEFINES $extra_flags -DKBUILD_BASENAME=$file -DKBUILD_MODNAME=$modname -c -o tmp/$file.o $file.c"
|
|
|
|
local_link=$local_link" tmp/$file.o "
|
|
|
|
done
|
|
|
|
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo "ld $LD_ELF -r -o mod/$modname.o $local_link"
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "$EVALCMD \"ld $LD_ELF -r -o mod/$modname.o $local_link\"" >> $CMP_BUILD
|
2021-12-29 16:56:27 +00:00
|
|
|
$EVALCMD "ld $LD_ELF -r -o mod/$modname.o $local_link"
|
|
|
|
|
|
|
|
if [ $KERN_VER -eq 26 ]; then
|
|
|
|
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo "$CFLAGS -DKBUILD_BASENAME=$modname -DKBUILD_MODNAME=$modname -c -o mod/$modname.mod.o $modname.mod.c"
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo
|
|
|
|
$EVALCMD "$CFLAGS -DKBUILD_BASENAME=$modname -DKBUILD_MODNAME=$modname -c -o mod/$modname.mod.o $modname.mod.c"
|
|
|
|
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo "ld $LD_ELF -r -o mod/$modname.ko mod/$modname.o mod/$modname.mod.o"
|
|
|
|
#echo "----------------------------"
|
|
|
|
#echo
|
|
|
|
$EVALCMD "ld $LD_ELF -r -o mod/$modname.ko mod/$modname.o mod/$modname.mod.o"
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
function build_wanec_module ()
|
|
|
|
{
|
|
|
|
|
|
|
|
local home=`pwd`
|
|
|
|
|
|
|
|
local BTDIR=oct6100_api/apilib/bt
|
|
|
|
local LARGMATHDIR=oct6100_api/apilib/largmath
|
|
|
|
local LLMANDIR=oct6100_api/apilib/llman
|
|
|
|
local OCTAPIDIR=oct6100_api/octdeviceapi/oct6100api/oct6100_api
|
|
|
|
local OCTAPIMIDIR=oct6100_api/octdeviceapi/oct6100api/oct6100_apimi
|
|
|
|
|
|
|
|
if [ $KERN_VER -eq 24 ]; then
|
|
|
|
BTDIR=./
|
|
|
|
LARGMATHDIR=./
|
|
|
|
LLMANDIR=./
|
|
|
|
OCTAPIDIR=./
|
|
|
|
OCTAPIMIDIR=./
|
|
|
|
fi
|
|
|
|
|
|
|
|
local EXTRA_FLAGS="-I. -I$home -I$home/oct6100_api -I$home/oct6100_api/include -I$home/oct6100_api/include -I$home/oct6100_api/include/apilib -I$home/oct6100_api/include/apilib -I$home/oct6100_api/include/octrpc -I$home/oct6100_api/include/oct6100api -I$home/oct6100_api/octdeviceapi/oct6100api -DENABLE_TONE_PLAY "
|
|
|
|
|
|
|
|
|
|
|
|
local files="wanec_iface wanec_cmd wanec_utils wanec_dev $BTDIR/octapi_bt0 $LARGMATHDIR/octapi_largmath $LLMANDIR/octapi_llman $OCTAPIMIDIR/oct6100_mask_interrupts $OCTAPIDIR/oct6100_adpcm_chan $OCTAPIDIR/oct6100_channel $OCTAPIDIR/oct6100_chip_open $OCTAPIDIR/oct6100_chip_stats $OCTAPIDIR/oct6100_conf_bridge $OCTAPIDIR/oct6100_debug $OCTAPIDIR/oct6100_events $OCTAPIDIR/oct6100_interrupts $OCTAPIDIR/oct6100_memory $OCTAPIDIR/oct6100_miscellaneous $OCTAPIDIR/oct6100_mixer $OCTAPIDIR/oct6100_phasing_tsst $OCTAPIDIR/oct6100_playout_buf $OCTAPIDIR/oct6100_remote_debug $OCTAPIDIR/oct6100_tlv $OCTAPIDIR/oct6100_tone_detection $OCTAPIDIR/oct6100_tsi_cnct $OCTAPIDIR/oct6100_tsst $OCTAPIDIR/oct6100_user "
|
|
|
|
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
eval "make SUBDIRS=$PWD clean >> $CMP_BUILD 2>> $CMP_BUILD "
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
if [ $KERN_VER -eq 24 ]; then
|
|
|
|
if [ -e wanectmp ]; then
|
|
|
|
eval "rm -rf wanectmp 2>" /dev/null
|
|
|
|
fi
|
|
|
|
mkdir wanectmp
|
|
|
|
eval "\cp -rf $(find . -name '*.*' | xargs) wanectmp/" > /dev/null
|
|
|
|
cd wanectmp
|
|
|
|
mkdir mod
|
|
|
|
mkdir tmp
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
build_kernel_module wanec "$files" "$EXTRA_FLAGS"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
return $?;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $KERN_VER -eq 24 ]; then
|
|
|
|
cd $home
|
|
|
|
if [ -e wanectmp/mod/wanec.o ]; then
|
|
|
|
eval "\cp -f wanectmp/mod/wanec.o ."
|
|
|
|
fi
|
|
|
|
eval "rm -rf wanectmp"
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2021-12-29 17:02:36 +00:00
|
|
|
function sangoma_64bit_4g_check()
|
|
|
|
{
|
|
|
|
eval "uname -a | grep x86_64" > /dev/null 2> /dev/null
|
|
|
|
if [ $? -ne 0 ] ; then
|
|
|
|
val=`cat /proc/meminfo | grep MemTotal | cut -d':' -f2`
|
|
|
|
tmp=${val// /}
|
|
|
|
b=`expr match "$tmp" '\([0-9]*\)'`
|
|
|
|
morethan4bg=`expr $b \> 4000000`
|
|
|
|
if [ $morethan4bg -eq 1 ]; then
|
|
|
|
#More than 4G of memory
|
|
|
|
return 0;
|
|
|
|
else
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
#not 64bit 4G mode
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
function create_kernel_mod_file()
|
|
|
|
{
|
|
|
|
local file=$1
|
|
|
|
eval "$SOURCEDIR/scripts/mod/modpost -m -i $SOURCEDIR/Module.symvers $file 2> /dev/null 2> /dev/null"
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_kernel_custom_name()
|
|
|
|
{
|
|
|
|
local make_name="fedora2_make"
|
|
|
|
|
|
|
|
if [ ! -f $SOURCEDIR/Makefile ]; then
|
|
|
|
echo "Error: File $SOURCEDIR/Makefile not found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
\cp -f $SOURCEDIR/Makefile /tmp/$make_name
|
|
|
|
|
|
|
|
rc=`cat /tmp/$make_name | awk '{ gsub("custom", "") ; print }' > $SOURCEDIR/Makefile`
|
|
|
|
|
|
|
|
cur_home=`pwd`
|
|
|
|
cd $SOURCEDIR
|
|
|
|
make prepare-all > /dev/null 2> /dev/null
|
|
|
|
echo "Kernel name in $SOURCEDIR/Makefile updated successfully ($?)"
|
|
|
|
cd $cur_home
|
|
|
|
|
|
|
|
echo
|
|
|
|
return 0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function update_fedora2()
|
|
|
|
{
|
|
|
|
local distr
|
|
|
|
local rc
|
|
|
|
local cmd=$1
|
|
|
|
local ver_name="fedora2_version.h"
|
|
|
|
|
|
|
|
if [ ! -f /etc/issue ]; then
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
distr=`cat /etc/issue | grep "(Tettnang)"`
|
|
|
|
|
|
|
|
#If release is not Fedora2 then
|
|
|
|
#get out
|
|
|
|
if [ "$distr" = "" ]; then
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f $SOURCEDIR/include/linux/version.h ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $cmd -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ ! -d /tmp ]; then
|
|
|
|
mkdir /tmp
|
|
|
|
fi
|
|
|
|
|
|
|
|
\cp -f $SOURCEDIR/include/linux/version.h /tmp/$ver_name
|
|
|
|
|
|
|
|
rc=`cat /tmp/$ver_name | awk '{ gsub("132613", "132614") ; print }' > $SOURCEDIR/include/linux/version.h`
|
|
|
|
else
|
|
|
|
if [ -f /tmp/$ver_name ]; then
|
|
|
|
\cp -f /tmp/$ver_name $SOURCEDIR/include/linux/version.h
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
function display_compiled_protocols()
|
2021-12-29 16:56:27 +00:00
|
|
|
{
|
2021-12-29 17:20:30 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $setup_install_quick = "YES" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
return
|
2021-12-29 17:20:30 +00:00
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
|
|
|
echo -e "\n\tSupported WAN Protocols:\n"
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $FR_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- Frame Relay
|
|
|
|
Support for frame relay routing, API, or
|
|
|
|
bridging.
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $CHDLC_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- Cisco HDLC
|
|
|
|
Support for Dual Port Cisco HDLC routing
|
|
|
|
API, and TTY PPP over HDLC Streaming on
|
|
|
|
S514-PCI/S508-ISA cards.
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $PPP_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- PPP
|
|
|
|
Support for PPP routing on S514-PCI/S508-ISA cards.
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $MPPP_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- Multi Protocol Driver
|
|
|
|
Support for kernel RawHDLC/PPP/CHDLC/X25
|
|
|
|
on each Sangoma adapter (S514-PCI/S508-ISE)
|
|
|
|
port PRI and SEC.
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $MFR_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- Multi-Port Frame Relay
|
|
|
|
Support for kernel Frame Relay over HDLC streaming.
|
|
|
|
This protocol can support a frame relay link
|
|
|
|
on each Sangoma port (PRI and SEC) on S514/S508 cards.
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $ANNEXG_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- MP API
|
|
|
|
Support for Kernel LAPB/X25/DSP Protocol Stack.
|
|
|
|
The MP API Stacks can run on both PRI and SEC ports on S514/S508
|
|
|
|
adapters. Furthermore, MP API Stacks can be configured
|
|
|
|
to run on top of MP Frame Relay or MP Protocol drivers.
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $X25_PROT = YES ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- X25
|
|
|
|
Support for X25 routing and API on S514 and S508
|
|
|
|
cards.
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ] ;then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
- API Socket
|
|
|
|
Support for X25, HDLC, CHDLC and Frame Relay API
|
|
|
|
socket development.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
|
|
|
echo
|
|
|
|
|
|
|
|
if [ "$BISYNC_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
- BiSync API
|
|
|
|
Support for MultiPoint Bisync API on S514 and S508
|
|
|
|
cards. Used for connecting to real Bisync network.
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$BSCSTRM_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
- BiSync Streaming API
|
|
|
|
Support for Bisync Streaming API on S514 and S508
|
|
|
|
cards. Used for receiving custom Bisync data via
|
|
|
|
custom APIs.
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$SS7_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- SS7 Level2 API
|
|
|
|
Support for SS7 Level2 API on S514 and S508
|
|
|
|
cards.
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ADSL_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- ADSL Protocol
|
|
|
|
Support for S518 ADSL cards.
|
|
|
|
Protocols: Ethernet over ATM (LLC/VC) (PPPoE)
|
|
|
|
Classical IP over ATM (LLC/VC)
|
|
|
|
PPP over ATM (LLC/VC)
|
|
|
|
Standards: T.413, G.DMT, G.lite ...
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$AFT_TE1_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- AFT TE1 Support
|
|
|
|
Support for AFT TE1 Cards.
|
|
|
|
Protocols: Frame Relay
|
|
|
|
PPP
|
|
|
|
CHDLC
|
|
|
|
API: HDLC (Raw)
|
|
|
|
Transparent Bitstreaming
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$AFT_TE3_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
- AFT TE3 Support
|
|
|
|
Support for AFT TE3 Cards.
|
|
|
|
Protocols: Frame Relay
|
|
|
|
PPP
|
|
|
|
CHDLC
|
|
|
|
API: HDLC (Raw)
|
|
|
|
Transparent Bitstreaming
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$ATM_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- ATM Protocol
|
|
|
|
Support for AFT and S514-(X) T1/E1/V35 cards.
|
|
|
|
Protocols: Ethernet over ATM (AAL5) (LLC/VC) (PPPoE)
|
|
|
|
PPP over ATM (PPPoA) (LLC/VC) AFT Only
|
|
|
|
Classical IP over ATM (LLC/VC)
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$KATM_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- Linux Kernel ATM Stack Protocol
|
|
|
|
Support for AFT T1/E1 cards.
|
|
|
|
Protocols: Kernel ATM Stack over AFT ATM (AAL5)
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$XMTP2_PROT" = "YES" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
- XMTP2 SS7 Protocol
|
|
|
|
Support for LIP XMTP2 AFT cards only.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
|
|
|
|
if [ "$ECHO_MASTER_PROT" = "YES" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
- TDMV Echo Detection and Control (EDAC) Feature
|
|
|
|
Support for A102/A104 TDMV cards.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
2021-12-29 17:20:30 +00:00
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$SDLC_PROT" = "YES" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
- SDLC API Protocol
|
|
|
|
Support for SDLC API protocol on S514/S508 cards.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$EDU_PROT" = "YES" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
- EDU API Protocol
|
|
|
|
Support for Educational Development package over
|
|
|
|
S514/S508 cards.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$BITSTRM_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- BITSTRM Protocol
|
|
|
|
Support for Bitstream Protocol over S514/S508 cards.
|
|
|
|
Bitstream protocol can Tx/Rx data over individual
|
|
|
|
T1/E1 DS0's as well as Tx/Rx raw bit streams.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$POS_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- POS S509/S515 Hardware/Protocol Support
|
|
|
|
Support for Point of Sale (POS) protocol over
|
|
|
|
S515/S509 cards. Point of Sale protocols include I
|
|
|
|
BM 4860, NCR 2126, NCR 1255.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$ADCCP_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- ADCCP Lapb API Protocol Support
|
|
|
|
Support for ADCCP Lapb API protocol over
|
|
|
|
S514/S508 Cards.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
2021-12-29 17:20:30 +00:00
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$ASYHDLC_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- Async HDLC API Protocol Support
|
|
|
|
Support for Async HDLC support over S514/S508 Cards.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$TDM_PROT" = "YES" ]; then
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
|
|
|
- TDM Voice Hardware Support for Asterisk PBX Software
|
|
|
|
Hardware Support for Asterisk PBX Software over
|
|
|
|
AFT T1/E1 Cards.
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$XDLC_PROT" = "YES" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
- XDLC API Support
|
|
|
|
LIP XDLC Support
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
fi
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function select_compilation_mode()
|
|
|
|
{
|
|
|
|
banner
|
|
|
|
local response=
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_GENERIC "
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$PROTS" != "" ]; then
|
|
|
|
#User has already selected protocols on command line
|
|
|
|
return;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
cat << ENDOFTEXT
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
Please Select Compilation Mode
|
|
|
|
|
|
|
|
1. WAN Protocols Support
|
|
|
|
Protocols: Frame Relay, CHDLC, PPP, ATM, X25, ADSL, TDM API
|
|
|
|
Default for: Wan Routing, Data & Voice API devel.
|
|
|
|
|
|
|
|
2. TDM Voice (Zaptel) Support
|
|
|
|
Protocols: TDMV (Zaptel), TDM API on AFT adatpers.
|
|
|
|
Default for: Asterisk & CallWeaver
|
|
|
|
|
|
|
|
3. TDM Voice (Zaptel) + WAN Protocol Support
|
|
|
|
|
|
|
|
4. SMG (SS7) (Default for Asterisk SMG/SS7 install)
|
|
|
|
|
|
|
|
5. SMG (SS7) + TDM Voice (Zaptel)
|
|
|
|
Default for: Asterisk SS7 + PRI
|
|
|
|
|
|
|
|
6. SMG (BRI) (Default for Asterisk SMG/BRI install)
|
|
|
|
|
|
|
|
7. SMG (BRI) + TDM Voice (Zaptel)
|
|
|
|
Default for: Asterisk BRI + PRI + Analog
|
|
|
|
|
|
|
|
8. TDM API
|
|
|
|
Protocols: TDM API on AFT adapters:
|
|
|
|
Default for: FreeSwitch, Yate, Sunrise
|
|
|
|
Custom voice development
|
|
|
|
|
|
|
|
9. Custom Compilation Mode
|
|
|
|
Specify protocols to be added into the WANPIPE
|
|
|
|
kernel drivers.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
echo -n "Please select (1,2,3,4,5,6,7,8 or 9) [Default: 1]: "
|
|
|
|
|
|
|
|
if [ -z $NONINTERACTIVE ]; then
|
|
|
|
|
|
|
|
|
|
|
|
read response
|
|
|
|
|
|
|
|
#if [ -z $response ]; then
|
|
|
|
# response=1
|
|
|
|
#fi
|
|
|
|
|
|
|
|
if [ "$response" -eq 1 ]; then
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS
|
|
|
|
|
|
|
|
elif [ "$response" -eq 2 ]; then
|
|
|
|
enable_protocols "TDM"
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
LIP_PROT=NO
|
|
|
|
LIP_LOAD=NO
|
|
|
|
|
|
|
|
elif [ "$response" -eq 3 ]; then
|
|
|
|
enable_protocols "TDM"
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS
|
|
|
|
|
|
|
|
elif [ "$response" -eq 4 ]; then
|
|
|
|
enable_protocols "XMTP2"
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
|
|
|
|
elif [ "$response" -eq 5 ]; then
|
|
|
|
enable_protocols "TDM"
|
|
|
|
enable_protocols "XMTP2"
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
|
|
|
|
elif [ "$response" -eq 6 ]; then
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
SSMG_BRI=YES
|
|
|
|
|
|
|
|
elif [ "$response" -eq 7 ]; then
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
enable_protocols "TDM"
|
|
|
|
SSMG_BRI=YES
|
|
|
|
|
2021-12-29 17:21:41 +00:00
|
|
|
elif [ "$response" -eq 8 ]; then
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
elif [ "$response" -eq 9 ]; then
|
|
|
|
enable_custom_protocols
|
|
|
|
else
|
|
|
|
select_compilation_mode
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
2021-12-29 17:20:30 +00:00
|
|
|
else
|
|
|
|
if [ "$PROTS" = "" ]; then
|
|
|
|
if [ $zaptel_auto_install = "YES" ]; then
|
|
|
|
enable_protocols "TDM"
|
|
|
|
enable_protocols "AFT_TE1"
|
|
|
|
LIP_PROT=NO
|
|
|
|
LIP_LOAD=NO
|
|
|
|
else
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
function makefile_function ()
|
|
|
|
{
|
|
|
|
echo "$1" >> Makefile
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function compile_drivers ()
|
|
|
|
{
|
|
|
|
|
|
|
|
banner
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
WANPIPE (LITE) KERNEL DRIVER COMPILATION
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
The next step in WANPIPE (LITE) installation involves compiling
|
|
|
|
WANPIPE (LITE) kernel module.
|
|
|
|
|
|
|
|
Therefore, NO kernel recompilation is required :)
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
WANPIPE (LITE) driver attaches to kernel WAN stacks:
|
|
|
|
* Frame Relay
|
|
|
|
* PPP
|
|
|
|
* Cisco HDLC
|
|
|
|
|
|
|
|
Refer to the wanpipe_lite_manual.(pdf/txt) documentation.
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
else
|
|
|
|
cat << ENDOFTEXT
|
|
|
|
WANPIPE KERNEL DRIVER COMPILATION
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
The next step in WANPIPE installation involves compiling
|
|
|
|
WANPIPE kernel modules.
|
|
|
|
|
|
|
|
This script will compile and install WANPIPE modules
|
|
|
|
into the currently running linux kernel.
|
|
|
|
|
|
|
|
For greater customization you will be prompted to
|
|
|
|
select which Protocol/Drivers you would like to
|
|
|
|
build into the WANPIPE kernel modules.
|
|
|
|
|
|
|
|
Wanpipe for Asterisk/Zaptel
|
|
|
|
Default for Asterisk/Zaptel
|
|
|
|
Wanpipe for Wan Routing/API
|
|
|
|
Default for Wan/IP Routing and Data API
|
|
|
|
Wanpipe for Asterisk SMG/SS7
|
|
|
|
Default for Asterisk SS7
|
|
|
|
Wanpipe for TDM API
|
|
|
|
Default for FreeSwitch and Voice API
|
|
|
|
|
|
|
|
Custom Compilation:
|
|
|
|
------------------
|
|
|
|
Customise WANPIPE driver compilation to add only the
|
|
|
|
protocols that you need. This way one can reduce
|
|
|
|
the size of the WANPIPE kernel drivers.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
Refer to http://wiki.sangoma.com for more info
|
2021-12-29 16:56:27 +00:00
|
|
|
ENDOFTEXT
|
2021-12-29 17:20:30 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d "$DRIVER_TMP_DIR" ]; then
|
|
|
|
rm -rf $DRIVER_TMP_DIR
|
|
|
|
fi
|
|
|
|
|
|
|
|
\mkdir "$DRIVER_TMP_DIR"
|
|
|
|
\mkdir "$DRIVER_TMP_DIR/mod"
|
|
|
|
\mkdir "$DRIVER_TMP_DIR/tmp"
|
|
|
|
|
|
|
|
get_kernel_ver $SOURCEDIR
|
|
|
|
if [ $? -eq 1 ]; then
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
2021-12-29 17:20:30 +00:00
|
|
|
getyn "Proceed to build ${DISTR_NAME} kernel modules ? [y]" || return 0;
|
|
|
|
|
|
|
|
if [ ! -d $DRIVER_TMP_DIR ]; then
|
|
|
|
eval "\mkdir -p $DRIVER_TMP_DIR > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "ERROR: Failed to create $DRIVER_TMP_DIR directory!!!"
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
ANNEXG_LOAD=NO
|
|
|
|
|
|
|
|
check_gcc
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
echo -e "\n\tWarning: Wanpipe package requires C development tools to complete
|
|
|
|
the installation. Please install development package
|
|
|
|
before proceeding. GCC/KGCC/CC compiler not found!"
|
|
|
|
return 1
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ ! -f $SOURCEDIR/.config ] && [ -d $SOURCEDIR/configs ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
tmp_k_ver="$KVER"."$KPATCH"."$KLVL"
|
|
|
|
tmp_k_arch=`uname -m`
|
|
|
|
tmp_smp=`uname -a | grep SMP`
|
|
|
|
if [ ! -z $tmp_smp ]; then
|
|
|
|
tmp_config_file="kernel-$tmp_k_ver-$tmp_k_arch-smp.config"
|
|
|
|
else
|
|
|
|
tmp_config_file="kernel-$tmp_k_ver-$tmp_k_arch.config"
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ -f $SOURCEDIR/configs/$tmp_config_file ] && ! test $NONINTERACTIVE; then
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
echo
|
|
|
|
echo " Warning:"
|
|
|
|
echo " The Linux source in $SOURCEDIR doesn't have a .config"
|
|
|
|
echo " file."
|
|
|
|
echo
|
|
|
|
echo " Would you like me to configure the Linux source based"
|
|
|
|
echo " on the currently running Linux image: $KERNEL_UNAME"
|
|
|
|
echo
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
getyn " Configure the Linux source for $KERNEL_UNAME ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
tmp_home=`pwd`
|
|
|
|
cd $SOURCEDIR
|
|
|
|
\cp -f $SOURCEDIR/configs/$tmp_config_file $SOURCEDIR/.config
|
|
|
|
eval "make oldconfig_nonint > /dev/null 2> /dev/null"
|
|
|
|
if [ $KERN_VER -eq 26 ]; then
|
|
|
|
eval "make prepare0 > /dev/null 2> /dev/null"
|
|
|
|
fi
|
|
|
|
cd $tmp_home
|
|
|
|
echo
|
|
|
|
echo " Linux source config completed successfuly"
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ ! -d $SOURCEDIR/include/asm ] || [ ! -f $SOURCEDIR/include/linux/autoconf.h ]; then
|
|
|
|
echo -e "\n"
|
|
|
|
echo "ERROR: The $SOURCEDIR contains a fresh, unconfigured kernel!"
|
|
|
|
echo ""
|
|
|
|
echo " If you already have a working kernel image, a"
|
|
|
|
echo " simple kernel configuration can solve this problem"
|
|
|
|
echo " In linux source dirctory run: "
|
|
|
|
echo
|
|
|
|
echo " make dep modules"
|
|
|
|
echo
|
|
|
|
echo " Then retry the Setup script !!"
|
|
|
|
echo ""
|
|
|
|
echo " If you are still expriencing problems please contact"
|
|
|
|
echo " Sangoma Tech Support"
|
|
|
|
pause
|
|
|
|
return 1
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
# if [ $KERN_VER -ne 26 ] && [ ! -f $SOURCEDIR/include/linux/modversions.h ]; then
|
|
|
|
# echo -e "\n"
|
|
|
|
# echo "ERROR: The $SOURCEDIR contains a fresh, unconfigured kernel!"
|
|
|
|
# echo
|
|
|
|
# echo " If you already have a working kernel image, a"
|
|
|
|
# echo " simple kernel configuration can solve this problem"
|
|
|
|
# echo " In linux source dirctory run: "
|
|
|
|
# echo
|
|
|
|
# echo " make dep modules"
|
|
|
|
# echo
|
|
|
|
# echo " Then retry the Setup script !!"
|
|
|
|
# echo
|
|
|
|
# echo " If you are still expriencing problems please contact"
|
|
|
|
# echo " Sangoma Tech Support"
|
|
|
|
# pause
|
|
|
|
# return 1
|
|
|
|
# fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
eval "grep \"define *CONFIG_WAN_ROUTER *1\" $SOURCEDIR/include/linux/autoconf.h > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "\n"
|
|
|
|
echo "ERROR: The ${DISTR_NAME} drivers in $SOURCEDIR have been"
|
|
|
|
echo " configured/compiled into the kernel."
|
|
|
|
echo " It's usually recommended that drivers be compiled"
|
|
|
|
echo " as modules."
|
|
|
|
echo
|
|
|
|
echo " Please contact Sangoma Tech Support"
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
return 1
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
eval "grep \"define *CONFIG_MODVERSIONS\" $SOURCEDIR/include/linux/autoconf.h > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $KERN_VER -ne 26 ]; then
|
|
|
|
MODVER=" -DMODVERSIONS -include $SOURCEDIR/include/linux/modversions.h "
|
|
|
|
fi
|
|
|
|
MOD_ENABLED=y
|
|
|
|
else
|
|
|
|
MODVER=""
|
|
|
|
MOD_ENALBED=n
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
cd $DRIVER_TMP_DIR
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
#Copy the WANPIPE device drivers
|
|
|
|
#into a temporary directory
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
eval "\cp -f $DRIVER_UPDATE_DIR/src/net/* . >/dev/null 2>/dev/null"
|
|
|
|
eval "\cp -f $DRIVER_UPDATE_DIR/src/wanrouter/* .>/dev/null 2>/dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
eval "\cp -f $PROD_HOME/kbuild/Makefile . >/dev/null 2>/dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
for file in $DRIVERS_MOD_LIST
|
|
|
|
do
|
|
|
|
eval "\cp $DRIVER_UPDATE_DIR/src/net/$file . >/dev/null 2>/dev/null"
|
|
|
|
done
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
update_redhat_as 0
|
|
|
|
update_fedora2 0
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
select_compilation_mode
|
|
|
|
|
|
|
|
display_compiled_protocols
|
|
|
|
|
|
|
|
#Disply all supported protocols that will be compiled
|
|
|
|
#into the driver.
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if test -z $NONINTERACTIVE; then
|
2021-12-29 17:03:37 +00:00
|
|
|
if [ -e $SOURCEDIR/include/config/kernel.release ]; then
|
|
|
|
KERNEL_VERSION=`cat $SOURCEDIR/include/config/kernel.release`
|
|
|
|
echo "Source kernel name:$KERNEL_VERSION"
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $KERNEL_VERSION != $KERNEL_UNAME ]; then
|
|
|
|
echo
|
|
|
|
echo -e "WARNING: Module installation dir mismatch!"
|
|
|
|
echo -e " Linux source name = $KERNEL_VERSION"
|
|
|
|
echo -e " Current image name = $KERNEL_UNAME"
|
|
|
|
echo
|
|
|
|
echo -e " If you are building wanpipe modules for the"
|
|
|
|
echo -e " currently running image, use the $KERNEL_UNAME"
|
|
|
|
echo -e " directory (i.e. select 'y') "
|
|
|
|
echo
|
2021-12-29 16:57:21 +00:00
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
getyn "Install modules for current image: $KERNEL_UNAME ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
KERNEL_VERSION=$KERNEL_UNAME;
|
|
|
|
|
|
|
|
is_distr_fedora2
|
|
|
|
if [ $? -eq 1 ]; then
|
|
|
|
echo
|
|
|
|
echo -e " Fedora2 Update: "
|
|
|
|
echo -e " In order to compile for the current kernel"
|
|
|
|
echo -e " The word 'custom' must be taken out of the"
|
|
|
|
echo -e " $SOURCEDIR/Makefile"
|
|
|
|
echo -e " Then in $SOURCEDIR/ run 'make prepare-all'"
|
|
|
|
echo
|
|
|
|
getyn "Would you like us to do it for you ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
update_kernel_custom_name
|
|
|
|
update_fedora2 0
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Auto configuration failed!"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "Proceed to make above changes manually!"
|
|
|
|
echo "Then restart the ./Setup process"
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo "Proceed to make above changes manually!"
|
|
|
|
echo "Then restart the ./Setup process"
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
echo "Installing modules for kernel: $KERNEL_VERSION !"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $ANNEXG_PROT = "YES" ]; then
|
|
|
|
cp -f $DRIVER_UPDATE_DIR/include/annexg/*.h .
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo -n "Checking for SMP support ..."
|
|
|
|
eval "grep \"CONFIG_SMP *1\" $SOURCEDIR/include/linux/autoconf.h > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Enabled.\n"
|
|
|
|
CONFIG_SMP=YES;
|
2021-12-29 16:59:00 +00:00
|
|
|
elif [ $FORCE_SMP ] && [ $FORCE_SMP=YES ]; then
|
|
|
|
echo -e "Forced.\n"
|
|
|
|
CONFIG_SMP=YES;
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
|
|
|
echo -e "Disabled.\n"
|
2021-12-29 16:57:21 +00:00
|
|
|
eval "uname -a |grep SMP > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo
|
|
|
|
echo " Warning: Current image is configured for SMP"
|
2021-12-29 16:59:00 +00:00
|
|
|
getyn " Would you like to proceed with installation?"
|
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 16:57:21 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
CONFIG_SMP=NO;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:03:21 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
#Find out our processor type. This is needed to properly
|
|
|
|
#compile our modules.
|
|
|
|
echo -n "Checking current processor type ..."
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ -e $SOURCEDIR/include/linux/autoconf.h ]; then
|
|
|
|
grep "CONFIG_ARCH \"" $SOURCEDIR/include/linux/autoconf.h > /dev/null
|
|
|
|
if [ $? -eq 0 ] ; then
|
|
|
|
ARCH=`grep "CONFIG_ARCH \"" $SOURCEDIR/include/linux/autoconf.h | cut -d '"' -f2`
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ -z $ARCH ]; then
|
|
|
|
ARCH=`uname -m`
|
|
|
|
fi
|
|
|
|
echo -e "$ARCH\n"
|
|
|
|
|
|
|
|
LD_ELF=
|
|
|
|
|
|
|
|
case $ARCH in
|
|
|
|
|
|
|
|
x86_64*) LD_ELF="-m elf_x86_64"
|
|
|
|
;;
|
|
|
|
ia64*) LD_ELF=" -T $SOURCEDIR/arch/ia64/module.lds "
|
|
|
|
;;
|
|
|
|
i686*) LD_ELF="-m elf_i386"
|
|
|
|
;;
|
|
|
|
i586*) ARCH=i386
|
|
|
|
LD_ELF="-m elf_i386"
|
|
|
|
;;
|
|
|
|
i486*) ARCH=i386
|
|
|
|
LD_ELF="-m elf_i386"
|
|
|
|
;;
|
|
|
|
i386*) LD_ELF="-m elf_i386"
|
|
|
|
;;
|
2021-12-29 16:59:00 +00:00
|
|
|
ppc*)
|
|
|
|
;;
|
2021-12-29 16:56:27 +00:00
|
|
|
*)
|
|
|
|
echo "Error: Unsuppored architecture type $ARCH!"
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
|
|
|
|
REGPARM_OPT=""
|
|
|
|
|
|
|
|
if [ "$USER_CFLAGS" != "" ]; then
|
|
|
|
echo
|
|
|
|
echo "Appending User CFLAGS: $USER_CFLAGS"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
wan_kernel_version_conflict_fix
|
|
|
|
|
|
|
|
if [ "$USE_CFLAGS" != "" ]; then
|
|
|
|
echo
|
|
|
|
echo "Compiling with user CFLAGS: $USE_CFLAGS"
|
|
|
|
echo
|
|
|
|
CFLAGS=$USE_CFLAGS;
|
|
|
|
fi
|
|
|
|
|
|
|
|
#Setup the COMPILATOIN FLAGS depending on the kernel type
|
|
|
|
if [ $KERN_VER -eq 26 ]; then
|
|
|
|
if [ "$USE_CFLAGS" = "" ]; then
|
|
|
|
CFLAGS="$CC -Wp,-MD,.wanpipe.o.d -nostdinc -iwithprefix include -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -DMODULE $CFLAGS"
|
|
|
|
wan_get_kernel_flags
|
|
|
|
CFLAGS="$CFLAGS $CFLAGS_EXTRA"
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
check_inode_struct
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ 1 -eq 1 ]; then
|
|
|
|
echo
|
|
|
|
echo "--------------------------------------------------"
|
|
|
|
echo "CFLAGS: $CFLAGS"
|
|
|
|
echo "--------------------------------------------------"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -n "Checking for REGPARM kernel option ..."
|
|
|
|
eval "grep \"define *CONFIG_REGPARM *1\" $SOURCEDIR/include/linux/autoconf.h > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Enabled.\n"
|
|
|
|
REGPARM_OPT=".regparm"
|
|
|
|
else
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
#Taken from kernel Makefile
|
|
|
|
SUBARCH=$( uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
|
|
|
|
-e s/arm.*/arm/ -e s/sa110/arm/ \
|
|
|
|
-e s/s390x/s390/ -e s/parisc64/parisc/ \
|
|
|
|
-e s/ppc.*/powerpc/ -e s/mips.*/mips/ )
|
|
|
|
|
2021-12-29 17:16:17 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
#New way of checking REGPARM because its enabled
|
|
|
|
#by default on 2.6.20 kernel and up
|
|
|
|
if [ $SUBARCH != "" ]; then
|
|
|
|
eval "grep \"CFLAGS.*=.*-pipe.*regparm\" $SOURCEDIR/arch/$SUBARCH/Makefile" > /dev/null 2> /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Enabled.\n"
|
|
|
|
REGPARM_OPT=".regparm"
|
|
|
|
else
|
|
|
|
echo -e "Disabled.\n"
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo -e "Disabled.\n"
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:03:21 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
echo -n "Compiling General ${DISTR_NAME} Driver for 2.6.X Kernel ."
|
|
|
|
|
|
|
|
|
|
|
|
elif [ $KERN_VER -eq 24 ]; then
|
|
|
|
echo -n "Compiling General ${DISTR_NAME} Driver for 2.4.X Kernel ."
|
|
|
|
|
|
|
|
if [ "$USE_CFLAGS" = "" ]; then
|
|
|
|
|
|
|
|
case $ARCH in
|
|
|
|
|
|
|
|
x86_64*)
|
|
|
|
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Wno-unused -fomit-frame-pointer -mno-red-zone -mcmodel=kernel -pipe -fno-reorder-blocks -finline-limit=2000 -fno-strength-reduce -fno-asynchronous-unwind-tables -nostdinc -iwithprefix include -DMODULE -DEXPORT_SYMTAB"
|
|
|
|
;;
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
*)
|
|
|
|
if [ $KLVL -lt 32 ]; then
|
|
|
|
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -march=$ARCH -DMODULE -DEXPORT_SYMTAB"
|
|
|
|
else
|
|
|
|
CFLAGS="$CC -D__LINUX__ -Dlinux -D__KERNEL__ -I$SOURCEDIR/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -fomit-frame-pointer -pipe -mpreferred-stack-boundary=2 -march=$ARCH -fno-unit-at-a-time -DMODULE -nostdinc -iwithprefix include -DMODULE -DEXPORT_SYMTAB"
|
2021-12-29 16:57:51 +00:00
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
#Old gcc do not have this option, thus we must check for it.
|
|
|
|
eval "$CC -mpreferred-stack-boundary=2 -S -o /dev/null \
|
|
|
|
-xc /dev/null >/dev/null 2>&1"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
CFLAGS=$CFLAGS" -mpreferred-stack-boundary=2 "
|
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
;;
|
2021-12-29 16:57:21 +00:00
|
|
|
esac
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "ERROR: Unsupported Kernel Version $(uname -r)"
|
|
|
|
pause
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $CONFIG_SMP = YES -a $KERN_VER -eq 22 ]; then
|
|
|
|
CFLAGS=$CFLAGS" -D__SMP__"
|
|
|
|
fi
|
|
|
|
|
|
|
|
CFLAGS="$CFLAGS $MODVER"
|
|
|
|
|
|
|
|
if [ "$TDM_PROT" = "YES" ]; then
|
|
|
|
CFLAGS="$CFLAGS $ASTERISK_IFLAGS"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$USER_CFLAGS" != "" ]; then
|
|
|
|
CFLAGS="$CFLAGS $USER_CFLAGS"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
flag=`grep "cisco_proto" $SOURCEDIR/include/linux/if.h 2> /dev/null`
|
|
|
|
if [ -z "$flag" ]; then
|
|
|
|
CFLAGS=$CFLAGS" -DOLD_IFSETTINGS_STRUCT"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ -d "$DRIVER_UPDATE_DIR/wanec" ]; then
|
|
|
|
PROTOCOL_DEFINES=$PROTOCOL_DEFINES" -DCONFIG_WANPIPE_HWEC "
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
#Compile all individual protocols first
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=wanpipe_main -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/wanpipe_main.o wanpipe_main.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=wanpipe_hdlc -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/wanpipe_hdlc.o wanpipe_hdlc.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=wanpipe_linux_iface -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/wanpipe_linux_iface.o wanpipe_linux_iface.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_56k -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/sdla_56k.o sdla_56k.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_te1 -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/sdla_te1.o sdla_te1.c"
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_8te1 -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/sdla_8te1.o sdla_8te1.c"
|
2021-12-29 16:56:27 +00:00
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_te3 -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/sdla_te3.o sdla_te3.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=wanpipe_utils -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/wanpipe_utils.o wanpipe_utils.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_abstr -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/wanpipe_abstr.o wanpipe_abstr.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdladrv -DKBUILD_MODNAME=wanpipe_lite \
|
2021-12-29 17:18:25 +00:00
|
|
|
-c -o tmp/sdladrv.o sdladrv.c sdladrv_fe.c sdladrv_utils.c"
|
2021-12-29 16:56:27 +00:00
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_xilinx -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/sdla_xilinx.o sdla_xilinx.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=sdla_aft_te1 -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/sdla_aft_te1.o sdla_aft_te1.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=aft_a104 -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/aft_a104.o aft_a104.c"
|
|
|
|
eval "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=aft_analog -DKBUILD_MODNAME=wanpipe_lite \
|
|
|
|
-c -o tmp/aft_analog.o aft_analog.c"
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
fi
|
|
|
|
|
|
|
|
MEXT=o
|
|
|
|
if [ $KERN_VER -eq 26 ]; then
|
|
|
|
MEXT=ko
|
|
|
|
fi
|
|
|
|
eval "ld $LD_ELF -r -o mod/wanpipe_lite.$MEXT tmp/wanpipe_main.o tmp/wanpipe_hdlc.o \
|
2021-12-29 16:59:00 +00:00
|
|
|
tmp/wanpipe_linux_iface.o tmp/sdla_te1.o tmp/sdla_8te1.o tmp/sdla_te3.o tmp/sdla_56k.o \
|
2021-12-29 16:56:27 +00:00
|
|
|
tmp/wanpipe_utils.o tmp/wanpipe_abstr.o tmp/sdla_xilinx.o tmp/sdla_aft_te1.o \
|
2021-12-29 16:59:00 +00:00
|
|
|
tmp/sdladrv.o tmp/aft_a104.o tmp/aft_analog.o "
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
install -D -m 644 mod/wanpipe_lite.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_lite.$MEXT
|
|
|
|
|
|
|
|
# End of LITE
|
|
|
|
else
|
|
|
|
|
|
|
|
if [ 0 -eq 1 ]; then
|
|
|
|
echo
|
|
|
|
echo "ALLFLAGS"
|
|
|
|
echo "--------------------------------------------------"
|
|
|
|
echo "$CFLAGS"
|
|
|
|
echo "--------------------------------------------------"
|
|
|
|
echo
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ 0 -eq 1 ]; then
|
|
|
|
echo
|
|
|
|
echo "---------------------------------"
|
|
|
|
echo "$CFLAGS $PROTOCOL_DEFINES -DKBUILD_BASENAME=wanmain -DKBUILD_MODNAME=wanrouter -c -o tmp/wanmain.o wanmain.c"
|
|
|
|
echo "---------------------------------"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT > $PROD_HOME/Compile_Setup.sh
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
#!/bin/sh
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ -e kdrvcmp ]; then
|
|
|
|
rm -rf kdrvcmp
|
|
|
|
fi
|
|
|
|
|
|
|
|
mkdir kdrvcmp
|
|
|
|
cd kdrvcmp
|
|
|
|
ln -s . common
|
|
|
|
ln -s . modinfo
|
|
|
|
mkdir tmp
|
|
|
|
mkdir mod
|
|
|
|
|
|
|
|
cp -f ../patches/kdrivers/src/net/* .
|
|
|
|
cp -f ../patches/kdrivers/src/wanrouter/* .
|
|
|
|
cp -f ../patches/kdrivers/src/lip/* .
|
|
|
|
cp -f ../patches/kdrivers/src/lip/bin/* .
|
|
|
|
cp -rf ../patches/kdrivers/include/* /usr/src/linux/include/linux
|
|
|
|
cp -rf ../patches/kdrivers/include/* /usr/include/linux
|
|
|
|
cp -f ../samples/Makefile .
|
|
|
|
cp -f ../Compile.sh .
|
|
|
|
|
|
|
|
chmod 755 Compile.sh
|
|
|
|
|
|
|
|
cd ..
|
|
|
|
|
|
|
|
echo "Compile Environmet Setup"
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
|
|
|
|
tmp=${CFLAGS/$CC/}
|
|
|
|
cat <<ENDOFTEXT > $PROD_HOME/Compile.sh
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
#!/bin/sh
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
make CFLAGS="$tmp" PROTOCOL_DEFINES="$PROTOCOL_DEFINES"
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
tmp=${CFLAGS/$CC/}
|
|
|
|
cat <<ENDOFTEXT > $PROD_HOME/GCFLAGS
|
|
|
|
$tmp $PROTOCOL_DEFINES
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
|
|
|
|
EVALCMD=eval
|
|
|
|
WANPIPE_OBJS=
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
rm -f sdladrv_src.c
|
2021-12-29 16:56:27 +00:00
|
|
|
ln -s sdladrv.c sdladrv_src.c
|
2021-12-29 17:18:25 +00:00
|
|
|
build_kernel_module sdladrv "sdladrv_src sdladrv_fe sdladrv_utils"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
build_kernel_module wanrouter "wanmain wanproc waniface"
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
AF_EXTRA_FLAGS="-DCONFIG_PRODUCT_WANPIPE_SOCK_DATASCOPE"
|
|
|
|
check_for_af_wanpipe_updates
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
rm -f af_wanpipe_src.c
|
2021-12-29 16:56:27 +00:00
|
|
|
ln -s af_wanpipe.c af_wanpipe_src.c
|
2021-12-29 16:57:21 +00:00
|
|
|
build_kernel_module af_wanpipe "af_wanpipe_src af_wanpipe_datascope" "$AF_EXTRA_FLAGS"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
echo -n "."
|
|
|
|
|
|
|
|
if [ "$FR_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_fr "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$CHDLC_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_chdlc "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$PPP_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_ppp "
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -n "."
|
|
|
|
|
|
|
|
if [ "$X25_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_x25 "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$MPPP_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"wanpipe_multppp "
|
|
|
|
SYNCPPP_PROT=YES
|
|
|
|
fi
|
|
|
|
if [ "$MFR_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_mp_fr "
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$ANNEXG_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
#ANNEXG_X25_FLAGS="-DX25_SW -DX25_SWITCH_DEFAULT_API "
|
|
|
|
ANNEXG_X25_FLAGS=" "
|
|
|
|
|
|
|
|
for file in $DRIVERS_MPAPI_X25
|
|
|
|
do
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/annexg/$file .
|
|
|
|
done
|
|
|
|
for file in $DRIVERS_MPAPI_LAPB
|
|
|
|
do
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/annexg/$file .
|
|
|
|
done
|
|
|
|
for file in $DRIVERS_MPAPI_DSP
|
|
|
|
do
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/annexg/$file .
|
|
|
|
done
|
|
|
|
for file in $DRIVERS_MPAPI_MOD_FILES
|
|
|
|
do
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/annexg/$file .
|
|
|
|
done
|
|
|
|
|
|
|
|
build_kernel_module wanpipe_lapb "lapb_iface lapb_in lapb_out lapb_proc lapb_subr lapb_timer lapb_x25_iface"
|
|
|
|
|
|
|
|
build_kernel_module wanpipe_x25 "x25_api_iface x25_dsp_iface x25_facils x25_iface x25_in x25_out x25_proc x25_subr x25_switch x25_timer x25_utils"
|
|
|
|
|
|
|
|
|
|
|
|
build_kernel_module wanpipe_dsp "dsp_api_iface dsp_iface dsp_in dsp_out dsp_proc dsp_subr dsp_timer "
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$SS7_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_ss7.c .
|
|
|
|
if [ "$SS7_USER_ID" = "" ]; then
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
echo
|
|
|
|
echo "ERROR: SS7 User ID must be suppiled!"
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_ss7 "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$EDU_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_edu.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_edu "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$BISYNC_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_bsc.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_bsc "
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$BSCSTRM_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_bscstrm.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_bscstrm "
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -n "."
|
|
|
|
|
|
|
|
if [ "$BITSTRM_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_bitstrm.c .
|
|
|
|
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_bitstrm "
|
|
|
|
SYNCPPP_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ADSL_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_adsl.c .
|
|
|
|
|
|
|
|
adsl_file=wanpipe_adsl.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ ! -e $DRIVER_UPDATE_DIR/src/bin/$adsl_file ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "Warning: ADSL Binary $adsl_file not found!"
|
|
|
|
echo "Using wanpipe_adsl.gcc3.i386.o"
|
|
|
|
adsl_file=wanpipe_adsl.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
\cp $DRIVER_UPDATE_DIR/src/bin/$adsl_file tmp/wanpipe_adsl.o
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/bin/$adsl_file wanpipe_adsl.o
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_adsl "
|
|
|
|
WANPIPE_BIN_OBJS=$WANPIPE_BIN_OBJS"wanpipe_adsl.o "
|
|
|
|
SYNCPPP_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ATM_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_atm.c .
|
|
|
|
|
|
|
|
atm_file=wanpipe_atm.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ ! -e $DRIVER_UPDATE_DIR/src/bin/$atm_file ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "Warning: ATM Binary $atm_file not found!"
|
|
|
|
echo "Using wanpipe_atm.gcc3.i386.o"
|
|
|
|
atm_file=wanpipe_atm.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
\cp $DRIVER_UPDATE_DIR/src/bin/$atm_file tmp/wanpipe_atm.o
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/bin/$atm_file wanpipe_atm.o
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_atm "
|
|
|
|
WANPIPE_BIN_OBJS=$WANPIPE_BIN_OBJS"wanpipe_atm.o "
|
|
|
|
|
|
|
|
SYNCPPP_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ECHO_MASTER_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
echo_file=wanpipe_edac.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ ! -e $DRIVER_UPDATE_DIR/src/bin/$echo_file ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "Warning: ECHO MASTER Binary $echo_file not found!"
|
|
|
|
echo "Using wanpipe_edac.gcc3.i386.o"
|
|
|
|
echo_file=wanpipe_edac.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_edac.c .
|
2021-12-29 16:59:00 +00:00
|
|
|
\cp $DRIVER_UPDATE_DIR/src/bin/$echo_file tmp/wanpipe_edac.o
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/bin/$echo_file wanpipe_edac.o
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_edac "
|
|
|
|
WANPIPE_BIN_OBJS=$WANPIPE_BIN_OBJS"wanpipe_edac.o "
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$SDLC_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_sdlc.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_sdlc "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$POS_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_pos.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_pos "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ADCCP_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_adccp.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_adccp "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ASYHDLC_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_asyhdlc.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_asyhdlc "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$TDM_PROT" = "YES" ]; then
|
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_tdmv.c .
|
2021-12-29 16:59:00 +00:00
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_remora_tdmv.c .
|
2021-12-29 17:18:25 +00:00
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_bri_tdmv.c .
|
2021-12-29 17:19:00 +00:00
|
|
|
\cp $DRIVER_UPDATE_DIR/src/net/sdla_tdmv_dummy.c .
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_tdmv sdla_remora_tdmv sdla_bri_tdmv sdla_tdmv_dummy "
|
2021-12-29 17:15:08 +00:00
|
|
|
WANPIPE_EXTRA_CFLAGS=$WANPIPE_EXTRA_CFLAGS"-I$ZAPTEL_SOURCE_DIR "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$AFT_TE1_PROT" = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_xilinx sdla_aft_te1 aft_a104 sdla_remora aft_analog "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ "$AFT_BRI_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_bri aft_bri "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$AFT_SERIAL_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_serial "
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$AFT_TE3_PROT" = "YES" ]; then
|
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_aft_te3 "
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$SYNCPPP_PROT" = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
rm -f wanpipe_syncppp_src.c
|
2021-12-29 16:56:27 +00:00
|
|
|
ln -s wanpipe_syncppp.c wanpipe_syncppp_src.c
|
|
|
|
build_kernel_module wanpipe_syncppp wanpipe_syncppp_src
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo -n "."
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdla_56k sdla_te1 sdla_8te1 sdla_te3 sdla_ft1 wanpipe_utils wanpipe_abstr wanpipe_linux_iface "
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$WAN_FRM_UPDATE_DRIVER" = "YES" ] &&
|
|
|
|
[ -d "$DRIVER_UPDATE_DIR/src/wan_aften" ]; then
|
|
|
|
|
|
|
|
echo
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/wan_aften/*.c .
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/wan_aften/*.h .
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
rm -f wan_aften_src.c
|
2021-12-29 16:56:27 +00:00
|
|
|
ln -s wan_aften.c wan_aften_src.c
|
|
|
|
build_kernel_module wan_aften "wan_aften_src wanpipe_linux_iface"
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ -d "$DRIVER_UPDATE_DIR/wanec" ]; then
|
|
|
|
|
|
|
|
home_tmp=`pwd`
|
|
|
|
cd $DRIVER_UPDATE_DIR/wanec
|
|
|
|
\cp -f $PROD_HOME/kbuild/Makefile.wanec Makefile
|
|
|
|
build_wanec_module
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "WAN HWEC module enabled and compiled!"
|
|
|
|
else
|
|
|
|
echo "WAN HWEC module failed to compile!"
|
|
|
|
fi
|
|
|
|
cd $home_tmp
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$LIP_PROT" = "YES" ]; then
|
|
|
|
|
|
|
|
LIP_LOAD="YES";
|
|
|
|
LIP_BIN_OBJS=
|
|
|
|
LIP_OBJS=
|
|
|
|
|
|
|
|
echo
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/lip/*.c .
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/lip/bin/*.o .
|
|
|
|
|
2021-12-29 17:03:21 +00:00
|
|
|
if [ -e $DRIVER_UPDATE_DIR/src/lip/lip_katm ]; then
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/lip/lip_katm/*.c .
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/lip/lip_katm/*.h .
|
|
|
|
fi
|
2021-12-29 16:59:42 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ -e $DRIVER_UPDATE_DIR/src/lip/lip_hdlc ]; then
|
|
|
|
LIP_HDLC_PROT="YES";
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_LIP_HDLC "
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/lip/lip_hdlc/*.c .
|
|
|
|
\cp -f $DRIVER_UPDATE_DIR/src/lip/lip_hdlc/*.h .
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
LIP_LINKED_PROTOCOLS=
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
TMP_CFLAGS="-I/$WANPIPE_INCLUDE_DIR -I/ -I$SOURCEDIR/include -I$SOURCEDIR/include/linux -I../include/common -I../include "
|
|
|
|
if [ "$REGPARM_OPT" = ".regparm" ]; then
|
|
|
|
TMP_CFLAGS=$TMP_CFLAGS" -mregparm=3 "
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $FR_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ -e $DRIVER_UPDATE_DIR/fr ]; then
|
|
|
|
|
|
|
|
echo -n "Compiling Frame Relay sources..."
|
|
|
|
lhome=`pwd`
|
|
|
|
cd $DRIVER_UPDATE_DIR/fr
|
|
|
|
|
|
|
|
eval "rm -f *.o" >/dev/null 2>/dev/null
|
|
|
|
eval "make clean"
|
|
|
|
eval "make all EXTRA_CFLAGS=\" $TMP_CFLAGS \" ARCH=$ARCH " >>$CMP_LOG 2>>$CMP_LOG
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done"
|
|
|
|
echo " "
|
|
|
|
else
|
|
|
|
echo -e "Failed"
|
|
|
|
cat $CMP_LOG
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
\cp -f wanpipe_fr.o $lhome/wanpipe_fr.o
|
|
|
|
fr_file=wanpipe_fr.o
|
|
|
|
cd $lhome
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
else
|
|
|
|
fr_file=wanpipe_fr.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
|
|
|
if [ ! -e $fr_file ]; then
|
|
|
|
echo "Warning: FR Binary $fr_filenot found!"
|
|
|
|
echo "Using wanpipe_fr.gcc3.i386.o"
|
|
|
|
fr_file=wanpipe_fr.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
\cp $fr_file wanpipe_fr.o
|
|
|
|
fi
|
|
|
|
LIP_BIN_OBJS=$LIP_BIN_OBJS"wanpipe_fr.o "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $PPP_PROT = "YES" ] || [ $CHDLC_PROT = "YES" ]; then
|
|
|
|
if [ -e $DRIVER_UPDATE_DIR/sppp ]; then
|
|
|
|
echo -n "Compiling PPP and CHDLC sources..."
|
|
|
|
lhome=`pwd`
|
|
|
|
cd $DRIVER_UPDATE_DIR/sppp
|
|
|
|
eval "rm -f *.o" >/dev/null 2>/dev/null
|
|
|
|
eval "make clean"
|
|
|
|
eval "make all EXTRA_CFLAGS=\" $TMP_CFLAGS -Iinclude \" ARCH=$ARCH " >>$CMP_LOG 2>>$CMP_LOG
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done"
|
|
|
|
echo " "
|
|
|
|
else
|
|
|
|
echo -e "Failed"
|
|
|
|
cat $CMP_LOG
|
|
|
|
fi
|
|
|
|
\cp -f wanpipe_sppp.o $lhome/wanpipe_sppp.o
|
|
|
|
cd $lhome
|
|
|
|
|
|
|
|
sppp_file=wanpipe_sppp.o
|
|
|
|
else
|
|
|
|
sppp_file=wanpipe_sppp.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
|
|
|
if [ ! -e $sppp_file ]; then
|
|
|
|
echo "Warning: SPPP Binary $sppp_file not found!"
|
|
|
|
echo "Using wanpipe_sppp.gcc3.i386.o"
|
|
|
|
sppp_file=wanpipe_sppp.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
\cp $sppp_file wanpipe_sppp.o
|
|
|
|
fi
|
|
|
|
LIP_BIN_OBJS=$LIP_BIN_OBJS"wanpipe_sppp.o "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ $ATM_PROT = "YES" ]; then
|
|
|
|
lip_atm_file=wanpipe_lip_atm.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ ! -e $lip_atm_file ]; then
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Warning: LIP ATM Binary $lip_atm_file not found!"
|
|
|
|
echo "Using wanpipe_lip_atm.gcc3.i386.o"
|
|
|
|
lip_atm_file=wanpipe_lip_atm.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
cp $lip_atm_file wanpipe_lip_atm.o
|
|
|
|
LIP_BIN_OBJS=$LIP_BIN_OBJS"wanpipe_lip_atm.o "
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $LAPB_PROT = "YES" ]; then
|
|
|
|
lapb_file=wanpipe_lapb.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
|
|
|
if [ ! -e $lapb_file ]; then
|
|
|
|
echo "Warning: FR Binary $lapb_file not found!"
|
|
|
|
echo "Using wanpipe_lapb.gcc3.i386.o"
|
|
|
|
lapb_file=wanpipe_lapb.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
cp $lapb_file wanpipe_lapb.o
|
|
|
|
LIP_BIN_OBJS=$LIP_BIN_OBJS"wanpipe_lapb.o "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $XDLC_PROT = "YES" ]; then
|
|
|
|
xdlc_file=wanpipe_xdlc.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
|
|
|
if [ ! -e $xdlc_file ]; then
|
|
|
|
echo "Warning: FR Binary $xdlc_file not found!"
|
|
|
|
echo "Using wanpipe_xdlc.gcc3.i386.o"
|
|
|
|
xdlc_file=wanpipe_xdlc.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
cp $xdlc_file wanpipe_xdlc.o
|
|
|
|
LIP_BIN_OBJS=$LIP_BIN_OBJS"wanpipe_xdlc.o "
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $XMTP2_PROT = "YES" ]; then
|
2021-12-29 17:03:21 +00:00
|
|
|
|
|
|
|
SCTP_LOAD=YES
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
xmtp2_file=wanpipe_xmtp2.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
|
|
|
if [ ! -e $xmtp2_file ]; then
|
|
|
|
echo "Warning: FR Binary $xmtp2_file not found!"
|
|
|
|
echo "Using wanpipe_xmtp2.gcc3.i386.o"
|
|
|
|
xmtp2_file=wanpipe_xmtp2.gcc3.i386.o
|
|
|
|
fi
|
|
|
|
cp $xmtp2_file wanpipe_xmtp2.o
|
|
|
|
LIP_BIN_OBJS=$LIP_BIN_OBJS"wanpipe_xmtp2.o "
|
|
|
|
|
|
|
|
if [ -d xmtp2km ]; then
|
|
|
|
rm -rf xmtp2km
|
|
|
|
fi
|
|
|
|
|
|
|
|
\cp -rf $DRIVER_UPDATE_DIR/src/xmtp2km .
|
|
|
|
cd xmtp2km
|
|
|
|
cp ../Makefile .
|
|
|
|
ln -s ../mod mod
|
|
|
|
ln -s ../tmp tmp
|
|
|
|
|
|
|
|
xmtp2km_file=xmtp2km.gcc$GCC_VER.$ARCH$REGPARM_OPT.o
|
|
|
|
if [ ! -e bin/$xmtp2km_file ]; then
|
|
|
|
echo "Warning: XMTP2KM Binary $xmtp2km_file not found!"
|
|
|
|
xmtp2km_file=xmtp2km.gcc3.i386.o
|
|
|
|
echo "Using $xmtp2km_file"
|
|
|
|
fi
|
|
|
|
|
|
|
|
XMTP2KM_OBJ="main2_6 fwmsg"
|
|
|
|
|
|
|
|
build_kernel_module xmtp2km "$XMTP2KM_OBJ" "-D__XMTP2__" "bin/$xmtp2km_file"
|
|
|
|
|
|
|
|
if [ -e xmtp2km.ko ]; then
|
|
|
|
\cp -f xmtp2km.ko ../mod
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd ..
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
LIP_DEFINES="-DWANLIP_DRIVER -DWPLIP_TTY_SUPPORT"
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
lip_src_mods="wanpipe_lip_iface wanpipe_lip_bh wanpipe_lip_prot wanpipe_lip_netdev wanpipe_lip_sub wanpipe_lip_tty wanpipe_abstr wanpipe_linux_iface"
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $KATM_PROT = "YES" ]; then
|
|
|
|
lip_src_mods=$lip_src_mods" wanpipe_katm_iface wanpipe_katm_sub"
|
|
|
|
fi
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $LIP_HDLC_PROT = "YES" ]; then
|
|
|
|
lip_src_mods=$lip_src_mods" wanpipe_hdlc_iface wanpipe_hdlc_eng"
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
build_kernel_module wanpipe_lip "$lip_src_mods" "$LIP_DEFINES" "$LIP_BIN_OBJS"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
if [ $FR_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "FR compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$fr_file"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
if [ $PPP_PROT = "YES" ] || [ $CHDLC_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "PPP/CHDLC compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$sppp_file"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
if [ $LAPB_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Lapb compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$lapb_file"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
if [ $XDLC_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Xdlc compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$xdlc_file"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
if [ $ATM_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "ATM compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$lip_atm_file"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
if [ $XMTP2_PROT = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "XMTP2 compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$xmtp2_file"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$ADSL_PROT" = "YES" ]; then
|
|
|
|
echo "ADSL binary compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$adsl_file"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ATM_PROT" = "YES" ]; then
|
|
|
|
echo "ATM binary compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$atm_file"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$ECHO_MASTER_PROT" = "YES" ]; then
|
|
|
|
echo "TDMV Echo Detection (EDAC) binary compiled for GCC Ver=$GCC_VER Arch=$ARCH File:$echo_file"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo -n "Linking Wanpipe Driver and protocols ..."
|
|
|
|
|
|
|
|
#Link in appropriate protocols as needed.
|
2021-12-29 16:59:00 +00:00
|
|
|
WANPIPE_OBJS=$WANPIPE_OBJS"sdlamain wanpipe_tdm_api wanpipe_codec wanpipe_codec_law "
|
2021-12-29 16:56:27 +00:00
|
|
|
build_kernel_module wanpipe "$WANPIPE_OBJS" "$WANPIPE_EXTRA_CFLAGS" "$WANPIPE_BIN_OBJS"
|
|
|
|
|
|
|
|
|
|
|
|
\cp -f *.ko mod/ > /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
MEXT=o
|
|
|
|
if [ $KERN_VER -eq 26 ]; then
|
|
|
|
MEXT=ko
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
update_redhat_as 1
|
|
|
|
update_fedora2 1
|
|
|
|
|
|
|
|
wp_comp_err=0;
|
|
|
|
if [ ! -e mod/sdladrv.$MEXT ]; then
|
|
|
|
echo "Compilation Error: Module sdladrv.$MEXT not found!"
|
|
|
|
wp_comp_err=1;
|
|
|
|
fi
|
|
|
|
if [ ! -e mod/wanpipe.$MEXT ]; then
|
|
|
|
echo "Compilation Error: Module mod/wanpipe.$MEXT not found!"
|
|
|
|
wp_comp_err=1;
|
|
|
|
fi
|
|
|
|
if [ ! -e mod/wanrouter.$MEXT ]; then
|
|
|
|
echo "Compilation Error: Module mod/wanrouter.$MEXT not found!"
|
|
|
|
wp_comp_err=1;
|
|
|
|
fi
|
|
|
|
if [ ! -e mod/af_wanpipe.$MEXT ]; then
|
|
|
|
echo "Compilation Error: Module mod/af_wanpipe.$MEXT not found!"
|
|
|
|
wp_comp_err=1;
|
|
|
|
fi
|
|
|
|
if [ "$LIP_PROT" = "YES" ] && [ ! -e mod/wanpipe_lip.$MEXT ]; then
|
|
|
|
echo "Compilation Error: Module mod/wanpipe_lip.$MEXT not found!"
|
|
|
|
wp_comp_err=1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$XMTP2_PROT" = "YES" ] && [ ! -e mod/xmtp2km.$MEXT ]; then
|
|
|
|
echo "Compilation Error: Module mod/xmtp2km.$MEXT not found!"
|
|
|
|
wp_comp_err=1;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $wp_comp_err -eq 1 ]; then
|
|
|
|
echo
|
|
|
|
echo "Wanpipe drivers failed to compile"
|
|
|
|
echo "Please review the above error messages"
|
|
|
|
echo "and/or contact Sangoma Tech Support."
|
|
|
|
echo
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
#Copy the newly compiled modules into the /lib/modules directory.
|
|
|
|
|
|
|
|
echo -n "Updating Kernel Modules ..."
|
|
|
|
|
|
|
|
if [ $KERN_VER -eq 24 ] || [ $KERN_VER -eq 26 ]; then
|
|
|
|
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/sdladrv.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_syncppp.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wan_aften.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanrouter.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/af_wanpipe.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
eval "\rm -f $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanpipe_lip.$MEXT* > /dev/null 2> /dev/null"
|
|
|
|
|
|
|
|
install -D -m 644 mod/sdladrv.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/sdladrv.$MEXT
|
|
|
|
install -D -m 644 mod/wanpipe.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe.$MEXT
|
|
|
|
install -D -m 644 mod/wanrouter.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanrouter.$MEXT
|
|
|
|
install -D -m 644 mod/af_wanpipe.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/af_wanpipe.$MEXT
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/sdladrv.$MEXT" | xargs gzip -f9
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe.$MEXT" | xargs gzip -f9
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanrouter.$MEXT" | xargs gzip -f9
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/af_wanpipe.$MEXT" | xargs gzip -f9
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ -f mod/wanpipe_syncppp.$MEXT ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
install -D -m 644 mod/wanpipe_syncppp.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_syncppp.$MEXT
|
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_syncppp.$MEXT" | xargs gzip -f9
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/wan_aften.$MEXT ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
install -D -m 644 mod/wan_aften.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wan_aften.$MEXT
|
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wan_aften.$MEXT" | xargs gzip -f9
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ -d "$DRIVER_UPDATE_DIR/wanec" ]; then
|
|
|
|
install -D -m 644 $DRIVER_UPDATE_DIR/wanec/wanec.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanec.$MEXT
|
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanec.$MEXT" | xargs gzip -f9
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ -f mod/wanpipe_x25.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_x25.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_x25.$MEXT
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_x25.$MEXT" |xargs gzip -f9
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
if [ -f mod/wanpipe_lapb.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_lapb.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_lapb.$MEXT
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_lapb.$MEXT" |xargs gzip -f9
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
if [ -f mod/wanpipe_dsp.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_dsp.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_dsp.$MEXT
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_dsp.$MEXT" |xargs gzip -f9
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/xmtp2km.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/xmtp2km.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/xmtp2km.$MEXT
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/xmtp2km.$MEXT" |xargs gzip -f9
|
|
|
|
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ -f mod/wanpipe_lip.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_lip.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanpipe_lip.$MEXT
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $GZ_MODULES ] && [ $GZ_MODULES=YES ]; then
|
|
|
|
echo "$ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanpipe_lip.$MEXT" |xargs gzip -f9
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT > $CMP_INSTALL
|
2021-12-29 17:18:25 +00:00
|
|
|
#!/bin/sh
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
mv *.ko mod/ > /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
install -D -m 644 mod/sdladrv.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/sdladrv.$MEXT
|
|
|
|
install -D -m 644 mod/wanpipe.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe.$MEXT
|
|
|
|
install -D -m 644 mod/wanrouter.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanrouter.$MEXT
|
|
|
|
install -D -m 644 mod/af_wanpipe.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/af_wanpipe.$MEXT
|
|
|
|
|
|
|
|
|
|
|
|
if [ -f mod/wanpipe_syncppp.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_syncppp.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_syncppp.$MEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/wan_aften.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wan_aften.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wan_aften.$MEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/wanpipe_lip.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_lip.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/net/wanrouter/wanpipe_lip.$MEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/wanpipe_x25.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_x25.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_x25.$MEXT
|
|
|
|
fi
|
|
|
|
if [ -f mod/wanpipe_lapb.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_lapb.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_lapb.$MEXT
|
|
|
|
fi
|
|
|
|
if [ -f mod/wanpipe_dsp.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_dsp.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/wanpipe_dsp.$MEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/xmtp2km.$MEXT ]; then
|
|
|
|
install -D -m 644 mod/xmtp2km.$MEXT $ROOT/lib/modules/$KERNEL_VERSION/kernel/drivers/net/wan/xmtp2km.$MEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo "Modules installed in $ROOT/lib/modules/$KERNEL_VERSION: OK"
|
|
|
|
echo
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
chmod 755 $CMP_INSTALL
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT > .clean.$$
|
2021-12-29 17:18:25 +00:00
|
|
|
#!/bin/sh
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
rm -f *.ko
|
|
|
|
rm -f tmp/*.*o
|
|
|
|
rm -f mod/*.*o
|
|
|
|
|
|
|
|
echo "Clean Done"
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
cat .clean.$$ ../samples/clean.sh > $CMP_CLEAN
|
|
|
|
|
|
|
|
chmod 755 $CMP_CLEAN
|
|
|
|
|
|
|
|
else
|
|
|
|
install -D -m 644 mod/sdladrv.o $ROOT/lib/modules/$KERNEL_VERSION/net/sdladrv.o
|
|
|
|
install -D -m 644 mod/wanpipe.o $ROOT/lib/modules/$KERNEL_VERSION/net/wanpipe.o
|
|
|
|
install -D -m 644 mod/wanrouter.o $ROOT/lib/modules/$KERNEL_VERSION/misc/wanrouter.o
|
|
|
|
install -D -m 644 mod/af_wanpipe.o $ROOT/lib/modules/$KERNEL_VERSION/misc/af_wanpipe.o
|
|
|
|
if [ -f mod/wanpipe_syncppp.o ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_syncppp.o $ROOT/lib/modules/$KERNEL_VERSION/net/wanpipe_syncppp.o
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/wan_aften.o ]; then
|
|
|
|
install -D -m 644 mod/wan_aften.o $ROOT/lib/modules/$KERNEL_VERSION/misc/wan_aften.o
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -f mod/wanpipe_lip.o ]; then
|
|
|
|
install -D -m 644 mod/wanpipe_lip.o $ROOT/lib/modules/$KERNEL_VERSION/misc/wanpipe_lip.o
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "Done.\n"
|
|
|
|
else
|
|
|
|
echo -e "Failed!\n"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# End of !LITE
|
|
|
|
fi
|
|
|
|
|
|
|
|
if test -z $ROOT; then
|
|
|
|
#Check dependencies.
|
|
|
|
eval "depmod -a 2> $PROD_HOME/tmp.$$"
|
|
|
|
if [ -f $PROD_HOME/tmp.$$ ]; then
|
|
|
|
eval "grep wanpipe -i $PROD_HOME/tmp.$$ 2> /dev/null"
|
|
|
|
rc1=$?
|
|
|
|
eval "grep sdladrv -i $PROD_HOME/tmp.$$ 2> /dev/null"
|
|
|
|
rc2=$?
|
|
|
|
eval "grep wanrouter -i $PROD_HOME/tmp.$$ 2> /dev/null"
|
|
|
|
rc3=$?
|
|
|
|
eval "grep af_wanpipe -i $PROD_HOME/tmp.$$ 2> /dev/null"
|
|
|
|
rc4=$?
|
|
|
|
|
|
|
|
if [ $rc1 -eq 0 ] || [ $rc2 -eq 0 ] || [ $rc3 -eq 0 ] || [ $rc4 -eq 0 ]; then
|
|
|
|
echo "WARNING: Module dependencies failed!"
|
|
|
|
echo ""
|
|
|
|
echo " The MODULE_VERSIONS in the current linux source"
|
|
|
|
echo " are different from the current linux image."
|
|
|
|
echo " Or the MODULE_VERSIONS have been turned off in"
|
|
|
|
echo " the current linux source."
|
|
|
|
echo
|
|
|
|
echo " In this case, take this messages as a WARNING, and"
|
|
|
|
echo " proceed with ${DISTR_NAME} installation."
|
|
|
|
echo " After the installation is complete, run"
|
|
|
|
echo
|
|
|
|
echo " wanrouter hwprobe"
|
|
|
|
echo
|
|
|
|
echo " to test ${DISTR_NAME} kernel modules!."
|
|
|
|
echo " If the hardware probe is successfull ignore the"
|
|
|
|
echo " above message, otherwise call Sangoma Tech Support"
|
|
|
|
echo ""
|
|
|
|
rm -f $PROD_HOME/tmp.$$
|
|
|
|
if [ -d "$DRIVER_TMP_DIR" ]; then
|
|
|
|
rm -rf $DRIVER_TMP_DIR
|
|
|
|
fi
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
rm -f $PROD_HOME/tmp.$$
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
#OPTIONAL
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ -d "$DRIVER_TMP_DIR" ] && [ "$DEVEL_DEBUG" = "NO" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
rm -rf $DRIVER_TMP_DIR
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
getyn "Visually Confirm that driver compilation was successful!"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Compilation Successful."
|
|
|
|
DRIVERS_COMPILED=yes
|
|
|
|
else
|
|
|
|
echo "Compilation Failed!"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
function install_chan_woomera()
|
|
|
|
{
|
|
|
|
AST_MODULES=chan_woomera.c
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
ast_src_dir=/usr/src/asterisk
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
cd sangoma_mgd.trunk
|
|
|
|
|
|
|
|
CUR_PWD=`pwd`
|
|
|
|
|
|
|
|
if [ "$ast_src_dir" = "" ]; then
|
|
|
|
echo
|
|
|
|
echo "Please Specify Asterisk Source Directory"
|
|
|
|
echo "Default [/usr/src/asterisk] just press <enter>"
|
|
|
|
echo
|
|
|
|
echo -n "Asterisk Source: "
|
|
|
|
read ast_src_dir
|
|
|
|
|
|
|
|
if [ "$ast_src_dir" = "" ]; then
|
|
|
|
ast_src_dir="/usr/src/asterisk"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo
|
|
|
|
echo "Installing chan_woomera in: $ast_src_dir"
|
|
|
|
echo
|
|
|
|
|
|
|
|
if [ ! -d $ast_src_dir ]; then
|
|
|
|
echo
|
|
|
|
echo "Directory $ast_src_dir not found!"
|
|
|
|
echo
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -e $ast_src_dir/contrib/scripts/astxs ]; then
|
|
|
|
echo
|
|
|
|
echo "Invalid asterisk source in $ast_src_dir"
|
|
|
|
echo
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
eval "cp -f g711.h $ast_src_dir/"
|
|
|
|
eval "cp -f $AST_MODULES $ast_src_dir/"
|
|
|
|
cd $ast_src_dir
|
|
|
|
|
|
|
|
for mod in $AST_MODULES
|
|
|
|
do
|
|
|
|
echo "Installing: $mod"
|
|
|
|
eval "perl ./contrib/scripts/astxs -install $mod > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "Error: Failed to install $mod module!"
|
|
|
|
install_failures=$install_failures"$mod "
|
|
|
|
else
|
|
|
|
echo "Done"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
cd $CUR_PWD
|
|
|
|
|
|
|
|
if [ "$install_failures" = "" ]; then
|
|
|
|
echo
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Installation Complete"
|
2021-12-29 16:59:00 +00:00
|
|
|
echo
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
echo "-------------------------------------"
|
|
|
|
echo
|
|
|
|
echo "There was an ERROR in asterisk modules installation"
|
|
|
|
echo "Following modules failed to install:"
|
|
|
|
echo -e "\t$install_failures"
|
|
|
|
echo
|
|
|
|
echo
|
|
|
|
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
function install_ssmg_bri()
|
|
|
|
{
|
|
|
|
|
|
|
|
if [ $SSMG_BRI != "YES" ]; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
SSMG="YES"
|
|
|
|
eval "install_ssmg"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "-------------------------------------"
|
|
|
|
echo "Error: SMG Libraries Failed to install"
|
|
|
|
echo "Please Contact Sangoma Support!"
|
|
|
|
echo "-------------------------------------"
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
|
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
cd sangoma_mgd.trunk
|
|
|
|
|
|
|
|
echo "Installing SMG Daemon..."
|
|
|
|
echo
|
|
|
|
if [ -z $ROOT ]; then
|
|
|
|
eval "./install -noss7"
|
|
|
|
else
|
|
|
|
eval "./install -noss7 -rootdir $ROOT"
|
|
|
|
fi
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "-------------------------------------"
|
|
|
|
echo "Error: SMG Failed to install"
|
|
|
|
echo "Please Contact Sangoma Support!"
|
|
|
|
echo "-------------------------------------"
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
|
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
cd sangoma_bri
|
|
|
|
echo
|
|
|
|
echo "Installing SMG BRI Daemon..."
|
|
|
|
eval "make INSTALLPREFIX=$ROOT install > /dev/null "
|
|
|
|
|
|
|
|
echo
|
|
|
|
echo "----------------------------------------"
|
|
|
|
echo "Sangoma BRI Installation Complete"
|
|
|
|
echo
|
|
|
|
echo " -> To configure for BRI run:"
|
|
|
|
echo " -> /usr/bin/wancfg_smg"
|
|
|
|
echo
|
|
|
|
echo "----------------------------------------"
|
|
|
|
echo
|
|
|
|
install_smg_samples_bri
|
|
|
|
pause
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
function install_ssmg ()
|
|
|
|
{
|
|
|
|
if [ "$SSMG" != "YES" ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
|
|
|
|
banner
|
|
|
|
|
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
cd sangoma_mgd.trunk
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ $superuser = "YES" ] && [ -z $ROOT ]; then
|
|
|
|
eval "find /usr/local/lib -name 'libteletone*' > /dev/null 2>/dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
eval "find /usr/local/lib -name 'libteletone*' | xargs rm > /dev/null 2>/dev/null"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
echo "Installing Sangoma Media Gateway Daemon..."
|
2021-12-29 16:59:00 +00:00
|
|
|
cd lib/libteletone/
|
2021-12-29 17:14:12 +00:00
|
|
|
eval "./configure --prefix=$ROOT/usr; make clean; make CC=$CC; make install " > /dev/null
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "FAILED"
|
|
|
|
return 1
|
|
|
|
fi
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ $superuser = "YES" ]; then
|
|
|
|
eval "ldconfig"
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ $SSMG_BRI != "YES" ]; then
|
|
|
|
install_smg_samples_ss7
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
}
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
|
|
|
|
function install_smg_samples_bri()
|
|
|
|
{
|
2021-12-29 16:59:00 +00:00
|
|
|
getyn "Add Woomera config in Asterisk Extensions and Iax Conf"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
cd sangoma_mgd.trunk
|
|
|
|
if [ -f $ROOT/etc/asterisk/extensions.conf ]; then
|
|
|
|
eval "grep -i outb-bri $ROOT/etc/asterisk/extensions.conf 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
cat $ROOT/etc/asterisk/extensions.conf ./conf_bri/woomera_ext.conf > conf.$$
|
|
|
|
mv conf.$$ $ROOT/etc/asterisk/extensions.conf
|
|
|
|
echo "Asterisk extensions.conf file updated with woomera config"
|
|
|
|
else
|
|
|
|
echo "Asterisk extensions.conf already updated"
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ -f $ROOT/etc/asterisk/iax.conf ]; then
|
|
|
|
eval "grep -i outb-bri $ROOT/etc/asterisk/iax.conf 2> /dev/null > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
cat $ROOT/etc/asterisk/iax.conf ./conf_bri/woomera_iax.conf > conf.$$
|
|
|
|
mv conf.$$ $ROOT/etc/asterisk/iax.conf
|
|
|
|
echo "Asterisk iax.conf file updated with bri guest config"
|
|
|
|
else
|
|
|
|
echo "Asterisk iax.conf already updated"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
pause
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function install_smg_samples_ss7()
|
|
|
|
{
|
|
|
|
cd $PROD_HOME/$SSMG_DIR
|
|
|
|
cd sangoma_mgd.trunk
|
|
|
|
getyn "Add Woomera config in Asterisk Extensions and Iax Conf"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ -f $ROOT/etc/asterisk/extensions.conf ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
eval "grep -i outb-ss7 $ROOT/etc/asterisk/extensions.conf 2> /dev/null > /dev/null"
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
cat $ROOT/etc/asterisk/extensions.conf ./conf_ss7/woomera_ext.conf > conf.$$
|
2021-12-29 17:14:12 +00:00
|
|
|
mv conf.$$ $ROOT/etc/asterisk/extensions.conf
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Asterisk extensions.conf file updated with woomera config"
|
|
|
|
else
|
|
|
|
echo "Asterisk extensions.conf already updated"
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ -f $ROOT/etc/asterisk/iax.conf ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
eval "grep -i outb-ss7 $ROOT/etc/asterisk/iax.conf 2> /dev/null > /dev/null"
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
cat $ROOT/etc/asterisk/iax.conf ./conf_ss7/woomera_iax.conf > conf.$$
|
2021-12-29 17:14:12 +00:00
|
|
|
mv conf.$$ $ROOT/etc/asterisk/iax.conf
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Asterisk iax.conf file updated with ss7 guest config"
|
|
|
|
else
|
|
|
|
echo "Asterisk iax.conf already updated"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
pause
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
function install_all ()
|
|
|
|
{
|
|
|
|
echo "Installing ${DISTR_NAME} Files ... !"
|
|
|
|
|
|
|
|
echo "Installing ${DISTR_NAME} Utilities in $ROOT/usr/sbin"
|
|
|
|
|
2021-12-29 17:14:45 +00:00
|
|
|
if [ ! -e $WAN_CONF_DIR ]; then
|
|
|
|
\mkdir -p $WAN_CONF_DIR
|
|
|
|
\mkdir -p $WAN_CONF_DIR/util
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
cd $PROD_HOME/util
|
|
|
|
make install WAN_VIRTUAL=$ROOT > /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
cd $PROD_HOME
|
2021-12-29 17:18:25 +00:00
|
|
|
\cp -rf samples $ROOT/etc/wanpipe
|
2021-12-29 16:56:27 +00:00
|
|
|
install -D -m 755 $PROD_HOME/scripts/wanlite $ROOT/usr/sbin/wanlite
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
install -D -m 755 $WANROUTER_STARTUP_SMPL $ROOT/$WANROUTER_STARTUP
|
|
|
|
|
|
|
|
cd $PROD_HOME/util/misc
|
|
|
|
make install WAN_VIRTUAL=$ROOT > /dev/null 2> /dev/null
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Installing wanrouter.rc in $ROOT/etc/wanpipe"
|
2021-12-29 16:56:27 +00:00
|
|
|
cd $PROD_HOME
|
2021-12-29 17:18:25 +00:00
|
|
|
install -D -m 644 wanrouter.rc $ROOT/etc/wanpipe/wanrouter.rc
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Installing wanpipe libraries in $ROOT/etc/wanpipe"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
\mkdir -p $ROOT/etc/wanpipe/lib/
|
|
|
|
\cp -f $PROD_HOME/util/wancfg_legacy/lib/* $ROOT/etc/wanpipe/lib/
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Installing firmware in $ROOT/etc/wanpipe/firmware"
|
|
|
|
\cp -rf firmware $ROOT/etc/wanpipe/
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -f $ROOT/etc/wanpipe/interfaces ]; then
|
|
|
|
\mkdir -p $ROOT/etc/wanpipe/interfaces
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
echo "Installing documentation in $ROOT/usr/share/doc/wanpipe"
|
|
|
|
if [ ! -d $ROOT/usr/share/doc/wanpipe ]; then
|
|
|
|
\mkdir -p $ROOT/usr/share/doc/wanpipe
|
|
|
|
fi
|
|
|
|
\cp -f doc/* $ROOT/usr/share/doc/wanpipe
|
|
|
|
\cp -f README* $ROOT/usr/share/doc/wanpipe
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Installing sample api code in $ROOT/etc/wanpipe/api"
|
|
|
|
\cp -rf api $ROOT/etc/wanpipe
|
|
|
|
\cp -rf samples $ROOT/etc/wanpipe
|
2021-12-29 17:14:45 +00:00
|
|
|
|
|
|
|
echo "Installing AFT Firmware update utility in $ROOT$WAN_CONF_DIR/util"
|
|
|
|
\cp -rf util/wanec_apilib/ $ROOT$WAN_CONF_DIR/util
|
|
|
|
\cp -rf util/wan_aftup/ $ROOT$WAN_CONF_DIR/util
|
|
|
|
|
|
|
|
cd firmware
|
|
|
|
if [ -e wan_aftup ]; then
|
|
|
|
\rm -f wan_aftup 2> /dev/null
|
|
|
|
fi
|
|
|
|
\ln -s ../util/wan_aftup wan_aftup
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -d $ROOT/etc/wanpipe/scripts ]; then
|
|
|
|
\mkdir -p $ROOT/etc/wanpipe/scripts
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Installing driver headers in $ROOT/etc/wanpipe/api/include/linux"
|
|
|
|
if [ ! -d $ROOT/etc/wanpipe/api/include/linux ]; then
|
|
|
|
\mkdir -p $ROOT/etc/wanpipe/api/include/linux
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
cd $PROD_HOME
|
|
|
|
if [ -d wan_ec ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
cp -rf wan_ec $ROOT/etc/wanpipe
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Installing Hardware Echo Cancel Utilites"
|
|
|
|
cd util/wanec_client
|
|
|
|
make install WAN_VIRTUAL=$ROOT > /dev/null 2> /dev/null
|
|
|
|
cd $PROD_HOME
|
|
|
|
|
|
|
|
if [ ! -e /dev/wanec ]; then
|
|
|
|
mknod /dev/wanec c 242 0
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "Hardware Echo Cancel Utilites Not Installed"
|
|
|
|
fi
|
|
|
|
cd $PROD_HOME
|
|
|
|
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -f $ROOT/etc/wanpipe/api/include/linux/ ]; then
|
|
|
|
\mkdir -p $ROOT/etc/wanpipe/api/include/linux/
|
2021-12-29 16:59:00 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
\cp -f $DRIVER_UPDATE_DIR/include/*.* $ROOT/etc/wanpipe/api/include/linux/
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
function uninstall_all ()
|
|
|
|
{
|
|
|
|
echo "Uninstalling ${DISTR_NAME} Binaries!\n"
|
|
|
|
|
|
|
|
cd $PROD_HOME/util
|
|
|
|
make uninstall WAN_VIRTUAL=$ROOT > /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
if [ "$PKG_NAME" = "wanpipe-lite" ]; then
|
|
|
|
pause
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $PROD_HOME/util/misc
|
|
|
|
make uninstall WAN_VIRTUAL=$ROOT > /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
cd $PROD_HOME
|
|
|
|
rm -f $ROOT/usr/sbin/wp_pppconfig
|
|
|
|
rm -rf $ROOT/usr/doc/wanpipe
|
2021-12-29 17:18:25 +00:00
|
|
|
rm -rf $ROOT/etc/wanpipe
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
pause
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
function enable_custom_protocols ()
|
|
|
|
{
|
|
|
|
local level=$1
|
|
|
|
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$level" != "" ]; then
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS
|
|
|
|
fi
|
|
|
|
|
|
|
|
while [ 1 ];
|
|
|
|
do
|
|
|
|
|
|
|
|
banner
|
|
|
|
|
|
|
|
if [ "$level" = "" ]; then
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
DEFAULT Protocols
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
if [ $FR_PROT = NO ]; then
|
|
|
|
echo -n "[FR] : Frame Relay "
|
|
|
|
else
|
|
|
|
echo -n "[FR]* : Frame Relay "
|
|
|
|
fi
|
|
|
|
if [ $PPP_PROT = NO ]; then
|
|
|
|
echo "[PPP] : PPP"
|
|
|
|
else
|
|
|
|
echo "[PPP]* : PPP"
|
|
|
|
fi
|
|
|
|
if [ $CHDLC_PROT = NO ]; then
|
|
|
|
echo -n "[CHDLC] : Cisco HDLC "
|
|
|
|
else
|
|
|
|
echo -n "[CHDLC]* : Cisco HDLC "
|
|
|
|
fi
|
|
|
|
if [ $X25_PROT = NO ]; then
|
|
|
|
echo "[X25] : X25 API"
|
|
|
|
else
|
|
|
|
echo "[X25]* : X25 API"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo
|
|
|
|
# cat <<ENDOFTEXT
|
|
|
|
#
|
|
|
|
# Kernel Protocol Implementations
|
|
|
|
#ENDOFTEXT
|
|
|
|
|
|
|
|
if [ $MFR_PROT = NO ]; then
|
|
|
|
echo -n "[MFR] : MP Frame Relay "
|
|
|
|
else
|
|
|
|
echo -n "[MFR]* : MP Frame Relay "
|
|
|
|
fi
|
|
|
|
if [ $MPPP_PROT = NO ]; then
|
|
|
|
echo "[MPROT] : MP Prot"
|
|
|
|
else
|
|
|
|
echo "[MPROT]* : MP Prot"
|
|
|
|
fi
|
|
|
|
if [ $ADSL_PROT = NO ]; then
|
|
|
|
echo -n "[ADSL] : ADSL (S518) "
|
|
|
|
else
|
|
|
|
echo -n "[ADSL]* : ADSL (S518) "
|
|
|
|
fi
|
|
|
|
if [ $ATM_PROT = NO ]; then
|
|
|
|
echo "[ATM] : ATM"
|
|
|
|
else
|
|
|
|
echo "[ATM]* : ATM"
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
|
|
|
|
if [ $AFT_TE1_PROT = NO ]; then
|
|
|
|
echo -n "[AFT_TE1] : AFT_TE1 (A101/2/4)"
|
|
|
|
else
|
|
|
|
echo -n "[AFT_TE1]*: AFT_TE1 (A101/2/4)"
|
|
|
|
fi
|
|
|
|
if [ $AFT_TE3_PROT = NO ]; then
|
|
|
|
echo "[AFT_TE3] : AFT_TE3 (A105)"
|
|
|
|
else
|
|
|
|
echo "[AFT_TE3]*: AFT_TE3 (A105)"
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
API Protocols
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
if [ $SDLC_PROT = NO ]; then
|
|
|
|
echo -n "[SDLC] : SDLC "
|
|
|
|
else
|
|
|
|
echo -n "[SDLC]* : SDLC "
|
|
|
|
fi
|
|
|
|
if [ $BISYNC_PROT = NO ]; then
|
|
|
|
echo "[BISYNC] : MP Bisync"
|
|
|
|
else
|
|
|
|
echo "[BISYNC]* : MP Bisync"
|
|
|
|
fi
|
|
|
|
if [ $BSCSTRM_PROT = NO ]; then
|
|
|
|
echo -n "[BSCSTRM] : Bisync Stream "
|
|
|
|
else
|
|
|
|
echo -n "[BSCSTRM]*: Bisync Stream "
|
|
|
|
fi
|
|
|
|
if [ $BITSTRM_PROT = NO ]; then
|
|
|
|
echo "[BITSTRM] : Bit Stream"
|
|
|
|
else
|
|
|
|
echo "[BITSTRM]*: Bit Stream"
|
|
|
|
fi
|
|
|
|
if [ $POS_PROT = NO ]; then
|
|
|
|
echo -n "[POS] : POS (S509/S515) "
|
|
|
|
else
|
|
|
|
echo -n "[POS]* : POS (S509/S515) "
|
|
|
|
fi
|
|
|
|
if [ $EDU_PROT = NO ]; then
|
|
|
|
echo "[EDU] : Wan EduKit"
|
|
|
|
else
|
|
|
|
echo "[EDU]* : Wan EduKit"
|
|
|
|
fi
|
|
|
|
if [ $SS7_PROT = NO ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "[SS7] : SS7 L2 (S514) "
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n "[SS7]* : SS7 L2 (S514) "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
if [ $ANNEXG_PROT = NO ]; then
|
|
|
|
echo "[MPAPI] : MP API"
|
|
|
|
else
|
|
|
|
echo "[MPAPI]* : MP API"
|
|
|
|
fi
|
|
|
|
if [ $ADCCP_PROT = NO ]; then
|
|
|
|
echo -n "[ADCCP] : ADCCP LAPB API "
|
|
|
|
else
|
|
|
|
echo -n "[ADCCP]* : ADCCP LAPB API "
|
|
|
|
fi
|
|
|
|
if [ $ASYHDLC_PROT = NO ]; then
|
|
|
|
echo "[ASYHDLC] : Async HDLC API"
|
|
|
|
else
|
|
|
|
echo "[ASYHDLC]*: Async HDLC API"
|
|
|
|
fi
|
|
|
|
if [ $LIPAPI_PROT = NO ]; then
|
|
|
|
echo -n "[LIPAPI] : LIP XDLC/LAPB "
|
|
|
|
else
|
|
|
|
echo -n "[LIPAPI]* : LIP XDLC/LAPB "
|
|
|
|
fi
|
|
|
|
if [ $TDM_PROT = NO ]; then
|
|
|
|
echo "[TDM] : TDMV Asterisk"
|
|
|
|
else
|
|
|
|
echo "[TDM]* : TDMV Asterisk $TDM_DCHAN"
|
|
|
|
fi
|
|
|
|
if [ $XMTP2_PROT = NO ]; then
|
|
|
|
echo "[XMTP2] : XMTP2 SS7 "
|
|
|
|
else
|
|
|
|
echo "[XMTP2]* : XMTP2 SS7 "
|
|
|
|
fi
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
[DEF] : Enable All Default [API] : Enable All API
|
|
|
|
[ALL] : Enable All Protocols [NONE]: Disable ALL Protocols
|
|
|
|
|
|
|
|
[EXIT|Q|q]: Exit Protocol Selection
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
echo -n "Please select a protocol option in [<opt>]: "
|
|
|
|
|
|
|
|
read response
|
|
|
|
|
|
|
|
if [ "$response" = "EXIT" ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$response" = "Q" ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$response" = "q" ]; then
|
|
|
|
return 0;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "$response" | grep "DEF" > /dev/null
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$response" | grep "^API" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $API_PROTOCOLS
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "$response" | grep "ALL" > /dev/null
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS
|
|
|
|
enable_protocols $API_PROTOCOLS
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "$response" | grep "NONE" > /dev/null
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
init_all_protocols
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "$response" | grep "TDM" > /dev/null
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $response
|
|
|
|
enable_protocols AFT_TE1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $response != "DEF" ] &&
|
|
|
|
[ $response != "API" ] &&
|
|
|
|
[ $response != "ALL" ] &&
|
|
|
|
[ $response != "NONE" ] &&
|
|
|
|
[ $response != "TDM" ]; then
|
|
|
|
|
|
|
|
enable_protocols $response
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
pause
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
search_and_replace()
|
|
|
|
{
|
|
|
|
local input_file_name=$1
|
|
|
|
local output_file_name=$2
|
|
|
|
local search_str="$3"
|
|
|
|
local replace_str="$4"
|
|
|
|
local tmp_file=output.tmp
|
|
|
|
|
|
|
|
#echo "input_file_name:$input_file_name"
|
|
|
|
#echo "output_file_name:$output_file_name"
|
|
|
|
#echo "search_str:$search_str"
|
|
|
|
#echo "replace_str:$replace_str"
|
|
|
|
|
|
|
|
eval "grep '$search_str' $input_file_name > /dev/null 2> /dev/null"
|
|
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Did NOT find the seached str:$search_str"
|
|
|
|
return 1
|
|
|
|
else
|
|
|
|
#echo "Found the seached str"
|
|
|
|
eval "sed 's/'\"$search_str\"'/'\"$replace_str\"'/' $input_file_name > $tmp_file"
|
|
|
|
mv $tmp_file $output_file_name
|
|
|
|
fi
|
|
|
|
|
|
|
|
return $?
|
|
|
|
}
|
2021-12-29 16:59:00 +00:00
|
|
|
function tdmv_get_zaptel_path ()
|
2021-12-29 16:56:27 +00:00
|
|
|
{
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
if [ $ZAPTEL_PATH_OP != "YES" ]; then
|
|
|
|
find_zap_dirs
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ 0 ]; then
|
|
|
|
if [ $ZAPTEL_PATH_OP != "YES" ]; then
|
|
|
|
echo
|
|
|
|
echo -e "\nPlease specify absolute path to Zaptel source directory"
|
|
|
|
echo -e "\n[default:$ZAPTEL_INSTALL_DIR]\n"
|
|
|
|
echo -n "<specify path:> "
|
|
|
|
if [ ! -d $ZAPTEL_INSTALL_DIR ]; then
|
|
|
|
echo -e "Warning: $ZAPTEL_INSTALL_DIR does not exist\n"
|
|
|
|
fi
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
read response
|
|
|
|
|
|
|
|
[ $response ] && {
|
|
|
|
ZAPTEL_INSTALL_DIR=$response
|
|
|
|
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
|
|
|
|
else
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if [ ! -f $ZAPTEL_SOURCE_DIR/zaptel.h ]; then
|
|
|
|
echo " Zaptel source not found in $ZAPTEL_SOURCE_DIR"
|
|
|
|
ZAPTEL_SOURCE_DIR="/usr/src/zaptel"
|
|
|
|
ZAPTEL_INSTALL_DIR=$ZAPTEL_SOURCE_DIR
|
|
|
|
if test $NONINTERACTIVE; then
|
|
|
|
return 1
|
|
|
|
else
|
|
|
|
getyn " Press Y to specify another Zaptel source directory, N to exit"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
tdmv_get_zaptel_path
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
#zaptel.c renamed to zaptel-base.c in zaptel v1.2.13 and later
|
2021-12-29 17:15:08 +00:00
|
|
|
if [ -e $ZAPTEL_SOURCE_DIR/zaptel-base.c ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
ZAPTEL_C_FILE="zaptel-base.c";
|
|
|
|
fi
|
|
|
|
return 0;
|
2021-12-29 16:56:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function tdmv_apply_zaptel_dchan_patch_old ()
|
|
|
|
{
|
|
|
|
local rc
|
|
|
|
ZAPTEL_PATCH_FILE=zaptel.patch
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -e $PROD_HOME/zaptel ]; then
|
|
|
|
echo "Error: Zaptel Patch Directory Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
lhome=`pwd`
|
|
|
|
|
2021-12-29 17:15:08 +00:00
|
|
|
cd $ZAPTEL_SOURCE_DIR
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
if [ ! -e CVS ]; then
|
|
|
|
ZAPTEL_PATCH_FILE=zaptel-1.0.9.patch
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ ! -f $PROD_HOME/zaptel/$ZAPTEL_PATCH_FILE ];then
|
|
|
|
echo "Error: Zaptel Patch File zaptel/$ZAPTEL_PATCH_FILE Not Found!"
|
|
|
|
cd $lhome
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "grep \"DCHAN_TX\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "grep \"ZT_DCHAN_TX_V2\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Zaptel DCHAN patch V.02 already installed"
|
|
|
|
cd $lhome
|
|
|
|
return 0
|
|
|
|
else
|
2021-12-29 17:15:08 +00:00
|
|
|
echo "ERROR: Old Zaptel DCHAN patch detected in $ZAPTEL_SOURCE_DIR"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
echo " Please install a fresh version of Zaptel source and"
|
|
|
|
echo " run ./Setup again."
|
|
|
|
echo
|
|
|
|
cd $lhome
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
cp $PROD_HOME/zaptel/$ZAPTEL_PATCH_FILE zaptel.patch
|
|
|
|
|
|
|
|
eval "patch -p1 < zaptel.patch"
|
|
|
|
rc=$?
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
|
|
echo "Zaptel DCHAN Patch Failed"
|
|
|
|
rc=1
|
|
|
|
else
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "grep \"ZT_DCHAN_TX_V2\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Zaptel Source Patched with DCHAN V.02 Successfully"
|
|
|
|
rc=0
|
|
|
|
else
|
|
|
|
echo "Zaptel DCHAN V.02 Patch Failed"
|
|
|
|
rc=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $lhome
|
|
|
|
|
|
|
|
return $rc
|
|
|
|
}
|
2021-12-29 16:59:00 +00:00
|
|
|
function tdmv_apply_zaptel_chunk_patch () {
|
|
|
|
lhome=`pwd`
|
|
|
|
TEMP=tmp
|
2021-12-29 17:18:25 +00:00
|
|
|
cd $ZAPTEL_SOURCE_DIR
|
|
|
|
echo "Applying Zaptel Chunk patch..."
|
2021-12-29 16:59:00 +00:00
|
|
|
echo " "
|
|
|
|
#modify zaptel.h
|
|
|
|
eval "cat zaptel.h | sed '/^#define ZT_CHUNKSIZE/c\#define ZT_CHUNKSIZE $ZAP_CHUNK' >$TEMP 2>/dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to substitute ZT_CHUNKSIZE string in zaptel.h"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
eval "\mv -f $TEMP zaptel.h"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to overwrite existing zaptel.h"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo " Zaptel patched for chunk size successfully"
|
|
|
|
zaptel_modified=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
#remove wct4xxp module from Makefile
|
|
|
|
eval "cat Makefile |sed 's/wct1xxp wct4xxp wcte11xp/wct1xxp wcte11xp/g'>$TEMP 2>/dev/null "
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to remove wct4xxp from Makefile"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
eval "\mv -f $TEMP Makefile"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to overwrite existing Makefile"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo " wct4xxp module removed from Makefile successfully"
|
|
|
|
zaptel_modified=1
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 17:03:21 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
cd $ZAPTEL_INSTALL_DIR
|
2021-12-29 17:13:14 +00:00
|
|
|
eval "cat Makefile |sed 's/^SUBDIR_MODULES:=.*//g'>$TEMP 2>/dev/null "
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to remove wct4xxp from Makefile"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
eval "\mv -f $TEMP Makefile"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to overwrite existing Makefile"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo " wct4xxp module removed from Makefile successfully"
|
|
|
|
zaptel_modified=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:03:21 +00:00
|
|
|
if [ -f Makefile.kernel26 ]; then
|
|
|
|
eval "cat Makefile.kernel26 | sed 's/^obj-m.*+=.*wct4xx.*//g'>$TEMP 2>/dev/null "
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo " Failed to remove wct4xxp from Makefile.kernel26"
|
|
|
|
exit 1
|
|
|
|
|
|
|
|
else
|
|
|
|
eval "\mv -f $TEMP Makefile.kernel26"
|
|
|
|
echo " wct4xxp module removed from Makefile.kernel26 successfully"
|
|
|
|
zaptel_modified=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
cd $lhome
|
|
|
|
return 0;
|
|
|
|
}
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
function tdmv_apply_zaptel_echo_debug_patch ()
|
|
|
|
{
|
|
|
|
local rc
|
|
|
|
if [ ! -e $PROD_HOME/zaptel ]; then
|
|
|
|
echo "Error: Zaptel Patch Directory Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f $PROD_HOME/zaptel/$ZAPTEL_C_ECHO_DEBUG_PATCH ]; then
|
|
|
|
echo "Error: file $ZAPTEL_C_ECHO_DEBUG_PATCH Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f $PROD_HOME/zaptel/$ZAPTEL_H_ECHO_DEBUG_PATCH ]; then
|
|
|
|
echo "Error: file $ZAPTEL_H_ECHO_DEBUG_PATCH Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
#######################################################################################
|
|
|
|
lhome=`pwd`
|
2021-12-29 17:15:08 +00:00
|
|
|
cd $ZAPTEL_SOURCE_DIR
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
#check if some version of the patch is already installed in $ZAPTEL_C_FILE
|
|
|
|
eval "grep \"GET_ECHO_SPIKE_SAMPLE\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null"
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Echo Debugging patch for Zaptel already installed in $ZAPTEL_C_FILE."
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Consider using fresh (unpatched) Zaptel source."
|
|
|
|
cd $lhome
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
#check if some version of the patch is already installed in zaptel.h
|
|
|
|
eval "grep \"ECHO_SPIKE_SAMPLE_LEN\" zaptel.h > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Echo Debugging patch for Zaptel already installed in zaptel.h."
|
|
|
|
echo "Consider using fresh (unpatched) Zaptel source."
|
|
|
|
cd $lhome
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
#######################################################################################
|
|
|
|
cp $PROD_HOME/zaptel/$ZAPTEL_C_ECHO_DEBUG_PATCH .
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "patch $ZAPTEL_C_FILE $ZAPTEL_C_ECHO_DEBUG_PATCH > /dev/null 2> /dev/null"
|
2021-12-29 16:57:21 +00:00
|
|
|
rc=$?
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
|
|
echo "Echo Detection patch for Zaptel Failed (1)"
|
|
|
|
cd $lhome
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
#######################################################################################
|
|
|
|
eval "search_and_replace zaptel.h zaptel.h \"$ZAPTEL_H_SEARCH_STR\" \"$ZAPTEL_H_ECHO_DEBUG_PATCH_STR\""
|
|
|
|
rc=$?
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
|
|
echo "Echo Detection patch for Zaptel Failed (2)"
|
|
|
|
cd $lhome
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
#######################################################################################
|
|
|
|
cp $PROD_HOME/zaptel/$ZAPTEL_H_ECHO_DEBUG_PATCH .
|
|
|
|
eval "patch zaptel.h $ZAPTEL_H_ECHO_DEBUG_PATCH > /dev/null 2> /dev/null"
|
|
|
|
rc=$?
|
|
|
|
echo
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
|
|
echo "Echo Detection patch for Zaptel Failed (3)"
|
|
|
|
cd $lhome
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
#######################################################################################
|
|
|
|
echo " Zaptel Source patched with Echo Debugging code Successfully"
|
|
|
|
zaptel_modified=1
|
|
|
|
rc=0
|
|
|
|
cd $lhome
|
|
|
|
return $rc
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
function tdmv_apply_zaptel_edac_patch ()
|
|
|
|
{
|
|
|
|
local rc
|
|
|
|
|
|
|
|
if [ ! -e $PROD_HOME/edac ]; then
|
|
|
|
echo "Error: Zaptel Patch Directory Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f $PROD_HOME/edac/$EDAC_ZAP_PATCH_FILE ]; then
|
|
|
|
echo "Error: Echo Detection patch file for Zaptel edac/$EDAC_ZAP_PATCH_FILE Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
lhome=`pwd`
|
|
|
|
|
2021-12-29 17:15:08 +00:00
|
|
|
cd $ZAPTEL_SOURCE_DIR
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
#check if some version of the patch is already installed
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "grep \"SANGOMA_GET_ED_STATE\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Echo Detection patch for Zaptel already installed."
|
|
|
|
echo "Consider using fresh (unpatched) Zaptel source."
|
|
|
|
cd $lhome
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
cp $PROD_HOME/edac/$EDAC_ZAP_PATCH_FILE .
|
|
|
|
|
2021-12-29 17:15:08 +00:00
|
|
|
#eval "patch -F 3 -c -d $ZAPTEL_SOURCE_DIR < $EDAC_ZAP_PATCH_FILE"
|
2021-12-29 16:56:27 +00:00
|
|
|
eval "patch -p1 < $EDAC_ZAP_PATCH_FILE"
|
|
|
|
rc=$?
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
|
|
echo "Echo Detection patch for Zaptel Failed"
|
|
|
|
rc=1
|
|
|
|
else
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "grep \"SANGOMA_GET_ED_STATE\" $ZAPTEL_C_FILE > /dev/null 2> /dev/null"
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Zaptel Source patched with Echo Detection V1.00 Successfully"
|
|
|
|
rc=0
|
|
|
|
else
|
|
|
|
echo "Echo Detection and Control patch for Zaptel failed!"
|
|
|
|
rc=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $lhome
|
2021-12-29 16:57:21 +00:00
|
|
|
zaptel_modified=1
|
2021-12-29 16:56:27 +00:00
|
|
|
return $rc
|
|
|
|
}
|
|
|
|
|
|
|
|
function tdmv_apply_asterisk_edac_patch ()
|
|
|
|
{
|
|
|
|
local rc
|
|
|
|
|
|
|
|
tdmv_get_asterisk_source_path
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -e $PROD_HOME/edac ]; then
|
|
|
|
echo "Error: Zaptel Patch Directory Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d $ASTERISK_INSTALL_DIR/CVS ]; then
|
|
|
|
#We are running Asterisk CVS use the CVS patch
|
|
|
|
EDAC_ASTERISK_PATCH_FILE=$EDAC_ASTERISK_CVS_PATCH_FILE
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f $PROD_HOME/edac/$EDAC_ASTERISK_PATCH_FILE ]; then
|
|
|
|
echo "Error: Echo Detection patch file for Asterisk edac/$EDAC_ASTERISK_PATCH_FILE Not Found!"
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
lhome=`pwd`
|
|
|
|
|
|
|
|
cd $ASTERISK_INSTALL_DIR/channels
|
|
|
|
|
|
|
|
#check if some version of the patch is already installed
|
|
|
|
eval "grep \"SANGOMA_SPIKE_SAMPLE_LEN\" chan_zap.c > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Echo Detection patch for Asterisk already installed."
|
|
|
|
echo "Consider using fresh (unpatched) Asterisk source."
|
|
|
|
cd $lhome
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $ASTERISK_INSTALL_DIR
|
|
|
|
|
|
|
|
cp $PROD_HOME/edac/$EDAC_ASTERISK_PATCH_FILE .
|
|
|
|
|
|
|
|
eval "patch -p1 < $EDAC_ASTERISK_PATCH_FILE"
|
|
|
|
rc=$?
|
|
|
|
|
|
|
|
echo
|
|
|
|
|
|
|
|
if [ $rc -ne 0 ]; then
|
|
|
|
echo "Echo Detection patch for Asterisk Failed"
|
|
|
|
rc=1
|
|
|
|
else
|
|
|
|
cd $ASTERISK_INSTALL_DIR/channels
|
|
|
|
eval "grep \"SANGOMA_SPIKE_SAMPLE_LEN\" chan_zap.c > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Asterisk Source patched with Echo Detection V1.00 Successfully"
|
|
|
|
rc=0
|
|
|
|
else
|
|
|
|
echo "Echo Detection and Control patch for Asterisk failed!"
|
|
|
|
rc=1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
cd $lhome
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
return $rc
|
|
|
|
}
|
2021-12-29 16:57:21 +00:00
|
|
|
function tdmv_compile_zaptel()
|
|
|
|
{
|
|
|
|
lhome=`pwd`
|
|
|
|
|
|
|
|
cd $ZAPTEL_INSTALL_DIR
|
|
|
|
echo
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n " Removing current Zaptel compilation(make clean)..."
|
|
|
|
if [ -f configure ]; then
|
|
|
|
eval "./configure >> $PROD_HOME/zaptel_compilation_log 2>> $PROD_HOME/zaptel_compilation_log"
|
|
|
|
fi
|
|
|
|
eval "make clean >> $PROD_HOME/zaptel_compilation_log 2>> $PROD_HOME/zaptel_compilation_log"
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ ! $? -eq 0 ]; then
|
|
|
|
cat $PROD_HOME/zaptel_compilation_log
|
|
|
|
echo
|
|
|
|
echo "Error: Could not remove current Zaptel Compilation"
|
|
|
|
echo " See $PROD_HOME/zaptel_compilation_log for details"
|
|
|
|
echo " Contact Sangoma Tech Support"
|
|
|
|
echo
|
|
|
|
getyn "Would you like to continue?"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "OK"
|
2021-12-29 17:02:36 +00:00
|
|
|
if [ -e menuselect/mxml ]; then
|
|
|
|
cd menuselect/mxml
|
|
|
|
eval "grep \" $ZAPTEL_MENUSELECT_SEARCH_STR\" Makefile.in > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
eval "search_and_replace Makefile.in Makefile.in \"$ZAPTEL_MENUSELECT_SEARCH_STR\" \"$ZAPTEL_MENUSELECT_REMOVE\""
|
|
|
|
fi
|
|
|
|
if [ -e Makefile ]; then
|
|
|
|
eval "grep \" $ZAPTEL_MENUSELECT_SEARCH_STR\" Makefile > /dev/null 2> /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
eval "search_and_replace Makefile Makefile \"$ZAPTEL_MENUSELECT_SEARCH_STR\" \"$ZAPTEL_MENUSELECT_REMOVE\""
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:02:36 +00:00
|
|
|
cd $ZAPTEL_INSTALL_DIR
|
2021-12-29 16:59:00 +00:00
|
|
|
echo -n " Recompiling/reinstalling Zaptel(make install)..."
|
|
|
|
eval "make >> $PROD_HOME/zaptel_compilation_log 2>> $PROD_HOME/zaptel_compilation_log"
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ ! $? -eq 0 ]; then
|
|
|
|
echo
|
|
|
|
echo
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "-------------------------------------------"
|
2021-12-29 16:57:21 +00:00
|
|
|
cat $PROD_HOME/zaptel_compilation_log
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "-------------------------------------------"
|
2021-12-29 16:57:21 +00:00
|
|
|
echo
|
|
|
|
echo "Error: Zaptel recompilation/reinstallation failed"
|
|
|
|
echo " See $PROD_HOME/zaptel_compilation_log for details"
|
|
|
|
echo " Contact Sangoma Tech Support"
|
|
|
|
echo
|
|
|
|
getyn "Would you like to continue?"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
else
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "make install >> $PROD_HOME/zaptel_compilation_log 2>> $PROD_HOME/zaptel_compilation_log"
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "OK"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
cd $lhome
|
|
|
|
}
|
|
|
|
|
|
|
|
function tdmv_check_zaptel_udev()
|
|
|
|
{
|
|
|
|
echo -n "Checking for UDEV Zaptel compatibility..."
|
|
|
|
if [ ! -e /etc/udev ]; then
|
|
|
|
echo
|
|
|
|
echo " UDEV rules not used "
|
|
|
|
return 0
|
|
|
|
fi
|
|
|
|
#UDEV rules
|
|
|
|
if [ ! -f /etc/udev/rules.d/50-udev.rules ]; then
|
|
|
|
echo " UDEV rules not found/or not used "
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
eval "grep \"zapctl\" /etc/udev/rules.d/50-udev.rules > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
getyn " Would you like to add UDEV rules for Zaptel devices ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
cp /etc/udev/rules.d/50-udev.rules /etc/udev/rules.d/50-udev.rules.old
|
|
|
|
# echo "Your original udev rules have been copied to /etc/udev/rules.d/50-udev.rules.old"
|
|
|
|
|
|
|
|
cat $PROD_HOME/samples/udevRulesPatch >> /etc/udev/rules.d/50-udev.rules
|
|
|
|
eval "grep \"zapctl\" /etc/udev/rules.d/50-udev.rules > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo " UDEV rules applied successfully"
|
|
|
|
else
|
|
|
|
echo " UDEV rules patch failed"
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "OK"
|
|
|
|
fi
|
|
|
|
|
|
|
|
fi
|
|
|
|
#UDEV permissions
|
|
|
|
if [ ! -f /etc/udev/permissions.d/50-udev.permissions ]; then
|
|
|
|
echo " UDEV permissions not found/or not used "
|
|
|
|
return 0
|
|
|
|
else
|
|
|
|
eval "cat /etc/udev/permissions.d/50-udev.permissions |grep zap |grep root:root > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
getyn " Would you like to add UDEV permissions for root user ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
cp /etc/udev/permissions.d/50-udev.permissions /etc/udev/permissions.d/50-udev.permissions.old
|
|
|
|
# echo "Your original udev permisions have been copied to /etc/udev/permissions.d/50-udev.permissions.old"
|
|
|
|
|
|
|
|
echo -e "\n# zaptel devices -- for running asterisk as root" >> /etc/udev/permissions.d/50-udev.permissions
|
|
|
|
echo -e "zap/*:root:root:05700" >> /etc/udev/permissions.d/50-udev.permissions
|
|
|
|
|
|
|
|
eval "cat /etc/udev/permissions.d/50-udev.permissions |grep zap |grep root:root:05700 > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo " UDEV root permissions applied successfully"
|
|
|
|
else
|
|
|
|
echo " UDEV permissions patch failed"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
eval "cat /etc/udev/permissions.d/50-udev.permissions |grep zap |grep asterisk:asterisk > /dev/null"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo
|
|
|
|
getyn " Would you like to add UDEV Permissions for non-root user?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo -e "\n# zaptel devices -- for running asterisk as a different user " >> /etc/udev/permissions.d/50-udev.permissions
|
|
|
|
echo -e "zap/*:asterisk:asterisk:660" >> /etc/udev/permissions.d/50-udev.permissions
|
|
|
|
|
|
|
|
eval "cat /etc/udev/permissions.d/50-udev.permissions |grep zap |grep asterisk:asterisk:660 > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo " UDEV non-root permissions applied successfully"
|
|
|
|
else
|
|
|
|
echo " UDEV permissions patch failed"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
echo
|
|
|
|
pause
|
|
|
|
echo
|
|
|
|
}
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
function find_zap_dirs_invalid ()
|
|
|
|
{
|
|
|
|
echo
|
|
|
|
echo "Invalid Response $response"
|
|
|
|
echo
|
|
|
|
clear
|
|
|
|
find_zap_dirs "$1"
|
|
|
|
}
|
|
|
|
|
|
|
|
function find_zap_dirs ()
|
|
|
|
{
|
|
|
|
local cnt
|
|
|
|
local dir
|
|
|
|
local zapdir_manual=0
|
|
|
|
local zapdirs=$1
|
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $zaptel_auto_install = "YES" ]; then
|
|
|
|
banner
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
echo
|
|
|
|
echo "Looking for zaptel directory in /usr/src ..."
|
|
|
|
echo "-------------------------------------------"
|
|
|
|
if [ "$zapdirs" = "" ]; then
|
|
|
|
zapdirs=`find /usr/src -maxdepth 2 -name 'zaptel*' | xargs `
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ -d "/usr/src/zaptel" ]; then
|
|
|
|
zapdirs="/usr/src/zaptel "$zapdirs
|
|
|
|
fi
|
2021-12-29 17:14:12 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
unset zapdir_array;
|
|
|
|
|
|
|
|
if [ -f $PROD_HOME/zaptel/zaptel.path ]; then
|
|
|
|
zapextradir=`cat $PROD_HOME/zaptel/zaptel.path`
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
cnt=1
|
|
|
|
for dir in $zapdirs
|
|
|
|
do
|
|
|
|
if [ ! -d $dir ]; then
|
|
|
|
continue
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -f $dir/zaptel.h ] && [ ! -f $dir/kernel/zaptel.h ]; then
|
2021-12-29 17:14:12 +00:00
|
|
|
continue;
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ "$dir" = "/usr/src/zaptel" ] && [ $cnt -ne 1 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
continue;
|
|
|
|
fi
|
2021-12-29 17:12:33 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
zapdir_array[$cnt]=$dir;
|
|
|
|
echo "$cnt : $dir "
|
|
|
|
|
|
|
|
cnt=$((cnt+1))
|
|
|
|
done
|
|
|
|
|
|
|
|
if [ $cnt -eq 1 ]; then
|
|
|
|
echo
|
|
|
|
echo "No zaptel dirs found in /usr/src "
|
|
|
|
echo "Please use option \"m\" to enter zaptel path"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
echo "------------------------------------------ "
|
|
|
|
|
|
|
|
for dir in $zapextradir
|
|
|
|
do
|
|
|
|
if [ ! -d $dir ]; then
|
|
|
|
continue
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -f $dir/zaptel.h ] && [ ! -f $dir/kernel/zaptel.h ]; then
|
2021-12-29 17:12:33 +00:00
|
|
|
continue;
|
|
|
|
fi
|
|
|
|
|
|
|
|
zapdir_array[$cnt]=$dir;
|
|
|
|
echo "$cnt : $dir (entered manually) "
|
|
|
|
|
|
|
|
cnt=$((cnt+1))
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
|
|
echo "------------------------------------------ "
|
|
|
|
echo "m : Enter zaptel path manually"
|
|
|
|
echo
|
|
|
|
# echo "d2: Download Latest 1.2"
|
|
|
|
# echo "d4: Download Latest 1.4"
|
|
|
|
echo "(ctrl-c to Exit)"
|
2021-12-29 17:14:12 +00:00
|
|
|
echo -n "Please select working zaptel directory [1-$((cnt-1))][m]: "
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
response=1
|
|
|
|
|
|
|
|
if [ -z $NONINTERACTIVE ] || [ $zaptel_auto_install = "YES" ]; then
|
|
|
|
read response
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$response" = "" ]; then
|
|
|
|
find_zap_dirs_invalid "$zapdirs"
|
|
|
|
elif [ $response = "m" ]; then
|
|
|
|
echo
|
|
|
|
echo "Please enter zaptel dir: [Default: $ZAPTEL_DFLT_INSTALL_DIR]"
|
|
|
|
echo -n "#> "
|
|
|
|
read response
|
|
|
|
|
|
|
|
if [ "$response" = "" ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR
|
2021-12-29 17:12:33 +00:00
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
ZAPTEL_INSTALL_DIR=$response
|
2021-12-29 17:12:33 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
zapdir_manual=1
|
|
|
|
|
|
|
|
# elif [ $response = "q" ]; then
|
|
|
|
# find_zap_dir_quit=1
|
|
|
|
# return 1;
|
|
|
|
|
|
|
|
elif [ $response -gt 0 ] && [ $response -lt $cnt ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
ZAPTEL_INSTALL_DIR=${zapdir_array[$response]}
|
2021-12-29 17:12:33 +00:00
|
|
|
else
|
|
|
|
find_zap_dirs_invalid "$zapdirs"
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
#Check if this is post Zaptel-1.4.9
|
|
|
|
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
|
2021-12-29 17:15:08 +00:00
|
|
|
else
|
2021-12-29 17:18:25 +00:00
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
|
2021-12-29 17:15:08 +00:00
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:15:08 +00:00
|
|
|
if [ ! -f $ZAPTEL_SOURCE_DIR/zaptel.h ]; then
|
2021-12-29 17:12:33 +00:00
|
|
|
echo
|
2021-12-29 17:15:08 +00:00
|
|
|
echo "Error: zaptel.h not found in $ZAPTEL_SOURCE_DIR"
|
2021-12-29 17:12:33 +00:00
|
|
|
echo
|
|
|
|
echo
|
|
|
|
zapdir_manual=0
|
|
|
|
pause 1
|
|
|
|
clear
|
|
|
|
find_zap_dirs "$zapdirs"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $find_zap_dir_quit -eq 1 ] ; then
|
2021-12-29 17:18:25 +00:00
|
|
|
ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR
|
2021-12-29 17:12:33 +00:00
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $zapdir_manual -eq 1 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
eval "grep \"$ZAPTEL_INSTALL_DIR\" $PROD_HOME/zaptel/zaptel.path 2> /dev/null > /dev/null "
|
2021-12-29 17:12:33 +00:00
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "$ZAPTEL_INSTALL_DIR" >> $PROD_HOME/zaptel/zaptel.path
|
2021-12-29 17:12:33 +00:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:15:08 +00:00
|
|
|
#echo "GO AUTOMATIC ZAPDIR= $ZAPTEL_SOURCE_DIR"
|
2021-12-29 17:12:33 +00:00
|
|
|
|
|
|
|
ZAPTEL_PATH_OP="YES";
|
|
|
|
|
|
|
|
#zaptel.c renamed to zaptel-base.c in zaptel v1.2.13 and later
|
2021-12-29 17:15:08 +00:00
|
|
|
if [ -e $ZAPTEL_SOURCE_DIR/zaptel-base.c ]; then
|
2021-12-29 17:12:33 +00:00
|
|
|
ZAPTEL_C_FILE="zaptel-base.c";
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
return 0;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
function tdmv_get_asterisk_source_path ()
|
|
|
|
{
|
|
|
|
echo
|
|
|
|
echo -e "\nPlease specify absolute path to Asterisk source directory"
|
|
|
|
echo -e "\n\t(Press Enter for Default: $ASTERISK_INSTALL_DIR)\n"
|
|
|
|
if test -z $NONINTERACTIVE; then
|
|
|
|
read response
|
|
|
|
|
|
|
|
[ $response ] && {
|
|
|
|
ASTERISK_INSTALL_DIR=$response
|
|
|
|
}
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ ! -f $ASTERISK_INSTALL_DIR/channels/chan_zap.c ]; then
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
WARNING: The Asterisk Source directory has not been
|
|
|
|
found in $ASTERISK_INSTALL_DIR!
|
|
|
|
EDAC installation failed.
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
return 1;
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
function enable_protocols ()
|
|
|
|
{
|
|
|
|
local PROT_MATCH=NO
|
|
|
|
local PROTOCOL=$1
|
|
|
|
local ARG
|
|
|
|
|
|
|
|
ARG=${2:-NO}
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "$PROTOCOL" | grep "BRI" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "Enabling the AFT BRI SMG Support"
|
|
|
|
SSMG_BRI="YES"
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "$PROTOCOL" | grep "FR" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $FR_PROT != YES ]; then
|
|
|
|
echo "Enabling the FR Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_FR "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
FR_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "CHDLC" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $CHDLC_PROT != YES ]; then
|
|
|
|
echo "Enabling the CHDLC Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_CHDLC "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
CHDLC_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "PPP" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $PPP_PROT != YES ]; then
|
|
|
|
echo "Enabling the PPP Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_PPP "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
PPP_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "X25" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $X25_PROT != YES ]; then
|
|
|
|
echo "Enabling the X25 API Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_X25 "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
X25_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "ADSL" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ -z $ARCH ]; then
|
|
|
|
ARCH=`uname -m`
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ $KERN_VER != 24 ] && [ $KERN_VER != 26 ]; then
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WARNING: The ADSL Protocol not supported on non 2.4.X kernels!
|
|
|
|
Please contact Sangoma Technologies for more info.
|
|
|
|
Tel. 905 474 1990 ex113
|
|
|
|
Email: techdesk@sangoma.com
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
ADSL_PROT=NO
|
|
|
|
PROT_MATCH=YES
|
|
|
|
|
|
|
|
elif [ $ARCH = "x86_64" ] || [ $ARCH = "ia64" ]; then
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WARNING: The ADSL Protocol not supported on 64bit architectures!
|
|
|
|
Please contact Sangoma Technologies for more info.
|
|
|
|
Tel. 905 474 1990 ex113
|
|
|
|
Email: techdesk@sangoma.com
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
ADSL_PROT=NO
|
|
|
|
PROT_MATCH=YES
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
if [ $ADSL_PROT != YES ]; then
|
|
|
|
echo "Enabling the ADSL Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_ADSL "
|
|
|
|
fi
|
|
|
|
ADSL_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "$PROTOCOL" | grep "KATM" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ $KATM_PROT != YES ]; then
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_LIP_KATM "
|
|
|
|
fi
|
|
|
|
|
|
|
|
KATM_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
|
|
|
|
#Note that KATM will also match
|
|
|
|
#ATM protocol, so ATM will automatically be
|
|
|
|
#enabled.
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
echo "$PROTOCOL" | grep "ATM" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ $KERN_VER != 24 ] && [ $KERN_VER != 26 ]; then
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WARNING: The ATM Protocol not supported on kernels lower than 2.4.0!
|
|
|
|
Please contact Sangoma Technologies for more info.
|
|
|
|
Tel. 905 474 1990 ex113
|
|
|
|
Email: techdesk@sangoma.com
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
ATM_PROT=NO
|
|
|
|
PROT_MATCH=YES
|
|
|
|
else
|
|
|
|
|
|
|
|
if [ $ATM_PROT != YES ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_LIP_ATM -DCONFIG_PRODUCT_WANPIPE_ATM "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
ATM_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "XMTP2" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $XMTP2_PROT != YES ]; then
|
|
|
|
echo "Enabling the SS7 XMTP2 Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_XMTP2 "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
XMTP2_PROT=YES
|
2021-12-29 16:59:00 +00:00
|
|
|
SSMG=YES
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "MFR" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $MFR_PROT != YES ]; then
|
|
|
|
echo "Enabling the Multi-Port Frame Relay Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_MULTFR "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
MFR_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "MPROT" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $MPPP_PROT != YES ]; then
|
|
|
|
echo "Enabling the Multi Protocol Driver"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_MULTPROT "
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
MPPP_PROT=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "EDU" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $EDU_PROT != YES ]; then
|
|
|
|
echo "Enabling the EDU Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_EDU "
|
|
|
|
fi
|
|
|
|
EDU_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "BISYNC" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $BISYNC_PROT != YES ]; then
|
|
|
|
echo "Enabling the BISYNC Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_BSC "
|
|
|
|
fi
|
|
|
|
BISYNC_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "BITSTRM" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $BITSTRM_PROT != YES ]; then
|
|
|
|
echo "Enabling the BITSTRM Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_BITSTRM "
|
|
|
|
fi
|
|
|
|
BITSTRM_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "BSCSTRM" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $BSCSTRM_PROT != YES ]; then
|
|
|
|
echo "Enabling the BSCSTRM Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_BSCSTRM "
|
|
|
|
fi
|
|
|
|
BSCSTRM_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "SDLC" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $SDLC_PROT != YES ]; then
|
|
|
|
echo "Enabling the SDLC Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_SDLC "
|
|
|
|
fi
|
|
|
|
SDLC_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "POS" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $POS_PROT != YES ]; then
|
|
|
|
echo "Enabling the POS Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_POS "
|
|
|
|
fi
|
|
|
|
POS_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "ADCCP" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $ADCCP_PROT != YES ]; then
|
|
|
|
echo "Enabling the ADCCP Lapb Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_ADCCP "
|
|
|
|
fi
|
|
|
|
ADCCP_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "ASYHDLC" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $ASYHDLC_PROT != YES ]; then
|
|
|
|
echo "Enabling the ASYHDLC API Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_ASYHDLC "
|
|
|
|
fi
|
|
|
|
ASYHDLC_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "AFT_TE1" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $AFT_TE1_PROT != YES ]; then
|
|
|
|
echo "Enabling the AFT TE1 Support"
|
2021-12-29 17:18:25 +00:00
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_AFT -DCONFIG_PRODUCT_WANPIPE_AFT_CORE -DCONFIG_PRODUCT_WANPIPE_AFT_TE1 -DCONFIG_PRODUCT_WANPIPE_AFT_56K -DCONFIG_PRODUCT_WANPIPE_AFT_RM -DCONFIG_PRODUCT_WANPIPE_CODEC_SLINEAR_LAW -DCONFIG_PRODUCT_WANPIPE_AFT_BRI -DCONFIG_PRODUCT_WANPIPE_AFT_SERIAL "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
AFT_TE1_PROT=YES
|
2021-12-29 17:18:25 +00:00
|
|
|
AFT_BRI_PROT=YES
|
|
|
|
AFT_SERIAL_PROT=YES
|
2021-12-29 16:56:27 +00:00
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "AFT_TE3" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $AFT_TE3_PROT != YES ]; then
|
|
|
|
echo "Enabling the AFT TE3 Support"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_AFT_TE3 "
|
|
|
|
fi
|
|
|
|
AFT_TE3_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "LIPAPI" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
if [ $XDLC_PROT != YES ]; then
|
|
|
|
echo "Enabling the XDLC Support"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_XDLC "
|
|
|
|
fi
|
|
|
|
if [ $LAPB_PROT != YES ]; then
|
|
|
|
echo "Enabling the LAPB Support"
|
2021-12-29 16:59:00 +00:00
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_LIP_LAPB -DCONFIG_PRODUCT_WANPIPE_LIP_LAPD "
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
XDLC_PROT=YES
|
|
|
|
LAPB_PROT=YES
|
|
|
|
LIPAPI_PROT=YES
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "TDM" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
tdmv_get_zaptel_path
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
ZAP_MOD_DIR=/lib/modules/$(uname -r)
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ $KERN_VER -eq 24 ]; then
|
|
|
|
ZAPTEL_NAME=zaptel.o
|
|
|
|
else
|
|
|
|
ZAPTEL_NAME=zaptel.ko
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -e $ZAP_MOD_DIR/zaptel/$ZAPTEL_NAME ] && [ -e $ZAP_MOD_DIR/misc/$ZAPTEL_NAME ]; then
|
|
|
|
echo
|
|
|
|
echo "-------------------------------------------------------------"
|
|
|
|
echo "CRITICAL WARNING: Multiple ZAPTEL Installations Found"
|
|
|
|
echo
|
|
|
|
echo "./Setup has found MULTIPLE ZAPTEL driver installations in:"
|
|
|
|
echo " $ZAP_MOD_DIR/zaptel and"
|
|
|
|
echo " $ZAP_MOD_DIR/misc directory."
|
|
|
|
echo
|
|
|
|
echo " The ZAPTEL drivers in $ZAP_MOD_DIR/zaptel are OLD."
|
|
|
|
echo
|
|
|
|
echo " This is illegal, and CAN cause Wanpipe to CRASH."
|
|
|
|
echo
|
|
|
|
echo " Please solve this PROBLEM by removing OLD ZAPTEL"
|
2021-12-29 17:12:33 +00:00
|
|
|
echo " kerenl modules before installing WANPIPE. "
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
|
|
|
echo " eg: rm -rf $ZAP_MOD_DIR/zaptel"
|
|
|
|
echo " depmod -a"
|
|
|
|
echo
|
|
|
|
echo " For more info please Contact Sangoma Technologies."
|
|
|
|
echo "-------------------------------------------------------------"
|
|
|
|
|
|
|
|
TDM_PROT=NO
|
|
|
|
TDM_DCHAN=
|
2021-12-29 17:12:33 +00:00
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
exit 1
|
|
|
|
else
|
2021-12-29 17:12:33 +00:00
|
|
|
echo
|
2021-12-29 17:02:04 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
if [ $TDM_PROT != YES ]; then
|
|
|
|
echo "Enabling the TDM Voice Asterisk Support"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE "
|
2021-12-29 17:18:25 +00:00
|
|
|
ASTERISK_IFLAGS="-I$ZAPTEL_INSTALL_DIR"
|
2021-12-29 17:12:33 +00:00
|
|
|
WANCFG_ZAPTEL_CFG=YES
|
|
|
|
fi
|
2021-12-29 17:00:45 +00:00
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
#Check for new zaptel hw hdlc option
|
2021-12-29 17:15:08 +00:00
|
|
|
if [ -f $ZAPTEL_SOURCE_DIR/zaptel-base.c ]; then
|
|
|
|
eval "grep hdlc_hard_xmit $ZAPTEL_SOURCE_DIR/zaptel-base.c > /dev/null 2> /dev/null"
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ $? -eq 0 ] ; then
|
2021-12-29 17:18:25 +00:00
|
|
|
echo " "
|
|
|
|
echo "Zaptel HW HDLC Support Detected: Enabling DCHAN Feature"
|
2021-12-29 17:14:12 +00:00
|
|
|
echo "Native Zaptel HW HDLC Support Detected - No patch required"
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "Zaptel source unmodified"
|
|
|
|
echo " "
|
2021-12-29 17:14:45 +00:00
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
TDM_DCHAN="(DCHAN)"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN_ZAPTEL "
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 17:14:12 +00:00
|
|
|
#Check if dchan patch is already enabled
|
|
|
|
if [ "$TDM_DCHAN" = "" ]; then
|
2021-12-29 17:15:08 +00:00
|
|
|
eval "grep ZT_DCHAN_TX_V2 $ZAPTEL_SOURCE_DIR/* 2> /dev/null > /dev/null"
|
2021-12-29 17:14:12 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
TDM_DCHAN="(DCHAN)"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN"
|
|
|
|
echo "Sangoma DCHAN Patch detected in zaptel"
|
|
|
|
zaptel_modified=1
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 17:12:33 +00:00
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
#If DCHAN patch is not enabled give option to enable it
|
2021-12-29 17:12:33 +00:00
|
|
|
if [ "$TDM_DCHAN" = "" ]; then
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
2021-12-29 17:12:33 +00:00
|
|
|
getyn "Enable TDMV DCHAN Native HDLC Support & Patch Zaptel (recommended) ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_DCHAN"
|
|
|
|
echo
|
2021-12-29 17:15:08 +00:00
|
|
|
eval "$PROD_HOME/patches/sangoma-zaptel-patch.sh $ZAPTEL_SOURCE_DIR"
|
2021-12-29 17:12:33 +00:00
|
|
|
result=$?
|
|
|
|
if [ $result -eq 0 ]; then
|
|
|
|
TDM_DCHAN="(DCHAN)"
|
|
|
|
echo " Zaptel DCHAN Patch successful"
|
|
|
|
echo
|
2021-12-29 17:14:12 +00:00
|
|
|
zaptel_modified=1
|
2021-12-29 17:12:33 +00:00
|
|
|
elif [ $result -eq 1 ]; then
|
|
|
|
TDM_DCHAN="(DCHAN)"
|
2021-12-29 17:14:12 +00:00
|
|
|
zaptel_modified=1
|
2021-12-29 17:18:25 +00:00
|
|
|
echo
|
2021-12-29 17:12:33 +00:00
|
|
|
else
|
|
|
|
echo "Zaptel Update Failed!"
|
|
|
|
echo
|
|
|
|
echo "Your zaptel source is now corrupted"
|
|
|
|
echo "Please untar new zaptel source in $ZAPTEL_INSTALL_DIR."
|
|
|
|
echo
|
|
|
|
echo "Please contact Sangoma support!"
|
|
|
|
echo
|
|
|
|
TDM_DCHAN=
|
|
|
|
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $ZAP_CHUNK_OP == "YES" ] ; then
|
2021-12-29 17:18:25 +00:00
|
|
|
tdmv_apply_zaptel_chunk_patch
|
2021-12-29 16:59:00 +00:00
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
|
|
|
|
####################################################################
|
|
|
|
if [ $ENABLE_ECHO_DEBUG -eq 1 ]; then
|
|
|
|
getyn "Compile Echo Debugging Support for Zaptel ? "
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
tdmv_apply_zaptel_echo_debug_patch
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
zaptel_modified=1
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
2021-12-29 16:57:21 +00:00
|
|
|
ENABLE_ECHO_DEBUG=0
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Echo Debug Patch Failed!! Your Zaptel source may be corrupted!!"
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
getyn " Confirm Echo Debugging Support for Zaptel Patching ?"
|
2021-12-29 16:56:27 +00:00
|
|
|
echo
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ $? -eq 1 ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
####################################################################
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ $ENABLE_EDAC -gt 0 ] && [ "$ECHO_MASTER_PROT" = "NO" ]; then
|
|
|
|
echo
|
|
|
|
getyn "Compile TDMV Echo Detection and Control (EDAC) Support (y/n)? "
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo
|
|
|
|
tdmv_apply_zaptel_edac_patch
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "Note: Please recompile/reinstall ZAPTEL drivers"
|
|
|
|
echo
|
|
|
|
echo
|
|
|
|
getyn "Confirm EDAC Zaptel Patching: yes/no to continue!"
|
|
|
|
|
|
|
|
#now patch Asterisk
|
|
|
|
tdmv_apply_asterisk_edac_patch
|
|
|
|
##############################
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
#both Zaptel and Asterisk patched successfully
|
2021-12-29 16:57:21 +00:00
|
|
|
zaptel_modified=1
|
|
|
|
asterisk_modified=1
|
2021-12-29 16:56:27 +00:00
|
|
|
getyn "Confirm EDAC Asterisk Patching: yes/no to continue!"
|
|
|
|
ECHO_MASTER_PROT=YES
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_TDM_VOICE_ECHOMASTER"
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
ECHO_MASTER_PROT=NO
|
|
|
|
fi
|
|
|
|
##############################
|
|
|
|
else
|
|
|
|
echo
|
|
|
|
ECHO_MASTER_PROT=NO
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
TDM_PROT=YES
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $zaptel_modified ] && [ $zaptel_modified -eq 1 ] && [ "$ZAPTEL_COMPILE_DISABLE" = "NO" ]; then
|
2021-12-29 17:12:33 +00:00
|
|
|
echo
|
|
|
|
getyn "Recompile/reinstall Zaptel (recommended) ?"
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
tdmv_compile_zaptel
|
|
|
|
else
|
|
|
|
echo " Recompile/reinstall zaptel after Wanpipe installation"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
if [ $asterisk_modified ] && [ $asterisk_modified -eq 1 ]; then
|
|
|
|
getyn "Your Asterisk source was modified, recompile/reinstall zaptel ?"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo "DavidY: Compile Asterisk here"
|
|
|
|
# tdmv_compile_asterisk
|
|
|
|
else
|
|
|
|
echo " Recompile/reinstall Asterisk after Wanpipe installation"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
tdmv_check_zaptel_udev
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "MPAPI" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ ! -d $DRIVER_UPDATE_DIR/src/net/annexg ]; then
|
|
|
|
|
|
|
|
if [ $ARG = YES ]; then
|
|
|
|
ANNEXG_LOAD=YES;
|
|
|
|
else
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
WARNING: The MPAPI Protocol Stacks are not part of this release!
|
|
|
|
Please contact Sangoma Technologies
|
|
|
|
Tel. 905 474 1990 ex113
|
|
|
|
Email: techdesk@sangoma.com
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
|
|
|
|
if [ $ANNEXG_PROT != YES ]; then
|
|
|
|
echo "Enabling the MPAPI Protocol Stacks"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_ANNEXG "
|
|
|
|
fi
|
|
|
|
ANNEXG_PROT=YES
|
|
|
|
|
|
|
|
if [ $MPPP_PROT != YES ]; then
|
|
|
|
echo "Enabling the Multi Protocol Driver"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_MULTPROT "
|
|
|
|
fi
|
|
|
|
MPPP_PROT=YES
|
|
|
|
|
|
|
|
if [ $MFR_PROT != YES ]; then
|
|
|
|
echo "Enabling the Multi-Port Frame Relay Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_MULTFR "
|
|
|
|
fi
|
|
|
|
MFR_PROT=YES
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
echo "$PROTOCOL" | grep "SS7" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
if [ ! -f $DRIVER_UPDATE_DIR/src/net/sdla_ss7.c ]; then
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WARNING: The SS7 Protocol is not part of this release!
|
|
|
|
Please contact Sangoma Technologies
|
|
|
|
Tel. 905 474 1990 ex113
|
|
|
|
Email: techdesk@sangoma.com
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
pause
|
|
|
|
else
|
|
|
|
|
|
|
|
if [ $SS7_PROT != YES ]; then
|
|
|
|
echo "Enabling the SS7 Protocol"
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DCONFIG_PRODUCT_WANPIPE_SS7 "
|
|
|
|
fi
|
|
|
|
SS7_PROT=YES
|
|
|
|
fi
|
|
|
|
PROT_MATCH=YES
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ $PROT_MATCH = NO ]; then
|
|
|
|
echo
|
|
|
|
echo "Error: invalid --protocol option"
|
|
|
|
echo
|
|
|
|
echo "Available non-default protocols are: $AVAIL_PROTOCOLS";
|
|
|
|
echo "Example: ./Setup install --protocol=BITSTRM-BISYNC"
|
|
|
|
echo
|
|
|
|
return 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
function init_all_protocols ()
|
|
|
|
{
|
|
|
|
FR_PROT=NO
|
2021-12-29 17:20:30 +00:00
|
|
|
LIP_HDLC_PROT=NO
|
2021-12-29 16:56:27 +00:00
|
|
|
PPP_PROT=NO
|
|
|
|
CHDLC_PROT=NO
|
|
|
|
X25_PROT=NO
|
|
|
|
AFT_TE1_PROT=NO
|
2021-12-29 17:18:25 +00:00
|
|
|
AFT_BRI_PROT=NO
|
|
|
|
AFT_SERIAL_PROT=NO
|
2021-12-29 16:56:27 +00:00
|
|
|
AFT_TE3_PROT=NO
|
2021-12-29 17:18:25 +00:00
|
|
|
SSMG=NO
|
|
|
|
SSMG_BRI=NO
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
WAN_FRM_UPDATE_DRIVER=YES
|
|
|
|
|
|
|
|
LIP_PROT=YES
|
|
|
|
LIP_LOAD=YES
|
|
|
|
|
|
|
|
ECHO_MASTER_PROT=NO
|
|
|
|
|
|
|
|
ADSL_PROT=NO
|
|
|
|
MFR_PROT=NO
|
|
|
|
ANNEXG_PROT=NO
|
|
|
|
ANNEXG_LOAD=NO
|
|
|
|
MPPP_PROT=NO
|
|
|
|
ATM_PROT=NO
|
2021-12-29 16:59:00 +00:00
|
|
|
KATM_PROT=NO
|
2021-12-29 16:56:27 +00:00
|
|
|
XMTP2_PROT=NO
|
|
|
|
|
|
|
|
SS7_PROT=NO
|
|
|
|
EDU_PROT=NO
|
|
|
|
BISYNC_PROT=NO
|
|
|
|
BITSTRM_PROT=NO
|
|
|
|
BSCSTRM_PROT=NO
|
|
|
|
SDLC_PROT=NO
|
|
|
|
POS_PROT=NO
|
|
|
|
ADCCP_PROT=NO
|
|
|
|
ASYHDLC_PROT=NO
|
|
|
|
TDM_PROT=NO
|
|
|
|
|
|
|
|
LAPB_PROT=NO
|
|
|
|
XDLC_PROT=NO
|
|
|
|
LIPAPI_PROT=NO
|
|
|
|
|
|
|
|
EXTRA_LINK_MODULES=""
|
|
|
|
PROTOCOL_DEFINES="-DCONFIG_PRODUCT_WANPIPE_BASE "
|
|
|
|
|
|
|
|
TDM_DCHAN=
|
|
|
|
}
|
|
|
|
|
|
|
|
function detect_rpm_build_utility()
|
|
|
|
{
|
|
|
|
local use_rpmbuild=0
|
|
|
|
|
|
|
|
RPM=`which rpmbuild`
|
|
|
|
if [ "$RPM" = "" ]; then
|
|
|
|
RPM=`which rpm`
|
|
|
|
if [ "$RPM" = "" ]; then
|
|
|
|
echo "Error: RPM executable not found!"
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
use_rpmbuild=1
|
|
|
|
fi
|
|
|
|
|
|
|
|
rpmver=`$RPM --version 2> /dev/null | cut -d ' ' -f3 | cut -d '.' -f1`
|
|
|
|
if [ ! -z $rpmver ] && [ $rpmver -lt 4 ]; then
|
|
|
|
RPMOPT="--buildroot"
|
|
|
|
else
|
|
|
|
if [ $use_rpmbuild -eq 1 ]; then
|
|
|
|
RPMOPT="--buildroot"
|
|
|
|
else
|
|
|
|
RPMOPT="--root"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
function compile_aft_firmware_util()
|
|
|
|
{
|
|
|
|
lhome=`pwd`
|
|
|
|
\cp -f $PROD_HOME/util/wan_aftup $PROD_HOME/rpmbuild/etc/wanpipe/firmware/ -r
|
|
|
|
|
|
|
|
cd $PROD_HOME/rpmbuild/etc/wanpipe/firmware/wan_aftup
|
|
|
|
echo "Compiling firmware update utilities..."
|
|
|
|
eval "make wan_aftup" >/dev/null 2>/dev/null
|
|
|
|
if [ ! $? -eq 0 ]; then
|
|
|
|
echo "failed"
|
|
|
|
exit
|
|
|
|
else
|
|
|
|
echo "done"
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
\rm -f *.c
|
|
|
|
\rm -f *.o
|
|
|
|
\rm -f *.h
|
|
|
|
\rm -f Makefile
|
|
|
|
cd $lhome
|
|
|
|
}
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
function usage()
|
|
|
|
{
|
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
cat <<ENDOFTEXT | less
|
2021-12-29 16:56:27 +00:00
|
|
|
USAGE:
|
|
|
|
======
|
|
|
|
|
|
|
|
./Setup {command}
|
|
|
|
or
|
|
|
|
./Setup {command} [ optinal command extensions ]
|
|
|
|
|
|
|
|
commands:
|
|
|
|
---------
|
2021-12-29 16:59:00 +00:00
|
|
|
install : Install/Upgrade WANPIPE
|
|
|
|
upgrade : Upgrade WANPIPE kernel device drivers
|
|
|
|
and utilities. (Same as install!)
|
|
|
|
remove : Uninstall WANPIPE
|
|
|
|
remove_init : Uninstall WANPIPE Boot Startup Scripts
|
|
|
|
install_init : Install WANPIPE Boot Startup Scripts
|
|
|
|
drivers : Re-install and Re-compile
|
|
|
|
WANPIPE kernel device drivers ONLY
|
|
|
|
buildrpm : Build the custom WANPIPE RPM binary for the
|
|
|
|
current system.
|
|
|
|
For further help read README.rpm
|
|
|
|
helprpm : RPM build help information.
|
|
|
|
builddeb : Build the custom WANPIPE Debian binary
|
|
|
|
: package for current system.
|
|
|
|
utility : Re-compile WANPIPE Tools/Utilities
|
|
|
|
<any key> : Help
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
optional command extensions:
|
|
|
|
----------------------------
|
|
|
|
|
|
|
|
--silent : Non interactive. Run all above commands
|
|
|
|
without user interaction. Thus default
|
|
|
|
environment values are assumed such
|
|
|
|
as:
|
|
|
|
|
|
|
|
Linux source dir: $SOURCEDIR
|
|
|
|
Architecture : uname -m
|
|
|
|
Kernel Image : uname -r
|
|
|
|
|
|
|
|
--builddir : Install WANPIPE package into a virtual
|
|
|
|
directory. The path must be
|
|
|
|
absolute and must exist. Default is set
|
|
|
|
to system root( / ).
|
|
|
|
eg: --builddir=/root/wanpipe_build
|
|
|
|
|
|
|
|
--with-linux: Build modules using a custom linux
|
|
|
|
source directory. Default value is
|
|
|
|
set to $SOURCEDIR
|
|
|
|
eg: --with-linux=/usr/src/linux-2.4.4
|
|
|
|
|
|
|
|
--arch : Build modules using a custom defined
|
|
|
|
architecture. (i686 or i586)
|
|
|
|
By default: (uname -m)
|
|
|
|
eg: --arch=i686
|
|
|
|
|
|
|
|
--split_rpms: Option to split the rpm build into
|
|
|
|
util and modules package. Thus,
|
|
|
|
splitting user space utilities and
|
|
|
|
kernel modules into two packages.
|
|
|
|
Default: one rpm package containing
|
|
|
|
both utilites and modules.
|
|
|
|
eg: ./Setup buildrpm --split_rpms
|
|
|
|
|
|
|
|
--linux-vanilla: Compile wanpipe drivers as if the
|
|
|
|
current linux source is a vanilla source.
|
|
|
|
Used to remove the default assumption that
|
|
|
|
stock distribution kernels pull changes
|
|
|
|
from higher linux kernel versions.
|
|
|
|
|
|
|
|
--no-gcc-debug: Remove -g option out of gcc compile argumetns.
|
|
|
|
|
|
|
|
|
|
|
|
--protocol: Option to compile in extra protocols
|
|
|
|
that are not installed by default.
|
|
|
|
eg: ./Setup install --protocol=<PROT>
|
|
|
|
|
|
|
|
Extra Protocols Supported:
|
|
|
|
|
|
|
|
SS7 : SS7 Level 2 API prot support
|
|
|
|
|
|
|
|
BITSTRM: BitStreaming Protocol support
|
|
|
|
|
|
|
|
BSCSTRM: Nasdaq BiSync API protocol
|
|
|
|
|
|
|
|
BISYNC : Multi-Point Bisync API protocol
|
|
|
|
|
|
|
|
SDLC : SDLC API protocol support
|
|
|
|
|
|
|
|
EDU : Wan EduKit Driver suporrt
|
|
|
|
|
|
|
|
POS : POS (S509/S515) hw/prot support
|
|
|
|
|
|
|
|
SDLC : SDLC API protocol
|
|
|
|
|
|
|
|
MPAPI : Multi Protocol API: X25,LAPB,DSP
|
|
|
|
|
|
|
|
ADCCP : ADCCP API protocol (LapB)
|
|
|
|
|
|
|
|
TDM : Hardware TDM VOICE support to Asterisk PBX
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
else
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
USAGE:
|
|
|
|
======
|
|
|
|
|
|
|
|
./Setup {command}
|
|
|
|
|
|
|
|
commands:
|
|
|
|
---------
|
|
|
|
install : Install WANPIPE (LITE)
|
|
|
|
remove : Uninstall WANPIPE (LITE)
|
|
|
|
<any key>: Help
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
####### MAIN #################################################################
|
|
|
|
# set -x
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
|
|
|
|
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
|
2021-12-29 16:56:27 +00:00
|
|
|
KERNEL_VERSION=`uname -r`
|
|
|
|
KERNEL_UNAME=`uname -r`
|
|
|
|
PKG_NAME=wanpipe
|
|
|
|
DISTR_NAME="WANPIPE"
|
|
|
|
PROD=wanrouter
|
2021-12-29 17:21:56 +00:00
|
|
|
PROD_VER=3.3.10
|
2021-12-29 16:56:27 +00:00
|
|
|
PROD_HOME=`pwd`
|
2021-12-29 17:18:25 +00:00
|
|
|
META_CONF=$PROD_HOME/$PROD.rc
|
2021-12-29 16:56:27 +00:00
|
|
|
WAN_INTR_DIR=$PROD_HOME/interfaces
|
2021-12-29 17:18:25 +00:00
|
|
|
WAN_CONF_DIR=/etc/wanpipe
|
|
|
|
PROD_CONF=$PROD_HOME/wanpipe1.conf
|
2021-12-29 16:56:27 +00:00
|
|
|
PROD_PATCH=$PROD_HOME/patches
|
|
|
|
PROD_INIT=/usr/sbin/
|
|
|
|
FILELIST=$PROD_HOME/Filelist
|
|
|
|
SOURCEDIR=/lib/modules/$(uname -r)/build
|
2021-12-29 17:03:21 +00:00
|
|
|
START_SCRIPT=S11$PROD
|
2021-12-29 16:56:27 +00:00
|
|
|
OLD_START=S05router
|
2021-12-29 17:12:33 +00:00
|
|
|
STOP_SCRIPT=K70$PROD
|
2021-12-29 16:56:27 +00:00
|
|
|
OLD_STOP=K10router
|
|
|
|
INCLUDE=$SOURCEDIR/include/linux
|
|
|
|
ROUTER_RC=$META_CONF
|
|
|
|
UTIL_DIR=$PROD_HOME/util
|
|
|
|
UTIL_BIN_DIR=$PROD_HOME/util/bin
|
|
|
|
FIX_211="Fix_below_2211.gz"
|
|
|
|
ARCH=`uname -m`
|
|
|
|
WAN_TOOLS="wanconfig sdladump wanpipemon wanpipemon_legacy wpkbdmon wpbackupd"
|
|
|
|
WANROUTER_STARTUP_SMPL=$PROD_HOME/samples/wanrouter
|
|
|
|
WANROUTER_STARTUP=/usr/sbin/wanrouter
|
|
|
|
LINUX_VANILLA=0
|
|
|
|
DISABLE_GCC_DEBUG=0
|
|
|
|
ENABLE_EDAC=0
|
2021-12-29 16:57:21 +00:00
|
|
|
ENABLE_ECHO_DEBUG=0
|
2021-12-29 16:56:27 +00:00
|
|
|
ZAPTEL_PATH_OP="NO"
|
2021-12-29 16:59:00 +00:00
|
|
|
ZAPTEL_COMPILE_DISABLE="NO"
|
|
|
|
ZAP_CHUNK_OP="NO"
|
2021-12-29 16:56:27 +00:00
|
|
|
CMP_LOG=$PROD_HOME/setup_drv_compile.log
|
|
|
|
CMP_BUILD=build.sh
|
|
|
|
CMP_INSTALL=install.sh
|
|
|
|
CMP_CLEAN=clean.sh
|
2021-12-29 16:57:21 +00:00
|
|
|
DEVEL_DEBUG=NO
|
2021-12-29 16:59:00 +00:00
|
|
|
SSMG_DIR=ssmg
|
|
|
|
WANPIPE_INCLUDE_DIR=/usr/include/wanpipe
|
|
|
|
WANCFG_ZAPTEL_CFG=NO
|
|
|
|
WANCFG_ZAPTEL=/usr/sbin/wancfg_zaptel
|
2021-12-29 17:18:25 +00:00
|
|
|
WANCFG_SMG=/usr/sbin/wancfg_smg
|
2021-12-29 17:12:33 +00:00
|
|
|
find_zap_dir_quit=0
|
|
|
|
zaptel_auto_install="NO"
|
2021-12-29 17:20:30 +00:00
|
|
|
setup_install_quick="NO"
|
2021-12-29 17:12:33 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
echo > $CMP_LOG
|
|
|
|
echo "WANPIPE DRIVER COMPILE LOG" >> $CMP_LOG
|
|
|
|
echo "`date`" >> $CMP_LOG
|
|
|
|
echo "-----------------------------------" >> $CMP_LOG
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DRIVERS_MOD_LIST="sdladrv.mod.c wanrouter.mod.c wanpipe_syncppp.mod.c wanpipe.mod.c af_wanpipe.mod.c"
|
|
|
|
DRIVERS_MPAPI_MOD_FILES="wanpipe_lapb.mod.c wanpipe_x25.mod.c wanpipe_dsp.mod.c"
|
|
|
|
|
|
|
|
DRIVERS_MPAPI_DSP="dsp_timer.c dsp_subr.c dsp_proc.c dsp_out.c dsp_in.c dsp_iface.c dsp_api_iface.c"
|
|
|
|
DRIVERS_MPAPI_LAPB="lapb_iface.c lapb_in.c lapb_out.c lapb_proc.c lapb_subr.c lapb_timer.c lapb_x25_iface.c"
|
|
|
|
DRIVERS_MPAPI_X25="x25_api_iface.c x25_dsp_iface.c x25_facils.c x25_iface.c x25_in.c x25_out.c x25_proc.c x25_subr.c x25_switch.c x25_timer.c x25_utils.c"
|
|
|
|
|
|
|
|
|
|
|
|
DRIVER_UPDATE_DIR=$PROD_PATCH/kdrivers
|
2021-12-29 17:18:25 +00:00
|
|
|
DRIVER_INC_DIR=$PROD_PATCH/kdrivers/include
|
2021-12-29 16:56:27 +00:00
|
|
|
DRIVER_TMP_DIR=$PROD_HOME/kdrvtmp
|
|
|
|
DRIVERS_COMPILED=no
|
|
|
|
NEW_IF_TYPE=NO
|
|
|
|
|
|
|
|
MAKE_PATCH_22X="makefile.patch.2.2.X"
|
|
|
|
MAKE_PATCH_240="makefile.patch.2.4.0"
|
|
|
|
MAKE_PATCH_244="makefile.patch.2.4.4"
|
|
|
|
MAKE_UTILS_PATCH_24X="makefile.patch.utils.2.4.X"
|
|
|
|
MAKE_UTILS_PATCH_22X="makefile.patch.utils.2.2.X"
|
|
|
|
AF_WANPIPE_MAKE_PATCH_24X="makefile.af_wanpipe.patch"
|
|
|
|
|
|
|
|
TEMP=$PROD_HOME/temp.$$
|
|
|
|
WANCFG=$PROD_HOME/util/wancfg_legacy/wancfg_legacy
|
|
|
|
CFGFT1=$PROD_HOME/util/ft1/wanpipe_cfgft1
|
|
|
|
|
|
|
|
|
|
|
|
RPMOPT="--root"
|
|
|
|
PROTOCOL=""
|
|
|
|
EXTRA_LINK_MODULES=""
|
|
|
|
PROTOCOL_DEFINES="-DCONFIG_PRODUCT_WANPIPE_BASE "
|
|
|
|
SS7_USER_ID="0"
|
|
|
|
|
|
|
|
ANNEXG_LOAD=NO
|
2021-12-29 17:03:21 +00:00
|
|
|
SCTP_LOAD=NO
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
ZAPTEL_DFLT_INSTALL_DIR="/usr/src/zaptel"
|
2021-12-29 17:18:25 +00:00
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_DFLT_INSTALL_DIR
|
|
|
|
ZAPTEL_INSTALL_DIR=$ZAPTEL_DFLT_INSTALL_DIR
|
2021-12-29 16:59:00 +00:00
|
|
|
ZAPTEL_C_FILE="zaptel.c"
|
2021-12-29 16:56:27 +00:00
|
|
|
ASTERISK_IFLAGS=
|
|
|
|
EDAC_ZAP_PATCH_FILE=ed_zaptel.patch
|
|
|
|
|
|
|
|
ASTERISK_INSTALL_DIR="/usr/src/asterisk"
|
|
|
|
EDAC_ASTERISK_PATCH_FILE=ed_asterisk.patch
|
|
|
|
EDAC_ASTERISK_CVS_PATCH_FILE=ed_asterisk_cvs.patch
|
|
|
|
|
|
|
|
########################################################################
|
|
|
|
# D channel "search and replace" version of patch
|
|
|
|
ZAPTEL_C_SEARCH_STR="chan->writen\[chan->inwritebuf\] = amnt;"
|
|
|
|
ZAPTEL_C_PATCH="if ((chan->flags \& ZT_FLAG_HDLC) \&\& chan->span->ioctl != NULL){\n\
|
|
|
|
if (chan->span->ioctl(chan, ZT_DCHAN_TX_V2, amnt)==0){\n\
|
|
|
|
return amnt;\n\
|
|
|
|
}\n\
|
|
|
|
}\n\
|
|
|
|
chan->writen[chan->inwritebuf] = amnt;"
|
2021-12-29 17:02:36 +00:00
|
|
|
# D channel patching for zaptel version 1.2.17.1/1.4.2.1 or above
|
|
|
|
ZAPTEL_C_SEARCH_STR_NEW="chan->writen\[res\] = amnt;"
|
|
|
|
ZAPTEL_C_PATCH_NEW="if ((chan->flags \& ZT_FLAG_HDLC) \&\& chan->span->ioctl != NULL){\n\
|
|
|
|
if (chan->span->ioctl(chan, ZT_DCHAN_TX_V2, amnt)==0){\n\
|
|
|
|
return amnt;\n\
|
|
|
|
}\n\
|
|
|
|
}\n\
|
|
|
|
chan->writen[res] = amnt;"
|
|
|
|
# Zaptel 1.4.2.1 "Menuselect" issue
|
|
|
|
ZAPTEL_MENUSELECT_SEARCH_STR="autoconf"
|
|
|
|
ZAPTEL_MENUSELECT_REMOVE=" "
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
#NOTE1: the 'sed' command does NOT work on more than one line, so the
|
|
|
|
#closing '*/' will be pushed AFTER the inserted strings.
|
|
|
|
ZAPTEL_H_SEARCH_STR=" \* 80-85 are reserved for dynamic span stuff"
|
|
|
|
ZAPTEL_H_PATCH=\
|
|
|
|
" \* 80-85 are reserved for dynamic span stuff\n\
|
|
|
|
\*\/\n\
|
|
|
|
#define ZT_DCHAN_TX _IOR (ZT_CODE, 60, int)\n\
|
|
|
|
#define ZT_DCHAN_TX_V1 ZT_DCHAN_TX\n\
|
|
|
|
#define ZT_DCHAN_TX_V2 ZT_DCHAN_TX\n\/\*"
|
|
|
|
#NOTE2: the "/*" at the end needed to match the leftover '*/' after the comment
|
|
|
|
########################################################################
|
2021-12-29 16:57:21 +00:00
|
|
|
#Echo Debug patch is done in 2 parts: 1. is search and replace
|
|
|
|
# 2. using 'patch' program
|
|
|
|
#The reason is: 'patch' alone fails, if DCHAN patch already applied
|
|
|
|
ZAPTEL_C_ECHO_DEBUG_PATCH=zaptel.c.echo_debug.patch
|
|
|
|
ZAPTEL_H_ECHO_DEBUG_PATCH=zaptel.h.echo_debug.patch
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
ZAPTEL_H_ECHO_DEBUG_PATCH_STR=\
|
|
|
|
" \* 80-85 are reserved for dynamic span stuff\n\
|
|
|
|
\*\/\n\
|
|
|
|
#define GET_ECHO_SPIKE_SAMPLE _IOR (ZT_CODE, 64, int)\n\
|
|
|
|
#define SEND_ECHO_SPIKE _IOR (ZT_CODE, 65, int)\n\/\*"
|
|
|
|
|
|
|
|
########################################################################
|
2021-12-29 16:56:27 +00:00
|
|
|
setup_cmd=$1;
|
|
|
|
|
|
|
|
# Detect distribution type (FULL or LITE)
|
|
|
|
DIR=${PROD_HOME##/*/}
|
|
|
|
if [ $DIR = "wanpipe_lite" ]; then
|
|
|
|
PKG_NAME=wanpipe-lite
|
|
|
|
DISTR_NAME="WANPIPE (LITE)"
|
|
|
|
PROD_VER=`grep "WANPIPE_LITE_VERSION *\"" "${DRIVER_UPDATE_DIR}/include/wanpipe_version.h" | cut -d'"' -f2`
|
|
|
|
PROD_VER=`echo $PROD_VER | awk '{ gsub(" ", "") ; print }'`
|
|
|
|
if [ -z $PROD_VER ]; then
|
|
|
|
PROD_VER=1.1.1
|
|
|
|
fi
|
|
|
|
if [ "$setup_cmd" != "install" -a "$setup_cmd" != "remove" ]; then
|
|
|
|
usage
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
#Initialize supportd protocols
|
|
|
|
#that are not compiled by default
|
|
|
|
init_all_protocols
|
|
|
|
|
|
|
|
#List of available non-standard protocols
|
|
|
|
#Used as part of an errror message
|
|
|
|
AVAIL_PROTOCOLS="
|
|
|
|
SS7 EDU BISYNC BITSTRM BSCSTRM SDLC
|
|
|
|
POS EDU SDLC MPAPI ADCCP TDM
|
|
|
|
"
|
|
|
|
|
|
|
|
#Enable default protocols
|
|
|
|
DEFAULT_PROTOCOLS="FR-CHDLC-PPP-MFR-MPROT-X25-AFT_TE1-AFT_TE3"
|
|
|
|
API_PROTOCOLS="SS7-BISYNC-BSCSTRM-BITSTRM-POS-EDU-SDLC-MPAPI-ADCCP-TDM-XDLC-ASYHDLC"
|
|
|
|
|
|
|
|
CC=gcc
|
2021-12-29 16:57:21 +00:00
|
|
|
USR_CC=
|
|
|
|
KBUILD_VERBOSE=0
|
|
|
|
KBUILD_DISABLE=0
|
2021-12-29 16:59:00 +00:00
|
|
|
NO_AUTO_START=0
|
2021-12-29 16:57:21 +00:00
|
|
|
PROTS=
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
ROOT=;
|
|
|
|
|
|
|
|
WITH_LINUX_OP="NO";
|
|
|
|
SPLIT_RPMS="NO";
|
|
|
|
|
|
|
|
check_bash
|
|
|
|
check_awk
|
|
|
|
|
|
|
|
#Check for kernel series 2.2.X or 2.4.X
|
|
|
|
eval "uname -r | grep \"^2.4.*\" > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
KERN_VER=24
|
|
|
|
LINUXDRIVERS_NET="drivers/net/wan"
|
|
|
|
DEFAULT_PROTOCOLS=$DEFAULT_PROTOCOLS"-ADSL-ATM"
|
|
|
|
else
|
|
|
|
|
|
|
|
eval "uname -r | grep \"^2.6.*\" > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
KERN_VER=26
|
|
|
|
LINUXDRIVERS_NET="drivers/net/wan"
|
|
|
|
DEFAULT_PROTOCOLS=$DEFAULT_PROTOCOLS"-ADSL-ATM"
|
|
|
|
else
|
|
|
|
KERN_VER=22
|
|
|
|
LINUXDRIVERS_NET="drivers/net"
|
|
|
|
|
|
|
|
eval "uname -r | grep \"^2.0.*\" > /dev/null"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
echo
|
|
|
|
echo "Wanpipe drivers do not support 2.0.X kernels !!!"
|
|
|
|
echo "Please upgrade to 2.2.X 2.4.X 2.6.X kernels"
|
|
|
|
echo "or install an older version of wanpipe, version 2.2.2"
|
|
|
|
echo
|
|
|
|
exit 0;
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
LINUXDRIVERS_WAN="net/wanrouter"
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
superuser=NO;
|
|
|
|
if [ "$UID" = 0 ]; then
|
|
|
|
superuser=YES;
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
# Check router home directory.
|
|
|
|
[ -d "$PROD_HOME" ] || {
|
|
|
|
error "Router home directory ($PROD_HOME) not found"
|
|
|
|
exit 1
|
|
|
|
}
|
|
|
|
|
|
|
|
NONINTERACTIVE=;
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ "$setup_cmd" = "remove_init" ]; then
|
|
|
|
remove_init;
|
|
|
|
find /etc/rc* | grep wan
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$setup_cmd" = "install_init" ]; then
|
|
|
|
install_init;
|
|
|
|
find /etc/rc* | grep wan
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$setup_cmd" = "uninstall" ] || [ "$setup_cmd" = "remove" ]; then
|
2021-12-29 16:56:27 +00:00
|
|
|
remove;
|
|
|
|
uninstall_all
|
|
|
|
exit;
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
if [ "$setup_cmd" = "zaptel" ]; then
|
|
|
|
setup_cmd="install"
|
|
|
|
zaptel_auto_install="YES"
|
2021-12-29 17:20:30 +00:00
|
|
|
setup_install_quick="YES"
|
2021-12-29 17:12:33 +00:00
|
|
|
#EXTRA_ARGS=" --protocol=TDM --silent --no-zaptel-compile "
|
2021-12-29 17:20:30 +00:00
|
|
|
#EXTRA_ARGS=" --protocol=TDM "
|
2021-12-29 17:12:33 +00:00
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$setup_cmd" = "buildrpm" ]; then
|
|
|
|
EXTRA_ARGS=" --no-zaptel-compile "
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$PKG_NAME" != "wanpipe-lite" ]; then
|
2021-12-29 16:57:21 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
ARGS=$EXTRA_ARGS
|
2021-12-29 16:57:21 +00:00
|
|
|
while [ ! -z "$2" ];
|
2021-12-29 16:56:27 +00:00
|
|
|
do
|
2021-12-29 17:12:33 +00:00
|
|
|
ARGS_tmp=$ARGS"$2 "
|
|
|
|
ARGS=$ARGS_tmp
|
2021-12-29 16:57:21 +00:00
|
|
|
shift
|
|
|
|
done
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
#echo "ARGS: $ARGS"
|
2021-12-29 16:57:21 +00:00
|
|
|
|
|
|
|
for arg in $ARGS
|
|
|
|
do
|
2021-12-29 17:12:33 +00:00
|
|
|
#echo
|
|
|
|
#echo "ARG VAL=$arg"
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
case $arg in
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
--silent*)
|
|
|
|
NONINTERACTIVE=1;
|
|
|
|
;;
|
|
|
|
--linux-vanilla*)
|
|
|
|
LINUX_VANILLA=1;
|
|
|
|
;;
|
|
|
|
--no-gcc-debug*)
|
|
|
|
DISABLE_GCC_DEBUG=1;
|
|
|
|
;;
|
2021-12-29 17:03:21 +00:00
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
--usr-cc*)
|
|
|
|
USR_CC=`echo $arg | cut -d'=' -f2`;
|
|
|
|
eval "type $USR_CC";
|
|
|
|
if [ $? -ne 0 ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Error C compiler: $USR_CC doesnt exist!"
|
2021-12-29 16:57:21 +00:00
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
check_gcc
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Error: Failed to determine $USR_CC version";
|
2021-12-29 16:59:00 +00:00
|
|
|
exit 1
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
|
|
|
CC=$USR_CC
|
|
|
|
;;
|
|
|
|
--kbuild-verbose*)
|
|
|
|
KBUILD_VERBOSE=1
|
|
|
|
;;
|
|
|
|
--devel-debug*)
|
|
|
|
DEVEL_DEBUG="YES"
|
|
|
|
;;
|
|
|
|
--kbuild-disable*)
|
|
|
|
KBUILD_DISABLE=1
|
|
|
|
;;
|
2021-12-29 16:56:27 +00:00
|
|
|
--edac*)
|
2021-12-29 16:57:21 +00:00
|
|
|
#TAKEN OUT
|
2021-12-29 16:56:27 +00:00
|
|
|
;;
|
2021-12-29 16:59:00 +00:00
|
|
|
--noautostart*)
|
|
|
|
NO_AUTO_START=1
|
|
|
|
;;
|
2021-12-29 17:03:21 +00:00
|
|
|
|
|
|
|
--ignore-t1-yellow*)
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANPIPE_IGNORE_T1_YELLOW "
|
|
|
|
;;
|
|
|
|
|
2021-12-29 17:02:36 +00:00
|
|
|
--64bit_4G*)
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANPIPE_64BIT_4G_DMA "
|
|
|
|
;;
|
2021-12-29 17:03:21 +00:00
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
--hwec_noise_reduction*)
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DWANEC_ENABLE_NOISE_REDUCTION "
|
|
|
|
;;
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
--with-linux*)
|
2021-12-29 16:57:21 +00:00
|
|
|
SOURCEDIR=`echo $arg | cut -d'=' -f2`;
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$SOURCEDIR" = "" ]; then
|
|
|
|
echo "Error invalied --with-linux option";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
if [ ! -d "$SOURCEDIR" ]; then
|
|
|
|
echo "Error: Linux source directory not found: $SOURCEDIR";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
if [ ! -f "$SOURCEDIR/Makefile" ]; then
|
|
|
|
echo "Error: No vaild linux source found in $SOURCEDIR";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
INCLUDE=$SOURCEDIR/include/linux
|
|
|
|
WITH_LINUX_OP="YES";
|
|
|
|
;;
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
--echo-debug*)
|
|
|
|
ENABLE_ECHO_DEBUG=1;
|
|
|
|
;;
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
--zaptel-path*)
|
2021-12-29 16:57:21 +00:00
|
|
|
ZAPTEL_INSTALL_DIR=`echo $arg | cut -d'=' -f2`;
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$ZAPTEL_INSTALL_DIR" = "" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Error invalid --zaptel-path option";
|
2021-12-29 16:56:27 +00:00
|
|
|
exit 1;
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -d "$ZAPTEL_INSTALL_DIR" ]; then
|
|
|
|
echo "Error: Zaptel source directory not found: $ZAPTEL_INSTALL_DIR";
|
|
|
|
exit 1;
|
|
|
|
fi
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ ! -f "$ZAPTEL_INSTALL_DIR/Makefile" ]; then
|
|
|
|
echo "Error: Invalid zaptel source found in $ZAPTEL_INSTALL_DIR";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
ZAPTEL_PATH_OP="YES";
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Zaptel path defined as: $ZAPTEL_INSTALL_DIR"
|
2021-12-29 17:18:25 +00:00
|
|
|
|
|
|
|
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
|
|
|
|
else
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
;;
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
--with-zaptel*)
|
|
|
|
ZAPTEL_INSTALL_DIR=`echo $arg | cut -d'=' -f2`;
|
|
|
|
if [ "$ZAPTEL_INSTALL_DIR" = "" ]; then
|
|
|
|
echo "Error invalid --with-zaptel option";
|
|
|
|
exit 1;
|
|
|
|
fi
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ ! -d "$ZAPTEL_INSTALL_DIR" ]; then
|
|
|
|
echo "Error: Zaptel source directory not found: $ZAPTEL_INSTALL_DIR";
|
|
|
|
exit 1;
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ ! -f "$ZAPTEL_INSTALL_DIR/Makefile" ]; then
|
|
|
|
echo "Error: Invalid zaptel source found in $ZAPTEL_INSTALL_DIR";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
ZAPTEL_PATH_OP="YES";
|
|
|
|
echo "Zaptel path defined as: $ZAPTEL_INSTALL_DIR"
|
2021-12-29 17:18:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
if [ -d $ZAPTEL_INSTALL_DIR/kernel ]; then
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR/kernel
|
|
|
|
else
|
|
|
|
ZAPTEL_SOURCE_DIR=$ZAPTEL_INSTALL_DIR
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
;;
|
2021-12-29 17:18:25 +00:00
|
|
|
|
|
|
|
--no-zaptel-compile*)
|
2021-12-29 16:59:00 +00:00
|
|
|
ZAPTEL_COMPILE_DISABLE="YES";
|
|
|
|
;;
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
--builddir*)
|
2021-12-29 16:57:21 +00:00
|
|
|
ROOT=`echo $arg | cut -d'=' -f2`;
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$ROOT" = "" ]; then
|
|
|
|
echo "Error: invalid --builddir option";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
tmp_val=`echo $ROOT | cut -d'/' -f1`
|
|
|
|
if [ "$tmp_val" != "" ]; then
|
|
|
|
echo "Error: invalid builddir directory: must be absolute path!";
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
if [ ! -d "$ROOT" ]; then
|
|
|
|
echo "Error: builddir ($ROOT) not found: please create it first!";
|
|
|
|
exit 1;
|
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
export ASTBROOT=$ROOT;
|
|
|
|
ASTBROOT=$ROOT;
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
TMP_123=${WANPIPE_INCLUDE_DIR#/*}
|
|
|
|
WANPIPE_INCLUDE_DIR=$ROOT/$TMP_123
|
|
|
|
TMP_123=${WANCFG_ZAPTEL#/*}
|
|
|
|
WANCFG_ZAPTEL=$ROOT/$TMP_123
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
;;
|
|
|
|
--acflags*)
|
2021-12-29 16:57:21 +00:00
|
|
|
USER_CFLAGS=`echo $arg | cut -d'=' -f2`
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$USER_CFLAGS" = "" ]; then
|
|
|
|
echo "Error: invalid --acflags option: [ string ]";
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
--ocflags*)
|
2021-12-29 16:57:21 +00:00
|
|
|
USE_CFLAGS=`echo $arg | cut -d'=' -f2`
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$USER_CFLAGS" = "" ]; then
|
|
|
|
echo "Error: invalid --ocflags option: [ string ]";
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
--protocol*)
|
2021-12-29 16:57:21 +00:00
|
|
|
PROTS=`echo $arg | cut -d'=' -f2`;
|
2021-12-29 16:56:27 +00:00
|
|
|
;;
|
|
|
|
|
|
|
|
--ss7_user_id*)
|
2021-12-29 16:57:21 +00:00
|
|
|
SS7_USER_ID=`echo $arg | cut -d'=' -f2`;
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$SS7_USER_ID" = "" ]; then
|
|
|
|
echo "Error: invalid --ss7_user_id option: [ integer ]";
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
|
|
|
|
--ss7_ioctl_api*)
|
|
|
|
PROTOCOL_DEFINES="$PROTOCOL_DEFINES -DSS7_IOCTL_INTERFACE "
|
|
|
|
;;
|
|
|
|
|
|
|
|
--arch*)
|
2021-12-29 16:57:21 +00:00
|
|
|
ARCH=`echo $arg | cut -d'=' -f2`;
|
2021-12-29 16:56:27 +00:00
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ $ARCH != "i686" ] && [ $ARCH != "i586" ] && [ $ARCH != "i486" ] && [ $ARCH != "i386" ] && [$ARCH !="x86_64" ]; then
|
|
|
|
echo "Error: Invalid Architecture [i686|i586|i486|i386|x86_64]\n"
|
2021-12-29 16:56:27 +00:00
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
;;
|
|
|
|
--split_rpms*)
|
|
|
|
SPLIT_RPMS="YES";
|
|
|
|
;;
|
2021-12-29 16:59:00 +00:00
|
|
|
--force_smp)
|
|
|
|
FORCE_SMP="YES";
|
|
|
|
;;
|
|
|
|
--gz-modules)
|
|
|
|
GZ_MODULES="YES";
|
|
|
|
;;
|
2021-12-29 17:03:21 +00:00
|
|
|
--zap-chunk*)
|
2021-12-29 16:59:00 +00:00
|
|
|
ZAP_CHUNK=`echo $arg | cut -d'=' -f2`;
|
|
|
|
|
2021-12-29 17:03:21 +00:00
|
|
|
if [ $ZAP_CHUNK != "8" ] && [ $ZAP_CHUNK != "16" ] && [ $ZAP_CHUNK != "40" ] && [ $ZAP_CHUNK != "80" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "Error: Invalid Zaptel Chunk size"
|
|
|
|
exit 1;
|
|
|
|
else
|
|
|
|
echo "WARNING: Zaptel custom chunk option is EXPERIMENTAL"
|
|
|
|
echo "The wct4xxp module will be removed from your system"
|
|
|
|
getyn "Do you want to use custom Zaptel chunk size of $ZAP_CHUNK"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
ZAP_CHUNK_OP="YES"
|
|
|
|
else
|
|
|
|
ZAP_CHUNK_OP="NO"
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
;;
|
2021-12-29 16:56:27 +00:00
|
|
|
*)
|
2021-12-29 16:57:21 +00:00
|
|
|
echo "Invalid option $arg"
|
2021-12-29 16:56:27 +00:00
|
|
|
exit 1;
|
|
|
|
;;
|
|
|
|
esac
|
|
|
|
done
|
|
|
|
|
2021-12-29 16:57:21 +00:00
|
|
|
if [ "$PROTS" != "" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
echo "$PROTS" | grep "DEF" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS "YES"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTS" | grep "^API" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $API_PROTOCOLS "YES"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTS" | grep "ALL" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols $DEFAULT_PROTOCOLS "YES"
|
|
|
|
enable_protocols $API_PROTOCOLS "YES"
|
|
|
|
fi
|
|
|
|
|
|
|
|
echo "$PROTS" | grep "TDM" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols AFT_TE1 "YES"
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
echo "$PROTS" | grep "BRI" > /dev/null
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
enable_protocols AFT_TE1 "YES"
|
|
|
|
enable_protocols BRI "YES"
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
enable_protocols "$PROTS" "YES"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
2021-12-29 16:57:21 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$setup_cmd" = "drivers" ]; then
|
|
|
|
apply_patches || exit 1
|
|
|
|
compile_drivers || exit 1
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ "$setup_cmd" = "smgbri" ]; then
|
|
|
|
SSMG=YES
|
|
|
|
SSMG_BRI=YES
|
|
|
|
NONINTERACTIVE=1;
|
|
|
|
install_ssmg_bri;
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$setup_cmd" = "utility" ]; then
|
|
|
|
compile_src;
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$setup_cmd" = "meta" ]; then
|
|
|
|
install_config;
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$setup_cmd" = "inst" ]; then
|
|
|
|
install_all;
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ "$setup_cmd" = "ssmg" ]; then
|
|
|
|
SSMG=YES
|
|
|
|
install_ssmg;
|
|
|
|
exit;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$setup_cmd" = "buildrpm" ] || [ "$setup_cmd" = "builddeb" ]; then
|
|
|
|
|
|
|
|
if [ ! -d $SOURCEDIR ]; then
|
|
|
|
echo
|
|
|
|
echo "Error: Linux source dir $SOURCEDIR not found!"
|
|
|
|
echo
|
|
|
|
exit
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$setup_cmd" = "buildrpm" ]; then
|
|
|
|
build_dir=rpmbuild
|
|
|
|
package_name="RPM"
|
|
|
|
else
|
|
|
|
build_dir=debbuild
|
|
|
|
package_name="DEB"
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ -d $PROD_HOME/$build_dir ]; then
|
|
|
|
\rm -rf $PROD_HOME/$build_dir > /dev/null 2> /dev/null
|
|
|
|
fi
|
|
|
|
|
|
|
|
\mkdir -p $PROD_HOME/$build_dir
|
|
|
|
|
|
|
|
PROTS=${PROTS:-$DEFAULT_PROTOCOLS}
|
|
|
|
|
|
|
|
enable_protocols $PROTS
|
|
|
|
|
|
|
|
get_kernel_ver $SOURCEDIR
|
|
|
|
|
|
|
|
banner
|
|
|
|
|
|
|
|
echo "
|
|
|
|
|
|
|
|
WANPIPE $package_name BUILD
|
|
|
|
|
|
|
|
Wanpipe $package_name will be build based on the
|
|
|
|
following Environment variables.
|
|
|
|
|
|
|
|
1. Linux Source Dir : $SOURCEDIR
|
|
|
|
|
|
|
|
2. Linux Source Name : $KERNEL_VERSION
|
|
|
|
|
|
|
|
3. Current Image Name: $KERNEL_UNAME
|
|
|
|
|
|
|
|
4. CPU Type : $ARCH
|
|
|
|
|
|
|
|
5. Wan Protocols : $PROTS
|
|
|
|
|
|
|
|
6. Build Directory : $PROD_HOME/$build_dir
|
|
|
|
"
|
|
|
|
|
2021-12-29 17:12:33 +00:00
|
|
|
if [ $TDM_PROT = "YES" ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
echo " 7. Zaptel Build Dir : $ZAPTEL_INSTALL_DIR "
|
2021-12-29 17:12:33 +00:00
|
|
|
fi
|
|
|
|
echo
|
|
|
|
echo
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ $KERNEL_UNAME != $KERNEL_VERSION ]; then
|
|
|
|
|
|
|
|
echo "
|
|
|
|
WARNING:
|
|
|
|
|
|
|
|
The items 2 and 3 should usually be identical!
|
|
|
|
|
|
|
|
If they are not, you are building an $package_name for
|
|
|
|
a different kernel image name, Setup is assuming
|
|
|
|
you know what you are doing :)
|
|
|
|
|
|
|
|
"
|
|
|
|
fi
|
|
|
|
|
|
|
|
getyn "Would you like to build WANPIPE $package_name ?"
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
|
|
|
|
$PROD_HOME/Setup install --silent --builddir=$PROD_HOME/$build_dir --with-linux=$SOURCEDIR --arch=$ARCH --protocol=$PROTS --ss7_user_id=$SS7_USER_ID --noautostart --no-zaptel-compile --zaptel-path=$ZAPTEL_INSTALL_DIR
|
2021-12-29 16:56:27 +00:00
|
|
|
|
|
|
|
if [ $? -ne 0 ]; then
|
|
|
|
echo "Error: WANPIPE Installation Failed!"
|
|
|
|
exit 1;
|
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$setup_cmd" = "buildrpm" ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
compile_aft_firmware_util
|
2021-12-29 16:56:27 +00:00
|
|
|
detect_rpm_build_utility
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
if [ "$SPLIT_RPMS" = "YES" ]; then
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "$RPM -bb --define '_unpackaged_files_terminate_build 0' $RPMOPT $PROD_HOME/rpmbuild $PROD_HOME/rpmspec/wanpipe-util.spec --target=$ARCH"
|
|
|
|
eval "$RPM -bb --define '_unpackaged_files_terminate_build 0' --define 'kern_ver $KERNEL_VERSION' $RPMOPT $PROD_HOME/rpmbuild $PROD_HOME/rpmspec/wanpipe-mod.spec --target=$ARCH"
|
2021-12-29 16:56:27 +00:00
|
|
|
else
|
2021-12-29 16:59:00 +00:00
|
|
|
eval "$RPM -bb --define 'kern_ver $KERNEL_VERSION' $RPMOPT $PROD_HOME/rpmbuild $PROD_HOME/rpmspec/wanpipe.spec --target=$ARCH"
|
2021-12-29 16:56:27 +00:00
|
|
|
fi
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WANPIPE RPM BUILD SUCCESSFUL
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
The new rpm is located in /usr/src/redhat/RPMS/$ARCH
|
2021-12-29 16:56:27 +00:00
|
|
|
directory.
|
|
|
|
|
|
|
|
To install run:
|
|
|
|
rpm -i --force <rpm name>
|
|
|
|
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
else
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WANPIPE RPM BUILD FAILED
|
|
|
|
|
|
|
|
Possible Solutions:
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
1. Please make sure that you have
|
|
|
|
$SOURCEDIR directory pointing to a
|
|
|
|
linux kernel source.
|
|
|
|
|
|
|
|
2. Page up the screen and try to find an
|
|
|
|
error message during the build process.
|
|
|
|
|
|
|
|
3. Contact Sangoma Tech Support
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
fi
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
\mkdir -p $PROD_HOME/$build_dir/DEBIAN/
|
|
|
|
\cp -f deb_control/wanpipe.deb $PROD_HOME/$build_dir/DEBIAN/control
|
|
|
|
\cp -f deb_control/postinst $PROD_HOME/$build_dir/DEBIAN/
|
|
|
|
\cp -f deb_control/prerm $PROD_HOME/$build_dir/DEBIAN/
|
|
|
|
|
|
|
|
dpkg -b $build_dir > /dev/null 2> /dev/null
|
|
|
|
|
|
|
|
if [ $? -eq 0 ]; then
|
|
|
|
|
|
|
|
pver=${PROD_VER//\./}
|
|
|
|
build_pkg_name="wanpipe_"$pver"-k"$KVER$KPATCH$KLVL$KEVER"_"$ARCH".deb"
|
|
|
|
|
|
|
|
mv -f "$build_dir.deb" $build_pkg_name
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WANPIPE DEB BUILD SUCCESSFUL
|
|
|
|
|
|
|
|
The new rpm is located in $PROD_HOME: $build_pkg_name
|
|
|
|
|
|
|
|
To install run:
|
|
|
|
dpkg -i <deb name>
|
|
|
|
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
else
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
WANPIPE DEB BUILD FAILED
|
|
|
|
|
|
|
|
Possible Solutions:
|
|
|
|
-------------------
|
|
|
|
|
|
|
|
1. Please make sure that you have
|
|
|
|
$SOURCEDIR directory pointing to a
|
|
|
|
linux kernel source.
|
|
|
|
|
|
|
|
2. Page up the screen and try to find an
|
|
|
|
error message during the build process.
|
|
|
|
|
|
|
|
3. Contact Sangoma Tech Support
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -d $PROD_HOME/$build_dir ]; then
|
|
|
|
rm -rf $PROD_HOME/$build_dir > /dev/null 2> /dev/null
|
|
|
|
fi
|
|
|
|
exit 0;
|
|
|
|
|
|
|
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ "$1" = "helprpm" ]; then
|
|
|
|
|
|
|
|
detect_rpm_build_utility
|
|
|
|
|
|
|
|
cat <<ENDOFTEXT
|
|
|
|
|
|
|
|
Building a Custom RPM
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
./Setup buildrpm --with-linux=<absolute path> --arch=<custom architecture>
|
|
|
|
|
|
|
|
Create a custom rpm using the kernel in
|
|
|
|
--with-linux directory. Default kernel
|
|
|
|
location is $SOURCEDIR.
|
|
|
|
|
|
|
|
1. The absolute path must point to a
|
|
|
|
configured (.config file must exist)
|
|
|
|
kernel source. If path is not supplied
|
|
|
|
it's defaulted to $SOURCEDIR.
|
|
|
|
|
|
|
|
2. The RPM will be build in a virtual
|
|
|
|
directory called $PROD_HOME/rpmbuild/. Thus, it
|
|
|
|
will not pollute current environment
|
|
|
|
except the patches added to the
|
|
|
|
linux source directory (defined above).
|
|
|
|
|
|
|
|
3. --arch is used to specify architecutre option
|
|
|
|
during compilation of wanpipe kernel modules.
|
|
|
|
Supported options: i686 to i386.
|
|
|
|
By default architecture is obtained using the 'uname -m'
|
|
|
|
command.
|
|
|
|
|
|
|
|
In order to further customise a WANPIPE
|
|
|
|
RPM the user can manully create one.
|
|
|
|
|
|
|
|
1) Install WANPIPE package into a virtual
|
|
|
|
directory (eg: $PROD_HOME/rpmbuild)
|
|
|
|
|
|
|
|
./Setup install --silent --builddir=$PROD_HOME/rpmbuild
|
|
|
|
|
|
|
|
2) Customize the $PROD_HOME/rpmbulid directory.
|
|
|
|
|
|
|
|
eg: Copy already created wanpipe1.conf
|
|
|
|
configuration file into
|
|
|
|
$PROD_HOME/rpmbuild/etc/wanpipe directory.
|
|
|
|
|
|
|
|
So that the RPM installation will
|
|
|
|
already have a configured wanpipe card.
|
|
|
|
|
|
|
|
3) Build the rpm based on the $PROD_HOME/rpmbuild
|
|
|
|
directory:
|
|
|
|
|
|
|
|
$RPM -bb $RPMOPT $PROD_HOME/rpmbuild \\
|
|
|
|
$PROD_HOME/rpmspec/wanpipe.spec
|
|
|
|
|
|
|
|
ENDOFTEXT
|
|
|
|
exit 0;
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
if [ "$setup_cmd" != "install" ] && [ "$setup_cmd" != "upgrade" ]; then
|
|
|
|
usage
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
welcome || exit 0
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
if [ $zaptel_auto_install = "YES" ]; then
|
|
|
|
NONINTERACTIVE=1
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
prepare || exit 1
|
|
|
|
apply_patches || exit 1
|
|
|
|
compile_drivers || exit 1
|
2021-12-29 17:20:30 +00:00
|
|
|
|
|
|
|
if [ $zaptel_auto_install != "YES" ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
install_init || exit 1
|
2021-12-29 17:20:30 +00:00
|
|
|
fi
|
|
|
|
|
2021-12-29 17:18:25 +00:00
|
|
|
install_config || exit 1
|
2021-12-29 17:20:30 +00:00
|
|
|
|
2021-12-29 16:56:27 +00:00
|
|
|
compile_src || exit 1
|
|
|
|
install_all
|
2021-12-29 16:59:00 +00:00
|
|
|
install_ssmg
|
2021-12-29 17:18:25 +00:00
|
|
|
install_ssmg_bri
|
2021-12-29 16:56:27 +00:00
|
|
|
clean_up
|
|
|
|
goodbye
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
|
2021-12-29 17:20:30 +00:00
|
|
|
if [ $zaptel_auto_install = "YES" ]; then
|
|
|
|
NONINTERACTIVE=
|
|
|
|
fi
|
|
|
|
|
2021-12-29 16:59:00 +00:00
|
|
|
if [ -z $NONINTERACTIVE ] && [ "$WANCFG_ZAPTEL_CFG" = "YES" ] && [ -e $WANCFG_ZAPTEL ]; then
|
|
|
|
echo
|
|
|
|
echo "Wanpipe / Zaptel Configuration"
|
|
|
|
echo "=============================="
|
|
|
|
echo
|
|
|
|
echo "wancfg_zaptel configurator can create all wanpipe devices"
|
|
|
|
echo "for ZAPTEL as well as /etc/zaptel.conf file."
|
|
|
|
echo "Optionally: wancfg_zaptel can also create Asterisk zapata.conf"
|
|
|
|
echo "-----------------------------------------------------"
|
|
|
|
getyn "Would you like to configure wanpipe devices for ZAPTEL?"
|
|
|
|
if [ $? -eq 0 ]; then
|
2021-12-29 17:18:25 +00:00
|
|
|
if [ $SSMG_BRI == "YES" ]; then
|
|
|
|
eval "$WANCFG_SMG"
|
|
|
|
else
|
|
|
|
eval "$WANCFG_ZAPTEL"
|
|
|
|
fi
|
2021-12-29 16:59:00 +00:00
|
|
|
else
|
|
|
|
echo "Wanpipe Installation Complete"
|
|
|
|
echo "-----------------------------"
|
|
|
|
echo "Please proceed to configure wanpipe user /usr/sbin/wancfg"
|
|
|
|
echo
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
|