What's new

Cisco AnyConnect 384.6 Merlin

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

ASadani

Senior Member
I'm in Merlin 384.6. Is there a cisco anyvpn client I could use on my router RT-AC86U? I know entware has it but is there any other way? Much regards everyone.
 
I'm in Merlin 384.6. Is there a cisco anyvpn client I could use on my router RT-AC86U? I know entware has it but is there any other way? Much regards everyone.

No...

AnyConnect should work fine from a LAN client PC...
 
There is effectively no precompiled software ready to run on household routers outside Entware. Entware works because it's a known, consistent environment across many platforms; the packages don't require customization to each specific router. I'm not a programmer but I would guess that packages for the various processor flavors could even be cross-complied rather than needing a native system to compile it.

If you don't want to use the Entware package, I'd think the only choice would be to get the source to openconnect and figure out how to compile it natively on your router. I have no idea how successful you'd be, but I suspect it would not be trivial task at all.
 
Try this.

Code:
#!/bin/bash
#TARGET_HOST=arm-linux
BUILD_TYPE=$(dpkg-architecture -qDEB_HOST_GNU_TYPE)
TARGET_HOST=aarch64-linux
PREFIX=/home/sylphia/dists/$TARGET_HOST
#ROUTER_FIRMWARE_SRC=/home/sylphia/asuswrt-merlin.ng/release/src-rt-5.02hnd/router
INCLUDE_DIR=${PREFIX}/include
LIB_DIR=${PREFIX}/lib
LZ4_VERSION=v1.8.2
GMP_VERSION=6.1.2
NETTLE_VERSION=3.4
GNUTLS_VERSION=3.5
GNUTLS_BUILD=18
GNUTLS_FULL_VERSION=${GNUTLS_VERSION}.${GNUTLS_BUILD}
LIBXML2_VERSION=v2.9.8
ZLIB_VERSION=1.2.11
OPENCONNECT_VERSION=v7.08

ARM_FLAGS="-mcpu=cortex-a53+crypto -march=armv8-a+crypto+crc+simd"

export ARCH=arm64
export CC=${TARGET_HOST}-gcc
export CXX=${TARGET_HOST}-g++
export AR=${TARGET_HOST}-ar
export LD=${TARGET_HOST}-ld

pause()
{
  SAVEDSTTY=`stty -g`
  stty -echo
  stty raw
  dd if=/dev/tty bs=1 count=1 2> /dev/null
  stty -raw
  stty echo
  stty $SAVEDSTTY
}
# LZ4 ------------------------------------------------
make_lz4(){
  if [ ! -d "lz4" ]; then
    git clone https://github.com/lz4/lz4.git
  fi
  cd lz4
  git reset --hard && git checkout dev && git pull && git checkout ${LZ4_VERSION}
  make clean
  CPPFLAGS="-fvisibility=default -fPIC ${ARM_FLAGS}" LDFLAGS="-static -static-libgcc" make BUILD_SHARED=no && make PREFIX=$PREFIX install
  cd ..
}
# GMP ------------------------------------------------
make_gmp(){
  if [ ! -d "gmp-${GMP_VERSION}" ]; then
    wget https://gmplib.org/download/gmp/gmp-${GMP_VERSION}.tar.lz
    lzip -d gmp-${GMP_VERSION}.tar.lz && tar xf gmp-${GMP_VERSION}.tar && rm -f gmp-${GMP_VERSION}.tar gmp-${GMP_VERSION}.tar.lz
  fi
  cd gmp-${GMP_VERSION}
  make clean
  rm -f gen-bases gen-fac gen-fib gen-jacobitab gen-psqr gen-trialdivtab
  CFLAGS="${ARM_FLAGS}" ./configure --host=${TARGET_HOST} --prefix=${PREFIX} --enable-static --disable-shared
  make && make install
  cd ..
}
# Nettle ------------------------------------------------
make_nettle(){
  if [ ! -d "nettle-${NETTLE_VERSION}" ]; then
    wget https://ftp.gnu.org/gnu/nettle/nettle-${NETTLE_VERSION}.tar.gz
    tar xzf nettle-${NETTLE_VERSION}.tar.gz && rm -f nettle-${NETTLE_VERSION}.tar.gz
  fi
  cd nettle-${NETTLE_VERSION}
  make clean
  export CC_FOR_BUILD="gcc"
  ./.bootstrap
  CFLAGS="-I${INCLUDE_DIR} ${ARM_FLAGS}" LDFLAGS=-L${LIB_DIR} ./configure --host=${TARGET_HOST} --build=${BUILD_TYPE} --enable-fat --disable-documentation --prefix=${PREFIX} --enable-static --disable-shared
  make && make install
  cd ..
}
# gnuTLS ------------------------------------------------
make_gnutls(){
  if [ ! -d "gnutls-${GNUTLS_FULL_VERSION}" ]; then
    wget https://www.gnupg.org/ftp/gcrypt/gnutls/v${GNUTLS_VERSION}/gnutls-${GNUTLS_FULL_VERSION}.tar.xz
    tar xJf gnutls-${GNUTLS_FULL_VERSION}.tar.xz && rm -f gnutls-${GNUTLS_FULL_VERSION}.tar.xz
  fi
  cd gnutls-${GNUTLS_FULL_VERSION}
  make clean
  HOGWEED_CFLAGS="-I${INCLUDE_DIR}" HOGWEED_LIBS="-L${LIB_DIR} -lhogweed" \
  NETTLE_CFLAGS=-I${INCLUDE_DIR} NETTLE_LIBS="-L${LIB_DIR} -lnettle" \
  CFLAGS="-I${INCLUDE_DIR} ${ARM_FLAGS}" LDFLAGS=-L${LIB_DIR} \
  ZLIB_CFLAGS=-I${INCLUDE_DIR} ZLIB_LIBS="-L${LIB_DIR} -lz" \
  ./configure --host=${TARGET_HOST} --prefix=${PREFIX} --disable-crywrap --with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt  \
  --enable-static --disable-shared --with-included-libtasn1 --with-included-unistring --without-p11-kit --enable-local-libopts \
  --disable-doc \
  PKG_CONFIG_PATH=${LIB_DIR}/pkgconfig
  make && make install
  cd ..
}
# libxml2 ------------------------------------------------
make_libxml2()
{
  if [ ! -d "libxml2" ]; then
    git clone https://github.com/GNOME/libxml2.git
  fi
  cd libxml2
  git reset --hard && git checkout master && git pull
  git checkout ${LIBXML2_VERSION}
  make clean
  ./autogen.sh --host=${TARGET_HOST} --prefix=${PREFIX} --without-c14n --without-catalog --without-debug --without-docbook --without-fexceptions --without-ftp --without-history --without-http --without-iso8859x --without-legacy --without-pattern --without-push --without-regexps --without-run-debug --without-sax1 --without-schemas --without-schematron --without-threads --without-valid --without-xinclude --without-xpath --without-xptr --without-zlib --without-lzma --without-coverage --without-python --enable-static --disable-shared
  make && make install
  cd ..
}

