====== Synology Diskstation ======
NAS auf Basis von Linux
===== Entware=====
''optware'' und der Nachfolger ''optware-**ng**'' werden nicht mehr gepflegt. Hier wird daher die Installation von ''entware'' beschrieben.
==== Installation ====
* Per SSH einloggen
* zu ''root'' wechselnsudo -i
* permanentes Verzeichnis erstellen: mkdir -p /volume1/@Entware/opt
* Sicherstellen, dass ''/opt/'' leer ist. Das Verzeichnis wird in diesem Schritt entfernt.''/opt/'' entfernen und ''bind'' erstellen:rm -rf /opt
mkdir /opt
mount -o bind "/volume1/@Entware/opt" /opt
* CPU-Typ auszeigen: uname -m
* Bootstrap-Skript nach CPU-Typ auswählen:
^CPU^ Bootstrap Skript^
|armv8 (aarch64) Realtek RTD129x| wget -O - http://bin.entware.net/aarch64-k3.10/installer/generic.sh | /bin/sh
|
|armv5|wget -O - http://bin.entware.net/armv5sf-k3.2/installer/generic.sh | /bin/sh
|
|armv7|wget -O - http://bin.entware.net/armv7sf-k3.2/installer/generic.sh | /bin/sh
|
|x64|wget -O - http://bin.entware.net/x64-k3.2/installer/generic.sh | /bin/sh
|
* Unter ''DSM'' -> ''Systemsteuerung'' -> ''Aufgabenplaner'' folgendes auswählen: ''Erstellen'' -> ''Ausgelöste Aufgabe'' -> ''Benutzerdefiniertes Skript'':
* Unter ''Allgemein'':
Vorgang: Entware
Benutzer: root
Ereignis: Hochfahren
Vor-Aufgabe: leer lassen
* Unter ''Aufgabeneinstellung'' -> ''Befehl ausführen'': unten stehendes Skript einfügen:
#!/bin/sh
# Mount/Start Entware
mkdir -p /opt
mount -o bind "/volume1/@Entware/opt" /opt
/opt/etc/init.d/rc.unslung start
# Add Entware Profile in Global Profile
if grep -qF '/opt/etc/profile' /etc/profile; then
echo "Confirmed: Entware Profile in Global Profile"
else
echo "Adding: Entware Profile in Global Profile"
cat >> /etc/profile <<"EOF"
# Load Entware Profile
. /opt/etc/profile
EOF
fi
=== Links ===
* [[https://github.com/Optware/Optware-ng|optware-ng Homepage (veraltet)]]
* [[https://gist.github.com/ffeldhaus/226f2c5743a7f631806d|Bootstrap the Synology DS215j with optware-ng (veraltet)]]
* [[https://github.com/Entware/Entware/wiki/Install-on-Synology-NAS|Install entware on Synology NAS]]
==== nützliche Pakete ====
opkg install nano git unzip
===== Unison =====
[[Unison]] ist nicht über entware erhältlich, deshalb muss man es selbst kompilieren. Unison ist in ocaml programmiert, deshalb braucht man dafür den ocaml-Compiler. Dieser ist ebenfalls nicht über entware erhältlich und muss daher auch [[synology#ocaml|selbst kompiliert]] werden.
Unison ist anspruchsvoll, was die Kompatibilität zwischen verschiedenen [[unison#versionen|Versionen]] angeht.
* [[synology#ocaml|ocaml]] selbst kompilieren (''gcc'' und ''make'' werden dort installiert)
* [[https://github.com/bcpierce00/unison/releases|Unison Sourcen]] herunterladen und entpacken z.B. nach ''/volume1/@tmp''
* Kompilieren:
make UISTYLE=text NATIVE=true
* Executable ''unison'' aus dem Verzeichnis ''src'' in ein Verzeichnis im ''PATH'' kopieren bzw. ''PATH'' entsprechend anpassen
''NATIVE=true'' erzeugt schnelleren, nativen Code. Auf manchen ARM-Architekturen führt das u.U. zu falschem Code, siehe [[https://github.com/ocaml/ocaml/pull/1411|Bugreport]].
Dies kann zu ''Failed to fingerprint file "/dir/file": the file keeps on changing'' [[https://unison-users.yahoogroups.narkive.com/SIOIUtJI/can-t-fingerprint-after-update-1-attachment|führen]].
Auch PowerPC e500v2 ist betroffen (mindestens in der Kombination Unison 2.51.5 kompiliert mit Ocaml 4.12.0).
Als Abhilfe kann man auf diesen Architekturen dann mit ''NATIVE=false'' zu langsameren Bytecode kompilieren.
===== Ocaml =====
* Tools installieren
opkg install gcc make
* [[https://ocaml.org/releases/|ocaml Sourcen]] herunterladen und entpacken z.B. nach ''/volume1/@tmp''
* Konfigurieren:
./configure --prefix /opt
* Kompilieren:
make world.opt
* Installieren (als root)
make install
===== rsync =====
Damit das NAS als Zielserver für rsync benutzt werden kann, muss seit DSM 5.1 oder 5.2 unter Hauptmenü -> Datensicherung & Replikation -> Sicherungsdienste -> Netzwerksicherungsdienst aktivieren gesetzt sein.
Andernfalls erscheint der Fehler
Permission denied, please try again.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(226) [sender=3.1.0]
Unter DSM 7 liegt diese Einstellung unter Systemsteuerung -> Dateidienste -> rsync.
===== screen =====
[[screen]] kann über ''opkg install screen'' installiert werden.
==== Fehler "Cannot find termcap entry for 'xterm-256color'" ====
Die Ursache für die Fehlermeldung ''Cannot find termcap entry for %%'%%xterm-256color%%'%%'' ist, dass die termcap-Datei unter ''/opt/etc/termcap'' keinen Eintrag für ''xterm-256color'' enthält, das von neueren Version von ''gnome-terminal'' (und anderen Terminals) als Standardeinstellung verwendet wird. Mögliche Abhilfen sind:
* screen mit xterm starten (''TERM=xterm screen''), dazu am besten ''alias screen=%%'%%TERM=xterm screen%%'%%'' in ''/etc/profile'' eintragen oder
* das Paket ''ncurses-base'' (''ipkg install ncurses-base'') installieren und screen mit gesetztem TERMINFO starten (''TERMINFO=%%'%%/usr/share/terminfo/%%'%% screen''), dazu am besten ''alias screen=%%'%%TERMINFO=%%'%%/usr/share/terminfo/%%'%% screen%%'%%'' in ''/etc/profile'' eintragen
===== GIT-Server (mit gitolite)=====
Annahmen: Das Paket ''perl'' ist bereits über das Paketzentrum installiert und Benutzerverzeichnisse sind über ''Systemsteuerung'' -> ''Benutzer'' -> ''Erweitert'' -> -> ''Benutzer-Basis'' -> ''Benutzer-Home-Dienst aktivieren'' aktiviert.
* Benutzer ''git'' anlegen, damit SSH-Zugriff funktioniert muss der Benutzer in der Gruppe ''administrators'' sein
* git installieren
* Möglichkeit 1: das Paket "Git Server" aus dem Paketzentrum installieren (Serverfunktionalität wird nicht genutzt, nur Benutzung der git Binaries, Vorteil kann über das Paketzenreum aktualisiert werden)
* Möglichkeit 2: Git über opkg installieren (Vorteil: manchmal aktuellere Git-Version verfügbar, muss über opkg aktualisiert werden), dazu
* dazu (als root)
opkg install git
*symbolische Links anlegen (als root)
ln -s /opt/bin/git* /usr/bin/
* Auf dem Client SSH Key anlegen (Passphrase kann leer bleiben)
ssh-keygen
* Key .ssh/id_rsa.pub auf die Diskstation kopieren (nach ''/volume1/homes/git/NAME.pub'')
* Installation starten (als Benutzer git)
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
gitolite/install -to $HOME/bin
$HOME/bin/gitolite setup -pk NAME.pub
* [[http://web.archive.org/web/20130803022500/http://www.bluevariant.com/2012/05/comprehensive-guide-git-gitolite-synology-diskstation|
Comprehensive Guide to Git and Gitolite on a Synology DiskStation (via Wayback Machine)]]
===== Befehle =====
* NAS ausschalten:
poweroff
* NAS neustarten:
reboot
===== Synology als Scanserver =====
Die Synology wird von mir nicht mehr als Scan-Server verwendet und daher wird dieser Abschnitt nicht mehr aktualisiert. Der folgende Stand beschreibt das Vorgehen für das mittlerweile obsolete ''optware''
* SANE installieren:
ipkg install sane-backends libusb inetutils libieee1284
* SANE konfigurieren\\ z.B. [[#scanner_acer_620u_fuer_diskstation|Acer 620U]]
* eigenes Subnetz, bzw. Clients, die scannen dürfen in /opt/etc/sane.d/saned.conf eintragen\\ für gesamtes lokales Netz 192.168.0.1-254 z.B. 192.168.0.1/24 (nicht /29)
* /etc/inetd.conf bearbeiten:
sane-port stream tcp nowait root /opt/sbin/saned saned
* /etc/services bearbeiten:
sane-port 6566/tcp # SANE network scanner daemon
* inetd neustarten
/usr/syno/etc/rc.d/S03inetd.sh restart
==== Debugging ====
* saned manuell (ohne inetd) mit Debuggingoutput starten:
saned -d5
* per Telnet auf Port 6566 verbinden
==== Scanner Acer 620U für Diskstation====
Die Konfiguration ist ähnlich wie [[sane#scanner_acer_620u_unter_linux|hier]] beschrieben, lediglich die Pfade sind anders:
* Firmwaredatei "u96v121.bin" aus dem Windowstreiber extrahieren.
* Firmware nach ''/volume1/@optware/share/sane/snapscan/'' verschieben
* ''/volume1/@optware/etc/sane.d/snapscan.conf'' anpassen:
firmware /volume1/@optware/share/sane/snapscan/u96v121.bin
===== Links =====
* [[https://www.synology.com/en-global/products/status|Product Support Page]] Übersicht des Supportstatus der verschiedenen Modelle