{{ :archive:software:iperf_auf_synology:iperf_banner.png?nolink&3000 |}}
====== Iperf auf dem Synology NAS ======
Achtung: Etwas veraltet.
Auf x86-NAS-Systemen verwendet man heute meist Docker mit einem iperf-Container.
Manchmal möchte man einfach einmal prüfen, wie schnell denn das Netzwerk ist (besonders übers WLAN). Ein Programm, welches das ermöglicht ist die Open Source Software Iperf.
Um diese auf einer Synology-NAS zum laufen zu bekommen gibt es mehrere Wege:
* Man installiert es über ipkg
* Man legt sich das Programm auf den NAS und lässt es nur bei Bedarf laufen (Programmstart via Telnet oder SSH)
* Man erstellt sich ein SPK-Paket und installiert es über die Paketverwaltung
Ich habe mich für die letztere Variante entschieden.
Um ein SPK-Paket zu installieren benötigt man zuerst einmal das gewünschte Programm in Binärform für den entsprechenden Prozessor. Man kann es sich selbst kompilieren (Hilfe dazu gibt es [[https://www.synology.com/de-de/support/developer#tool|hier]]), oder man kann, so wie ich, bereits kompilierte Software nutzen. Ich habe mich dazu bei den ipkg-Quellen bedient. Meine Synology DS215j besitzt einen Marvell Armada 750 SoC. Dieser ist kompatibel mit dem Marvell Kirkwood mv6281. Deswegen kann man die Software von [[http://ipkg.nslu2-linux.org/feeds/optware/syno1142mv6281/cross/unstable/|hier]] nutzen.
Die IPK-Dateien sind GZIP-Komprimierte Programmdateien. Deswegen kann man diese auch z.B. mit 7Zip extrahieren.
Anschließend muss man die Struktur einer SPK-Datei aufbauen. Diese muss genau wie folgt aussehen (exakter Dateiname wichtig):
iperf.spk
---scripts
------postinst
------postuninst
------preinst
------preuninst
------start-stop-status
---INFO
---package.tgz
Bei scripts handelt es sich um einen Ordner. Alles andere sind Dateien.
Die INFO-Datei kann so aussehen:
package="iperf"
displayname="Iperf"
version="1.0"
maintainer="Michael"
description="Port of Iperf to Synology"
arch="noarch"
package_icon="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"
Das package_icon ist ein Base64-Kodiertes PNG-Bild. Zum konvertieren gibt es einfache Web-Tools (z.B. [[http://www.base64-image.de/|hier]]). Der Rest sollte klar sein.
{{wp:de>Base64}}
preinst und preuninst werden nicht benötigt, weswegen diese so aussehen:
#!/bin/sh
exit 0
postinst sieht bei mir so aus:
#!/bin/sh
eval $(env | grep "^SYNOPKG_PKGDEST=")
ret=`ln -s "${SYNOPKG_PKGDEST}/iperf" /usr/syno/synoman/webman/3rdparty/iperf`
ret=`chown -R admin.users $SYNOPKG_PKGDEST`
exit 0
Es wird ein Symbolischer Link erzeugt und sich die Rechte für das iperf-Verzeichnis beschafft.
postuninst sieht so aus:
#!/bin/sh
rm -f /usr/syno/synoman/webman/3rdparty/iperf
exit 0
Damit wird das gelinkte Vezeichnis wieder gelöscht.
Und das Herzstück start-stop-status:
#!/bin/sh
DIR="/usr/syno/synoman/webman/3rdparty/iperf"
cd "$DIR"
case $1 in
start)
"$DIR/iperf" -s &
exit $?
;;
stop)
pkill -SIGKILL iperf &
exit $?
;;
status)
if [ `pidof iperf` > "0" ]
then
exit 0 # Server is running
else
exit 2 # Server seems to have died
fi
;;
log)
exit 0
;;
*)
exit 0
;;
esac
In diesem Script gibt es eine Fallunterscheidung für start, stop und status. Bei start wird der Iperf-Server gestartet (nicht als Daemon, da diese Iperf-Version einen Bug besitzt, der im Daemon-Modus für 100% CPU-Auslastung sorgt…). Bei stop wird der Iperf-Server anhand von seinem Prozess-Namen gekillt. Bei status wird zurückgegeben, ob der Prozess noch lebt. pidof gibt bei laufendem Prozess die PID zurück.
Ansonsten muss noch die Iperf-Programmdatei in den Ordner iperf gelegt werden, diesen mit 7Zip in ein .tar.gz Archiv gepackt werden und dieses anschließend in .tgz umbenannt werden.
Anschließend muss noch die fertige Ordnerstruktur mit allen Dateien als .tar gepackt werden und in .spk umbenannt werden.
{{tag>[iperf nas synology]}}