Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben
Registriere dich noch heute kostenlos, um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereichen, welche für Gäste verwehrt bleiben
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
so einfach geht dies nicht. Wie gut sind deine Linuxkenntnisse und sagen dir die Begriffe "Cross compiler" und "toolchain" etwas?
Für den Anfang brauchst du eine Compiler Umgebung. Dazu nutze ich das "freetz-linux" in einer VM. Dann eine "passende" Toolchain.
Wichtig dabei ist, das die Toolchain zum vorhandenen Kernel passt (u.a. gcc - Version) da du auch Kernelmodule bauen musst! (tun.ko)
Eine alte Kernelconfig ist auch hilfreich - vereinfacht die Konfiguration der zusätzlichen Kernelmodule.
Wenn du die Kernelmodule lauffähig hast - dann erst gehts an's bauen der Anwendung.
"simplebuild" für Oscam hat die Toolchain von dirtyharry.
Ich kann dir aber nicht sagen ob du damit auch die passenden Kernelmodule bauen kannst. (version von gcc, glibc)
hab folgendes gefunden, vlt kommst du damit schon weiter:
Sie müssen registriert sein, um Links zu sehen
Da kann man wohl anscheinend auch direkt für arm kompilieren.
Ich habe auch nicht wirklich viel ahnung von crosscompiling und leider momentan auch wenig zeit sonst würde ich es selber mal in einer VM testen.
for LAN_PREFIX in eth bond
do
for (( i=0; i<$NIC_NUM; i=i+1 ))
do
case "$LAN_PREFIX" in
eth)
let ROUTE_TBL=$i+1
;;
bond)
let ROUTE_TBL=$i+11
;;
esac
LAN=$LAN_PREFIX$i
IP_ADDR="$(ifconfig $LAN 2> /dev/null | sed -n '/inet /{s/.*addr://;s/ .*//;p}')"
if [ x$IP_ADDR != "x" ]; then
/bin/ip route add $TUN_SUBNET/24 via $TUN_IP_ADDR dev ${TUN_DEV} tab $ROUTE_TBL &> /dev/null
fi
done
done
/bin/ip route flush cache
}
init_modules()
{
/bin/echo "init insmod for openvpn"
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/insmod /lib/modules/others/tun.ko 1>>/dev/null 2>&1
if [ ! -L /usr/sbin/vpn_check_account ]; then
/bin/ln -sf /sbin/nasutil /usr/sbin/vpn_check_account
fi
if [ ! -L /usr/sbin/vpn_openvpn_download ]; then
/bin/ln -sf /sbin/nasutil /usr/sbin/vpn_openvpn_download
fi
}
if [ -d ${VPN_OPENVPN_CONF_PATH} ]; then
ADMIN_NAME=`grep "Subject: C=TW" ${VPN_OPENVPN_CONF_PATH}/keys/myserver.crt | cut -d= -f 9`
if [ "${ADMIN_NAME}" == "peterlai@qnap.com" ]; then
/bin/rm -rf ${VPN_OPENVPN_CONF_PATH}
sleep 1
fi
fi
Wer von uns Laien soll das alles hinbekommen? :read:
Da können wohl nur die Experten helfen! -> Lieber nicht!!!
Deren Zeit wird für Forschung und Entwicklung am MCA dringender benötigt! :drinks:
libcrypto und libssl dürften die benötigten libs sein.
benötigt wird eigentlich "nur" das openvpn binary und das tun.ko modul.
Zeitsyncronisation findet ja schon statt.
dank kasi45 gibt es einen Kernel der den tun Treiber unterstützt.
Link ist nicht mehr aktiv.
Von der Debian Seite habe ich das Paket: openvpn (2.1.3-2+squeeze2) für Arm runtergeladen.
Die openvpn_2.1.3-2+squeeze2_armel.deb im Linux auspacken
(ar -x openvpn_2.1.3-2+squeeze2_armel.deb) und die data.tar im MCA Stammverzeichnis auspacken(tar -xzf data.tar.gz).
Nach dem Starten von openvpn werden die abhängigen Pakete angezeigt
(libpkcs11-helper1; libssl0.9.8; libc6)
die ebenfalls auf der Debian für Arm mit angeboten werden (auspacken und das data.tar im Stammverzeichnis des MCA auspacken).
# Original version by Robert Leslie
# <rob@mars.org>, edited by iwj and cs
# Modified for openvpn by Alberto Gonzalez Iniesta <agi@inittab.org>
# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
#. /lib/lsb/init-functions
test $DEBIAN_SCRIPT_DEBUG && set -v -x
DAEMON=/usr/sbin/openvpn
DESC="virtual private network daemon"
CONFIG_DIR=/etc/openvpn
test -x $DAEMON || exit 0
test -d $CONFIG_DIR || exit 0
# Source defaults file; edit that file to configure this script.
AUTOSTART="all"
STATUSREFRESH=10
if test -e /etc/default/openvpn ; then
. /etc/default/openvpn
fi
start_vpn () {
if test -e /dev/net; then
echo "/dev/net exists"
else
echo "/dev/net not exists"
mkdir -p /dev/net
mknod /dev/net/tun c 10 200
fi
chmod 600 /dev/net/tun
if grep -q '^[ ]*daemon' $CONFIG_DIR/$NAME.conf ; then
# daemon already given in config file
DAEMONARG=
else
# need to daemonize
DAEMONARG="--daemon ovpn-$NAME"
fi
if grep -q '^[ ]*status ' $CONFIG_DIR/$NAME.conf ; then
# status file already given in config file
STATUSARG=""
elif test $STATUSREFRESH -eq 0 ; then
# default status file disabled in /etc/default/openvpn
STATUSARG=""
else
# prepare default status file
STATUSARG="--status /var/run/openvpn.$NAME.status $STATUSREFRESH"
fi
# autostart VPNs
if test -z "$2" ; then
# check if automatic startup is disabled by AUTOSTART=none
if test "x$AUTOSTART" = "xnone" -o -z "$AUTOSTART" ; then echo " Autostart disabled."
exit 0
fi
if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
# all VPNs shall be started automatically
for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
NAME=${CONFIG%%.conf}
start_vpn
done
else
# start only specified VPNs
for NAME in $AUTOSTART ; do
if test -e $CONFIG_DIR/$NAME.conf ; then
start_vpn
else echo "No such VPN: $NAME"
STATUS=1
fi
done
fi
#start VPNs from command line
else
while shift ; do
[ -z "$1" ] && break
if test -e $CONFIG_DIR/$1.conf ; then
NAME=$1
start_vpn
else echo " No such VPN: $1"
STATUS=1
fi
done
fi echo ${STATUS:-0}
;;
stop) echo "Stopping $DESC"
if test -z "$2" ; then
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn echo "$NAME"
done
else
while shift ; do
[ -z "$1" ] && break
if test -e /var/run/openvpn.$1.pid ; then
PIDFILE=`ls /var/run/openvpn.$1.pid 2> /dev/null`
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn echo "$NAME"
else echo " (failure: No such VPN is running: $1)"
fi
done
fi echo 0
;;
# Only 'reload' running VPNs. New ones will only start with 'start' or 'restart'.
reload|force-reload) echo "Reloading $DESC"
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
# If openvpn if running under a different user than root we'll need to restart
if egrep '^[[:blank:]]*user[[:blank:]]' $CONFIG_DIR/$NAME.conf > /dev/null 2>&1 ; then
stop_vpn
sleep 1
start_vpn echo "(restarted)"
else
kill -HUP `cat $PIDFILE` || true echo "$NAME"
fi
done echo 0
;;
# Only 'soft-restart' running VPNs. New ones will only start with 'start' or 'restart'.
soft-restart) echo "$DESC sending SIGUSR1"
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
kill -USR1 `cat $PIDFILE` || true echo "$NAME"
done echo 0
;;
restart)
shift
$0 stop ${@}
sleep 1
$0 start ${@}
;;
cond-restart) echo "Restarting $DESC."
for PIDFILE in `ls /var/run/openvpn.*.pid 2> /dev/null`; do
NAME=`echo $PIDFILE | cut -c18-`
NAME=${NAME%%.pid}
stop_vpn
sleep 1
start_vpn
done echo 0
;;
status)
GLOBAL_STATUS=0
if test -z "$2" ; then
# We want status for all defined VPNs.
# Returns success if all autostarted VPNs are defined and running
if test "x$AUTOSTART" = "xnone" ; then
# Consider it a failure if AUTOSTART=none echo "No VPN autostarted"
GLOBAL_STATUS=1
else
if ! test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
# Consider it a failure if one of the autostarted VPN is not defined
for VPN in $AUTOSTART ; do
if ! test -f $CONFIG_DIR/$VPN.conf ; then echo "VPN '$VPN' is in AUTOSTART but is not defined"
GLOBAL_STATUS=1
fi
done
fi
fi
for CONFIG in `cd $CONFIG_DIR; ls *.conf 2> /dev/null`; do
NAME=${CONFIG%%.conf}
# Is it an autostarted VPN ?
if test -z "$AUTOSTART" -o "x$AUTOSTART" = "xall" ; then
AUTOVPN=1
else
if test "x$AUTOSTART" = "xnone" ; then
AUTOVPN=0
else
AUTOVPN=0
for VPN in $AUTOSTART; do
if test "x$VPN" = "x$NAME" ; then
AUTOVPN=1
fi
done
fi
fi
if test "x$AUTOVPN" = "x1" ; then
# If it is autostarted, then it contributes to global status
status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}'" || GLOBAL_STATUS=1
else
status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}' (non autostarted)" || true
fi
done
else
# We just want status for specified VPNs.
# Returns success if all specified VPNs are defined and running
while shift ; do
[ -z "$1" ] && break
NAME=$1
if test -e $CONFIG_DIR/$NAME.conf ; then
# Config exists
status_of_proc -p /var/run/openvpn.${NAME}.pid openvpn "VPN '${NAME}'" || GLOBAL_STATUS=1
else
# Config does not exist echo "VPN '$NAME': missing $CONFIG_DIR/$NAME.conf file !"
GLOBAL_STATUS=1
fi
done
fi
exit $GLOBAL_STATUS
;;
*) echo "Usage: $0 {start|stop|reload|restart|force-reload|cond-restart|soft-restart|status}" >&2
exit 1
;;
esac
exit 0
# vim:set ai sts=2 sw=2 tw=0:
Danach testen ob alles funktioniert mit
/etc/init.d/openvpn start
und zum Schluss noch in der Datei /etc/rc.conf bei
Diese Seite verwendet Cookies, um Inhalte zu personalisieren und dich nach einem Login angemeldet zu halten, wenn du registriert bist.
Durch die weitere Nutzung unserer Webseite erklärst du dich damit einverstanden.
Das Digital Eliteboard ist ein kostenloses Forum und ist auf Spenden angewiesen, um sich auch in Zukunft selbst zu finanzieren. Wenn auch du mit dem Digital Eliteboard zufrieden bist, würden wir uns über jede Unterstützung freuen.