====== Diskstation ======
Ich habe vor meine Diskstation als SMI-Server zu benutzen.\\
Die Verbindung erfolgt über USB-Kabel.
Für den SMI-Bus sind es zwei "USB->TTL-Serial"-Kabel die an einem selbstgebauten Interface angeschlossen sind.
Die Schaltaktoren sind über ein "USB->RS485"-Kabel angebunden.
\\
\\
__Hier erst mal mein Stand der Dinge (DS212+ mit DSM 5.2):__
==== Bootstrap ===== (gilt nicht für Diskstation Pakete (SPK)
Erst muss einmal IPKG installiert werden um weitere Pakete zu installieren.
Diese [[http://www.synology-wiki.de/index.php/IPKG|Anleitung]] hat schon mal ganz gut funktioniert.
Allerdings muss dann der Pfad noch um ':/opt/bin:/opt/sbin' erweitert werden damit die installierten Programme auch ohne /opt/bin/ gestartet werden können:
'' export PATH='$PATH:/opt/bin:/opt/sbin' ''
oder besser gleich in /root/.profile mit ''vi /root/.profile'' ändern
==== Pakete zum Testen =====
''
IPKG install stty\\
IPKG install screen\\
... \\
''
==== Erster Testlauf =====
Ich habe ein FTDI-USB-Kabel das problemlos erkannt wurde:\\
''DS212> dmesg |grep ttyUSB\\
[158612.320000] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0''\\
\\
Wenn das nicht klappt kann es sein das die Module für diesen USB-Chip nicht geladen sind. Das lässt sich nach dieser [[http://www.synology-forum.de/showthread.html?41592-Welcher-RS232-USB-Adapter-funktioniert-auf-Anhieb|Anleitung]] aber leicht beheben:\\
''insmod /lib/modules/usbserial.ko\\
insmod /lib/modules/ftdi_sio.ko'' \\
Neuen USB-Port auf 2400 Baud einstellen:\\
''stty -F /dev/ttyUSB0 speed 2400''\\
\\
Motor mit ID 0xC hochfahren lassen:\\
''echo -e '\x5c\x02\xA1' > /dev/ttyUSB0''\\
\\
wer will kann auch ankommende Daten mitlesen. Dazu gibt es gleich mehrere Möglichkeiten:
Die HEX-ausgabe funktioniert allerdings bei mir nicht weil ''OD'' bei mir zu alt ist...\\
''/opt/bin/screen /dev/ttyUSB0 2400\\
cat < /dev/ttyS0\\
cat /dev/ttyS0\\
od -x < /dev/ttyS0\\
''\\
==== Feste Portzuordnungen =====
Die USB-Seriell-Adapter können unter Linux nach einem Neustart anders zugeordnet werden.
Wenn mehrere USB-Adpater verwendet werden kann nicht garantiert werden dass der selbe Adapter wieder unter /dev/ttyUSB0 angesprochen werden kann.\\
Als erstes alle USB-Seriell-Adapter einstecken und nachsehen ob und unter wechem Namen sie erkannt werden:\\
''pi@raspberrypi:~ $ dmesg | grep ttyUSB\\
[ 4.769458] usb 1-1.2: FTDI USB Serial Device converter now attached to ttyUSB0\\
[ 4.776933] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB1
''
Dann muss noch festgestellt was die beiden Adapter unterscheidet:\\
''
%%udevadm info --name=/dev/ttyUSB0 --attribute-walk%%\\
''
und\\
''
%%udevadm info --name=/dev/ttyUSB1 --attribute-walk%%\\
''
Dort dann durch die Einträge zu den Einträgen der USB-Adpater gehen und dort die PID,VID und Seriennummer suchen.
Bei mir waren es diese Werte:\\
ATTRS{idVendor}=="0403"
ATTRS{idProduct}=="6001"
ATTRS{serial}=="AL0123MH"
jetzt muss noch die Datei **/etc/udev/rules.d/99-usb-serial.rules** erstellt werden. Für jeden USB-Adapter muss dann eine entsprechende Zeile eingefügt werden. Bei mir waren es diese zwei Zeilen\\
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="AL0123MH" , SYMLINK+="ttySWB0"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="FTVB965T" , SYMLINK+="ttySMI0"
Eventuell kann man auch an die Seriennummern auf anderen Wege kommen:\\
ls -la /dev/serial/by-id|grep ttyUSB
...
lrwxrwxrwx 1 root root 13 Jan 14 22:09 usb-FTDI_FT232R_USB_UART_AL0123MH-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Jan 14 22:09 usb-FTDI_TTL232RG-VSW5V0_FTVB965T-if00-port0 -> ../../ttyUSB1
Jetzt können die Einstellungen auch getestet werden:\\
''sudo udevadm trigger''
Bei Erfolg sieht es dann so aus:\\
ls -la /dev |grep ttyUSB
lrwxrwxrwx 1 root root 7 Jan 14 22:09 ttySMI0 -> ttyUSB1
lrwxrwxrwx 1 root root 7 Jan 14 22:09 ttySWB0 -> ttyUSB0
crw-rw---- 1 root dialout 188, 0 Jan 14 22:09 ttyUSB0
crw-rw---- 1 root dialout 188, 1 Jan 14 22:15 ttyUSB1
Jetzt haben wir zwei neue Links auf die ttyUSB0 und ttyUSB1.
Wenn sich jetzt nach dem Neustart diese Zuordnungen ändern bleiben die Links die selben.
==== Pakete zum kompiliern =====
ipkg install wget
ipkg install bzip2
ipkg install zlib
ipkg install tar
ipkg install autoconf
ipkg install automake
ipkg install binutils
ipkg install gcc
...
==== SMI-Tools kompilieren =====
Erste Erfolge sind hier zu finden: [[https://github.com/ingof/smi-tools|https://github.com/ingof/smi-tools]]
==== SMI-Server kompilieren =====
Der SMI-Server ist ein Paket für die Synology Diskstation.
Meine erste Test-Version gibt es hier: [[https://github.com/ingof/smi-server|https://github.com/ingof/smi-server]]