User Tools

Site Tools


rocnet:rocnetnode-build-de

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

rocnet:rocnetnode-build-de [2018/11/12 08:56] (current)
Line 1: Line 1:
 +====== RocNetNode Build aus den Quellen ======
 +[[:​german#​zentralen|{{ ​ :​interface.png}}]][[:​german|{{ ​ :​rocrail-logo-35.png}}]][[:​rocnet:​rocnetnode-de|{{ :​rocnet:​rocnet-hw.png}}]]
 +[[:​rocnet:​rocnetnode-en|{{ icons:​uk.png}}]][[:​rocnet:​rocnetnode-de|{{ icons:​de.png}}]]
 +[[:​german|Inhalt]] -> [[:​german#​zentralen|Zentralen]] ->  **[[rocnet:​rocnet-prot-de|RocNet]]** ​
 +  * [[rocnet:​rocnet-prot-de|RocNet-Protokoll]] | **[[:​rocnet:​rocnetnode-de|RocNetNode]]**
 +    * [[:​rocnet:​rocnetnode-hwsetup-de|RocNetNode ​ Einrichtung]] | [[:​rocnet:​rocnetnode-setup-de|RocNetNode Konfiguration]] | [[:​rocnet:​rocnetnode-img-de|Installations-Paket]]
 +  * [[:​gca:​gca-index-de#​raspberry_pi_rocnet_platinen_und_bausaetze|Raspberry Pi Baugruppen]]
 +    * [[:​gca1-pi01-de|GCA-Pi01]] | [[:​gca_pi02-de|GCA-Pi02]] ​ | [[:​gca-pi03-de|GCA-PI03]] | [[:​GCA-PI04-de|GCA-PI04]] |  [[:​gca107-de|GCA107 Relais-Baugruppe]] ​
 +  * **[[:​rocnet:​rocnetnode-build-de|Build aus den Quellen]]** | [[:​raspi:​raspi-dev-en|RasPi as Rocrail server (en)]]
 +
 +===== Build =====
 +Zuerst lesen: __**[[:​raspi:​raspi-dev-en|RasPi Dev (en)]]**__\\
 +:!: **Nicht** ''​libi2c-dev''​ installieren;​ Es wird den Installations-Prozess abbrechen und die benötigten C-Headers und Bibliotheken sind schon im RaspBian-Image enthalten.\\
 +Der Rocrail-Server wird auch im RocNetNode mitge**build**et:​
 +<​code>​
 +make server
 +sudo make install
 +</​code>​
 +Das "​Binary"​ wird in **''​Rocrail/​unxbin''​** geschrieben.\\
 +Die **''​rocnetnode.ini''​** kann von **''​Rocrail/​rocnetnode/​package/​rocnetnode.ini''​** kopiert werden.\\
 +
 +====Installieren====
 +<​code>​
 +cd rocnetnode
 +sudo make install
 +</​code>​
 +Das Kopiert folgende Dateien nach **''/​opt/​rocnet''​**:​
 +  * **''​rocnetnode''​**
 +  * **''​rocnetnode.ini''​**
 +  * **''​rocnetnode.sh''​**
 +
 + \\
 +
 +===== Starten =====
 +  - Die **''​rocnetnode.ini''​** und die **''​dcc232''​**-Bibliothek müssen sich im Arbeitsverzeichnis befinden.
 +  - Um auf **''/​dev/​mem''​** und **''/​dev/​i2c-x''​** zugreifen zu können, muss das Programm mit **''​sudo''​** gestartet werden:\\
 +
 +<​code>​
 +20130825.214751.623 r9999I main     ​raspi ​   0068 setup RasPi I/O 0x00000001
 +20130825.214751.624 r9999E main     ​raspi ​   0072 can't open /dev/mem
 +</​code>​
 +
 +**''​Sudo''​**-Starten im **''​unxbin''​**-Verzeichnis:​
 +<​code>​
 +sudo ./​rocnetnode
 +</​code>​
 +
 + \\
 +
 +
 +==== rocnetnode.ini ====
 +Siehe: __**[[:​gca1-pi01-de#​zuordnung|Port-Zuordnung]]**__\\
 +<code xml>
 +<​rnnode>​
 +  <rocnet id="​4711"​ addr="​224.0.0.1"​ port="​4321">​
 +    <​rocnetnodeoptions iotype="​0"​ sack="​true"/>​
 +    <​portsetup port="​1"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​2"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​3"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​4"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​5"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​6"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​7"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​8"​ type="​1"​ delay="​200"/>​
 +    <​portsetup port="​9"​ type="​0"​ delay="​0"/>​
 +    <​portsetup port="​10"​ type="​0"​ delay="​0"/>​
 +    <​portsetup port="​11"​ type="​0"​ delay="​0"/>​
 +    <​portsetup port="​12"​ type="​0"​ delay="​0"/>​
 +    <​portsetup port="​13"​ type="​1"/>​
 +    <​portsetup port="​14"​ type="​1"/>​
 +    <​portsetup port="​15"​ type="​1"/>​
 +    <​portsetup port="​16"​ type="​1"/>​
 +  </​rocnet>​
 +  <trace rfile="​rocnetnode"​ protpath=""​ debug="​false"​ info="​false"​ calc="​true"​ byte="​false"/>  ​
 +  <digint lib="​dcc232"​ iid="​dcc-1"​ device="/​dev/​ttyUSB0"/>​
 +  </​rnnode>​
 +</​code>​
 +
 +=== rocnet ===
 +^ Attribute ^ Beschreibung ^ Bereich ^ Voreinstellung ^
 +| id | RocNet-kennung | 0-65535 | 0 |
 +| addr | Multicast-Adresse | * | 224.0.0.1 |
 +| port | Multicast-Port | 0-65535 | 4321 |
 +\\
 +
 +=== Rocnet-Optionen (rocnetnodeoptions) ===
 +^ Attribute ^ Beschreibung ^ Bereich ^ Voreinstellung ^
 +| iotype | I/O type | 0=i2c-1, 1=i2c-0 | 0 |
 +| sack | Rückmelder-Bestätigung | true/false | false |
 +| rfid | Aktiviert ID-12-Lesen | true/false | false |
 +Für Raspberry Pi Rev. 1 **I2C-0** als Gerät verwenden.\\
 +\\
 +
 +=== Port-Einstellung (portsetup)===
 +^ Attribute ^ Beschreibung ^ Bereich ^ Voreinstellung ^ Bemerkung ^
 +| port | logische Port-Nummer zur Verwendung in der Rocrail-Adressierung | 1-128 | 1 | |
 +| type | I/O-Typ | 0=Ausgang, 1=Eingang | 0 | |
 +| delay | Verzögertes AUS der Eingäne für Belegtmelder((Minimale Pulse-Länge 100ms.)), oder Ausgangs-Pulszeit. | 0-255 | 0 | 10ms Einheiten, 0=nicht verwendet |
 +| state | Sichert Ausgangs-Status | 0=off, 1=on | 0 | Gesichert beim Abschalt-Befehl (Power Off). |
 + \\
 +
 +==== DCC232-Gerät ====
 +Mit der internen RS232 kann kein brauchbares DCC-Signal generiert werden.\\
 +Der beste Weg ist es, einen __**[[:​dcc232-de#​ubuntu_10.10|FDTI USB-RS232]]**__-Konverter an den USB-Anschluss anzuschliessen.\\
 +<​code>​
 +Bus 001 Device 004: ID 0403:6001 Future Technology Devices International,​ Ltd FT232 USB-Serial (UART) IC 
 +crw-rw---T 1 root dialout 188, 0 Jan  1  1970 /​dev/​ttyUSB0
 +</​code>​
 + \\
 +=====Herunterfahren=====
 +====Terminal====
 +Wenn das Programm im Konsolen-Modus läuft kann es mit CTRL+C angehalten werden.\\
 +In allen andern Fällen muss **''​kill''​** verwendet werden.\\
 + \\
 +
 +=====I2C-Vorbereitungen=====
 +
 +====Aktivieren====
 +| I2C kann nur mit dem **''​sudo''​**-Befehl aktiviert werden. |\\
 +Entfernen der Module aus der **''/​etc/​modprobe.d/​raspi-blacklist.conf''​** durch auskommentieren (**''#''​** am Anfang folgender Zeilen einfügen):
 +<​code>​
 +# blacklist spi and i2c by default (many users don't need them)
 +
 +#blacklist spi-bcm2708
 +#blacklist i2c-bcm2708
 +</​code>​
 +
 +Diese dann in **''/​etc/​modules''​** hinzufügen:​
 +<​code>​
 +# /​etc/​modules:​ kernel modules to load at boot time.
 +#
 +# This file contains the names of kernel modules that should be loaded
 +# at boot time, one per line. Lines beginning with "#"​ are ignored.
 +# Parameters can be specified after the module name.
 +snd-bcm2835
 +i2c-bcm2708
 +i2c-dev
 +</​code>​
 +
 +=====Links & Dokumentation=====
 +  * {{:​rocnet:​pwm:​pca9685.pdf}}
 +  * {{:​rocnet:​mcp23017.pdf}}
 +  * {{:​rocnet:​af-pca9685-schem.pdf|}}
 +  * {{:​rocnet:​p82b715.pdf|}}
 +  * {{:​rocnet:​pcf8591.pdf|}}
 +\\
 +=====Raspberry Pi und der serielle Port=====
 +  * http://​www.hobbytronics.co.uk/​raspberry-pi-serial-port
 +
 +Standardmäßig ist der serielle Port des Raspberry Pi zur Verwendung als Konsolen-Eingang/​Ausgang konfiguriert. Während es zweckmäßig ist wenn eine Anmeldung über den seriellen Port gewünscht ist, bedeutet es doch, dass der seriellen Port nicht für eigene Programme verwendbar ist. Um in der Lage zu sein, den seriellen Port zur Verbindung und Kommunikation mit anderen Geräten (z.B. Arduino) zu verwenden, muss die Anmeldung des seriellen Konsolen-Ports deaktiviert werden. ​
 +
 +Unnötig zu sagen, dass es notwendig wäre, sich auf andere Art am Raspberry Pi anzumelden und so wird vorgeschlagen,​ das über das Netzwerk mit einer SSH-Verbindung zu tun.
 +
 +====Deaktivieren der Anmeldung am seriellen Port====
 +Um den seriellen Port für eigene Verwendung zu aktivieren, muss die Anmeldung am Port deaktiviert werden. Es gibt zwei Dateien, die dafür editiert werden müssen.
 +
 +Die erste und wichtigste Datei ist **''/​etc/​inittab''​**
 +
 +Sie enthält den Befehl zur Aktivierung des Anmelde-Prompts und das muss deaktiviert werden. Die Datei wird mit einem Editor geöffnet und das Ende der Datei aufgesucht. Dort ist eine Zeile ähnlich der folgenden zu finden:
 +<​code>​
 +T0:​23:​respawn:/​sbin/​getty -L ttyAMA0 115200 vt100
 +</​code>​
 +Durch Einfügen eines **''#''​**-Zeichens am Anfang der Zeile wird der Befehl deaktiviert.
 +<​code>​
 +#​T0:​23:​respawn:/​sbin/​getty -L ttyAMA0 115200 vt100
 +</​code>​
 +Die Datei abspeichern.\\
 +====Deaktivieren der Bootup-Info====
 +Wenn der Raspberry Pi bootet werden alle Bootup-Information ian den seriellen Port gesendet. Das Deaktivieren dieser Bootup-Information ist optional und wenn es gewünscht ist, kann man sie aktiviert lassen, weil es hilfreich sein kann, zu sehen was beim Bootup geschieht. Wenn ein Gerät beim Bootup angeschlossen ist (z.B. Arduino), empfängt es diese Informationen über den seriellen Port und es liegt beim Anwender, zu entscheiden,​ ob das ein Problem ist oder nicht.
 +
 +Es kann durch Editieren der Datei **''/​boot/​cmdline.txt''​** deaktiviert werden.
 +
 +Der Inhalt der Datei sieht aus wie dies:
 +<​code>​
 +dwc_otg.lpm_enable=0 ​
 +console=ttyAMA0,​115200 ​
 +kgdboc=ttyAMA0,​115200 ​
 +console=tty1 ​
 +root=/​dev/​mmcblk0p2 ​
 +rootfstype=ext4 ​
 +elevator=deadline ​
 +rootwait
 +</​code>​
 +Alle Referenzen zu **''​ttyAMA0''​** entfernen, welches der Name des seriellen Ports ist.
 +
 +Die Datei sieht dann aus wie dies:
 +<​code>​
 +dwc_otg.lpm_enable=0 ​
 +console=tty1 ​
 +root=/​dev/​mmcblk0p2 ​
 +rootfstype=ext4 ​
 +elevator=deadline ​
 +rootwait
 +</​code>​
 +
 +====Neustart====
 +Um die Änderungen wirksam zu machen, muss der Raspberry Pi neu gestartet werden:
 +<​code>​
 +sudo shutdown -r now
 +</​code>​
 +
  
rocnet/rocnetnode-build-de.txt · Last modified: 2018/11/12 08:56 (external edit)