2 Attachment(s)
[HowTo]Aria2 Torrent, FTP, HTTP mit Remote Control
Dieses HowTo beschreibt den Einsatz des hervorragenden Linux-Downloaders Aria2, speziell für etwas ältere, leistungsschwache Systeme, einschliesslich WL-HDD. Für neuere Modelle (=>RT-N16) wird ebenfalls das exakt gleiche Aria2 verwendet. Lediglich zusätzliche PHP Webinterfaces können auf den neueren Systemen zusätzlich installiert werden.
Aria2c kann Torrents, HTTP, FTP, MultiHTTP/FTP, Metalinks und Magnetlinks und verbraucht dabei unglaublich wenig CPU-Resourcen als auch wenig Speicher und ist dabei noch unglaublich schnell.
Vorbedingungen: Oleg's oder Ily's Firmware auf dem Router
(WL-Serie; für RTN16 oder 2.6er Kernel bitte die Pfade von /tmp/mnt/disc0_3 zu /tmp/mnt/disca_3 anpassen)
Installation nach Wengi
Ein Win32 System (PC/Note oder Netbook)
Grund-Kenntnisse mit vi (Linux-Editor)
Die Installation ist einfach:
Code:
ipkg update
ipkg install aria2
mkdir -p /opt/var/log/aria2
mkdir -p /opt/etc/aria2
mkdir -p /tmp/mnt/disc0_3/Downloads
touch /opt/etc/aria2/aria2.conf
vi /opt/etc/aria2/aria2.conf ###SWITCH TO INSERT MODE WITH 'i' ######
daemon=true
enable-rpc=true
rpc-listen-port=6800
rpc-listen-all=true
dir=/tmp/mnt/disc0_3/Downloads
log=/opt/var/log/aria2/aria2.log
log-level=warn
dht-listen-port=6801
auto-save-interval=30
max-overall-upload-limit=15K
max-upload-limit=10K
max-overall-download-limit=100K
max-download-limit=40K
seed-ratio=1.0
seed-time=1460
event-poll=select
######end of file - store with 'ESC :wq'########
touch /opt/etc/init.d/S85aria2
vi /opt/etc/init.d/S85aria2
###SWITCH TO INSERT MODE WITH 'i' ######
# For Olegs & Ily's FW for Asus Routers
# store this script in /opt/etc/init.d if you've installed optware
# Prgmname=/full_path/Prgmname
prgmname1="/opt/bin/aria2c"
shortname="aria2c"
#one option
options="--conf-path="
# configfile=/full_path/configfile
configfile="/opt/etc/aria2/aria2.conf"
start() {
# Code here to start the program
logger -t ARIA2C "Starting aria2c daemon "
${prgmname1} ${options}${configfile}
sleep 5
return 0
}
stop() {
# Code here to stop the program and check it's dead
if [ -n "`pidof $shortname`" ]; then
logger -t ARIA2C "Shutting down aria2c daemon "
/usr/bin/killall $shortname
sleep 5
fi
return 0
}
##########################start here##########################
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
logger -t ARIA2C "$shortname restart"
stop
sleep 2
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
sleep 1
exit
#### end of file S85aria2 ####
### Enter 'ESC' and ':wq' to store and leave vi ###
chmod 755 /opt/etc/init.d/S85aria2
reboot
Die Up und Download-limits müssen natürlich auf ihre Bandbreite angepasst werden, Die Einheit ist byte/sek und seed-time in Minuten.
Mehr Optionen gibt es hier: http://linux.die.net/man/1/aria2c
Jetzt müssen noch die Ports 6881-6999 und 6801 (dht) for TCP and UDP in der Firewall geöffnet werden.
Falls ein Zugriff über DynDNS erfolgen soll ist Port 6800 für ein Remote Control
ebenfalls zu öffnen. Dann bitte unbedingt einen rpc-user und password in der aria.conf verwenden.
Nun brauchen wir noch die RemoteControl.
Berücksichtigen sie, das es ein Win32 System sein muss!
(Es gibt aber auch für Win64 ein experimental Prgm. - bitte danach googeln)
Laden sie die Software von hier http://sourceforge.net/projects/aria...2.exe/download
Installieren sie diese Software - starten sie AriaRemoteControl und tragen sie die Adresse (IP) unter Tools/Options von ihrem Aria-Router unter Remote Host ein.
Bitte nicht vergessen, aria2c ist unglaublich flexibel.
Anbei noch ein Screenshot......
Hier ein super Wiki: http://sourceforge.net/apps/trac/aria2/wiki
Falls jemand avbf2_6 einsetzt, finden sie die notwendigen Änderungen für Aria2c im Anhang.
Das war es auch schon.....
Viel Spass
Newbiefan
Problemlösungen bei Fehlermeldungen von Aria2c
Nachstehend einige Möglichkeiten bei Fehlermeldungen in der syslog.log wie:
kernel: swapper: page allocation failure. order:3, mode:0x4020
Dieser entsteht auf Grund der Default-Einstellungen von Aria2. So sind z.Bspl. 100 Peers pro aktiver Connection möglich - das verbraucht unheimlich viel Speicher zumal auch noch die kleinen Datenhäppchen verwaltet werden müssen. Da kann es vorkommen, dass der Swap noch nicht soweit ist.
Dann hilft es, den mindestens verfügbaren Speicher höher zu setzen, oder die erlaubten Verbindungen (Peers) zu vermindern.
Für RTN16 ändern sie den Startfile /opt/etc/init.d/S85aria2
Code:
#! /bin/sh
#
# startfile for aria2c, by newbiefan @ wl500g.info
# For Olegs & Ily's FW for Asus Routers
# store this script in /opt/etc/init.d if you've installed optware
# Prgmname=/full_path/Prgmname
prgmname1="/opt/bin/aria2c"
shortname="aria2c"
min_free_mem=16384
#one option
options="--conf-path="
# configfile=/full_path/configfile
configfile="/opt/etc/aria2/aria2.conf"
start() {
# Code here to start the program
logger -t ARIA2C "Starting aria2c daemon "
${prgmname1} ${options}${configfile}
echo $min_free_mem > /proc/sys/vm/min_free_kbytes
sleep 5
return 0
}
stop() {
# Code here to stop the program and check it's dead
if [ -n "`pidof $shortname`" ]; then
logger -t ARIA2C "Shutting down aria2c daemon "
/usr/bin/killall $shortname
sleep 5
fi
return 0
}
##########################start here##########################
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
logger -t ARIA2C "$shortname restart, executed from $(whoami)"
stop
sleep 2
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
sleep 1
exit
Das setzt den freien Speicher auf mindestens 16MByte. Seither gibt es auf meinem RTN keine Fehlermeldung mehr. Aber man kann auch nach der Methode der Optimierung vorgehen:
Für Asus-Router mit wenig Speicher:
Ändern sie einfach die Datei /opt/etc/aria2/aria2.conf
Für den WL-500gP habe ich die Anzahl der max-open-Files auf 50 und die max_peers auf 25 gesetzt. Natürlich können sie auch noch mit dem mindestens verfügbaren Speicher etwas spielen, sollte aber auf max. 8MB gesetzt werden.
Code:
daemon=true
enable-rpc=true
rpc-listen-port=6800
rpc-listen-all=true
rpc-user=myuser
rpc-passwd=mypassword
dir=/tmp/mnt/disc0_3/Downloads
log=/opt/var/log/aria2/aria2.log
log-level=warn
enable-dht=true
dht-listen-port=6801
dht-file-path=/opt/var/run/aria2c/aria2c
auto-save-interval=30
#max-concurrent-downloads=5
lowest-speed-limit=1K
max-overall-upload-limit=10K
max-upload-limit=5K
max-overall-download-limit=150K
max-download-limit=40K
bt-max-peers=25
bt-max-open-files=50
bt-request-peer-speed-limit=1K
seed-ratio=1.0
seed-time=1460
event-poll=select
ACHTUNG: Bei einem RTN heissen die Mountpoints für die HDD /tmp/mnt/disca_3/Downloads
Ändern sie die Limits auf ihre Bandbreite. Wenn ihr Internet-Zugang zu träge wird, vermindern sie die Limits anteilsmässig. Obige Zahlen beziehen sich auf einen 2Mbit Zugang. (Dividieren sie durch 9, dann bekommen sie die Bandbreite in Byte)
Weiters bitte myuser und mypassword ändern. In besonders schlimmen Fällen können sie die mx-concurrent-downloads auf kleiner als 5 stellen, speziell bei Geräten mit 16 MB Speicher könnte dies nützlich sein.
Es lohnt sich in jedem Fall das Manual zu lesen und etwas herum zu probieren.
Und noch ein Hinweis: dht-Tables können nicht geschrieben werden solange das Verzeichnis mit dem File nicht angelegt wird.
Code:
mkdir /opt/var/run/aria2c
touch /opt/var/run/aria2c/aria2c
Dann stimmen auch die vorher gelisteten dht Einträge, diese sind auch für den RTN16 gültig.
LG
Newbiefan