make_zlib(){
  if [ ! -d "zlib-${ZLIB_VERSION}" ]; then
    wget https://zlib.net/zlib-${ZLIB_VERSION}.tar.gz && tar xzf zlib-${ZLIB_VERSION}.tar.gz && rm -f zlib-${ZLIB_VERSION}.tar.gz
  fi
  cd zlib-${ZLIB_VERSION}
  make clean
  export TARGETMACH=${TARGET_HOST}
  export BUILDMACH=${BUILD_TYPE}
  export CROSS=${TARGET_HOST}
  ./configure --prefix=${PREFIX} --static
  make && make install
  cd ..
}

make_openconnect()
{
  if [ ! -d "openconnect" ]; then
    git clone git://git.infradead.org/users/dwmw2/openconnect.git
  fi
  cd openconnect
  git reset --hard && git pull
  git checkout master # ${OPENCONNECT_VERSION} # tagged version does not compile
  ./autogen.sh
  CFLAGS="-I${INCLUDE_DIR} ${ARM_FLAGS}" LDFLAGS="-L${LIB_DIR} -lgmp -lpthread -static -static-libgcc" \
  LIBLZ4_CFLAGS="-I${INCLUDE_DIR}" LIBLZ4_LIBS="-L${LIB_DIR} -l:liblz4.a" \
  NETTLE_CFLAGS="-I${INCLUDE_DIR}" NETTLE_LIBS="-L${LIB_DIR} -lnettle -lhogweed" \
  GNUTLS_CFLAGS=-I${INCLUDE_DIR} GNUTLS_LIBS="-L${LIB_DIR} -lgnutls" \
  ZLIB_CFLAGS=-I${INCLUDE_DIR} ZLIB_LIBS="-L${LIB_DIR} -lz" \
  ./configure --prefix=/jffs --host=${TARGET_HOST}  --with-vpnc-script=/jffs/scripts/vpnc-script \
  --disable-nls --without-openssl --without-stoken --without-libpcsclite -without-libpskc --without-libproxy \
  PKG_CONFIG_PATH=${LIB_DIR}/pkgconfig
  make && make install DESTDIR=${PREFIX}
  cd ..
}
make_lz4
make_gmp
make_nettle
make_libxml2
make_zlib
make_gnutls
make_openconnect
 

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top