Installation aus den Quellen

Die Daemons

Die Daemons sollten sich problemso unter einem UNIX OS (z.B. Linux) übersetzen lassen. Um die Daemons zu übersetzen, werden von der Downloadseite für Libs noch die folgenden Pakete benötigt:

Als externe Pakete werden die folgenden Libs benötigt:

Build und Installation der Libs

Die Bibliotheken können einfach mit make in dem Verzeichnis übersetzt werden. Es wurde kein autoconf (configure) benutzt, da die Bibliotheken keine besonderen Vorraussetzungen haben und zum Teil schon auf 16-Bit Homecomputer (Atari ST) übersetzt wurden.

Es gibt im Makefile kein Target zum Installieren. Die Header Dateien können einfach "zu Fuß" in das Includeverzeichnis und die static libs in das Libverzeichnis kopiert werden. Das sollte auch einem UNIX System /usr/local/include bzw. /usr/local/lib sein. Alternativ kann im mrsystem Verzeichnis ein Verzeichnis include und ein Verzeichnis lib angelegt und die Dateien dort hin kopiert werden.

Build und Installation der Daemons

Die Dameons werden mit make im mrsystem Verzeicnis compiliert. Es gibt kein configure Script aus dem autoconf Paket.

Für die Auswahl der Pakete muß das Makefile editiert werden. Damit kann z.B. festgelegt werden, ob Daemons für can4linux, socketCAN oder auch die CC-Schnitte compiliert werden.

Das Makefile enthält die folgenden Targets:

TargetErklärung
all (erstes Target)compiliert die Daemons
install Installiert die Daemons nach /usr/local/bin, die Konfigdateien nach /etc und die Startupdatei nach /etc/init.d und legt anschließend die Links in die Runlevel an.
install_apps Installiert die Daemons nach /usr/local/bin
install_web Installiert die Webseiten nach /var/www
clean_apps löscht alle Objektdateien und Daemons (binaries)
clean_link löscht die erzeugten Daemons (binaries). Dies muß vor einem erneuten make durchgeführt werden, wenn Änderungen an den libs gemacht wurden. Die einzelnen Daemons sind nicht von den internen Libs abhängig, um die Makefiles nicht zu kompliziert und damit unüberischtlich werden zu lassen.
clean_dokulöscht die per doxygen erzeugte Doku.
cleanlöscht alle erzeugten Dateien.
dokugeneriert die doxygen Doku.

S88

Um den client_gpios88 zur Abfrage des S88 Bus per GPIO auf dem BPi zu übersetzen, muß das Projekt von Gerhard Bertelsmann parallel zu dem mrsystem liegen. Das Makefile greift direkt auf die Originalsourcen zu. Dazu kann einfach eine Arbeitskopie des Repositorys parallel zu mrsystem angelegt werden. Dies ergibt dann die folgende Verzeichnisstruktur:

|-- mrsystem
|   |-- client_cc
|   |-- client_cs2eth
|   |-- client_cs2sl
|   |-- client_gpios88
|   ...
|   `-- www
|-- railroad
|   |-- can2udp
|   |   |-- config
|   |   |-- files
|   |   |-- msd
|   |   |-- pictures
|   |   `-- src
|   ...

Die Weboberfläche

Die Webseiten können entweder über das Makefile mit make install_web installiert werden, wenn der Dokumentroot /var/www. Achtung: wenn schon Webseiten vorhanden sind, wird möglicherweise die Indexseite überschrieben.

Alternativ können die Datein auch manuell kopiert werden. Wenn die Links angepaßt werden, können die Seiten auch in ein anderes Verzeichnis kopiert werden.

Egal wohin die Webseiten kopiert werden, es müssen einige Bedingungen erfüllt werden, damit auch externe Software damit zurecht kommt bzw. die Aktionen ausgeführt werden können.

config

Das Verzeichnis config enthält die *.cs2 Dateien. Dieses Verzeichnis muß unter dem Dokumentroot angelegt werden, damit Software, die diese Dateien über http anfordet, diese auch findet. Der absolute Pfad dieses Verzeichnisses ist auch in der Konfigdatei /etc/mrsystm einzutragen.

icons

Das Verzeichnis icons enthält die Icons der Loks. Dieses Verzeichnis muß über den Dokumentroot abrufbar sein, damit Software, die diese Dateien über http anfordet, diese auch findet. Dieses Verzeichnis ist möglicherweise ein virtueller Pfad, wie z.B. unter dem Apache Webserver. Wenn keine weiteren Webseiten der virtuellen icons Verzeichnis nutzen, empfiehlt es sich, einen Eintrag für ein virtuelles icons Verzeichnis aus der Konfig des Webservers zu löschen. Danach kann unter dem Dokumentroot ein Verzeichnis icns abgelegt werden.

Doku

Unter dem Doku Verzeichnis kann ein Verzeichnis mrsystem engelegt werden, wohin der Inhalt des doku Verzeichnis aus dem Quellcode kopiert werden kann. Damit steht dann auch eine Doku der Webconfig auf dem Gerät zur Verfügung.

Dateiattribute

Es muß natürlich darauf geachtet werden, daß die Dateien für Besitzer, der Gruppe und den Rest der Welt lesbar sind. Die Verzeichnisse müssen zuätzlich für den Besitzer, der Gruppe und den Rest der Welt "betretbar" (also executable Flag) sein. Die Shellskripts müssen natürlich für den Besitzer, der Gruppe und den Rest der Welt ausführbar sein.

sudoers

Die Shellskripte müssen einige Operationen mit entsprechenden Rechten ausführen können. Z.B. kann eine Installation eines Updates der Binarys des mrsystem nur mit root Rechten erfolgen. Deshalb müssen einige Einräge in der Datei /etc/sudoers vorhanden sein, damit die Befehle mit su ausgeführt werden können.

DienstEintrag in sudoers
reboot deviceALL ALL=NOPASSWD: /sbin/reboot
halt deviceALL ALL=NOPASSWD: /sbin/halt
replace configALL ALL=NOPASSWD: /bin/sed
updateALL ALL=NOPASSWD: /tmp/update.sh

Achtung: die Datei /etc/sudoers ist auch für den Besitzer root nur lesbar!
Die verschiedenene Programme, die mit root Rechten ohne Eingabe eines Passwords ausgeführt werden dürfen, können per Komma getrennt angegeben werden:

ALL	ALL=NOPASSWD: /sbin/reboot, /sbin/halt, /bin/sed, /tmp/update.sh

Externe Links


Zurück zur Modellbahn Startseite - Zurück zur Homepage