Mail: vogt@vogt-it.com Impressum
|
Installation
Installation eines DDL-Systems auf Basis des srcpd
Ab Version 2.0.13 bzw. 2.0.12-opt4DDL kann der SRCP-Server srcpd den
DDL-eigenen erddcd auch im DDL-Betrieb
vollwertig ersetzen. Da srcpd das Programm mit dem grösseren Funktionsumfang ist
und i. d. R. alle
SRCP-Erweiterungen zeitnah im srcpd umgesetzt werden, ersetzt der srcpd ab
sofort den erddcd als SRCP-Server für DDL.
Die nun folgende Anleitung beschreibt die Installation eines DDL-Systems mit
dem srcpd als SRCP-Server, dem Client J-Man zum steuern von Zügen und dem
Client spdrs60 zum schalten von Weichen und Signalen. Alle Anweisungen,
die Befehle für das verwendete Betriebssystem sind, beziehen sich auf Ubuntu Linux 8.04 Desktop LTS.
Downloads (laden Sie die Installationspakete für Ihr Betriebssystem)
Installation des srcpd
Falls Sie ein Installationspaket von Sourceforge (ab Version 2.0.13) geladen
haben, installieren Sie es mit dem Paketmanager Ihres Betriebssystems.
Beispiel für Ubuntu 8.04:
$ sudo dpkg -i srcpd_2.0.13-1hardy1_i386.deb
Falls Sie das Quellcode-Archiv srcpd-2.0.12-opt4DDL.tar.gz geladen haben, gehen Sie wie folgt vor:
Für Ubuntu 8.04 sind einige Systempakete zusätzlich zu installieren:
$ sudo apt-get install build-essential libxml2-dev zlib1g-dev
Quellcode auspacken, srcpd kompilieren und installieren:
$ gunzip srcpd-2.0.12-opt4DDL-3.tar.gz
$ tar -xvf srcpd-2.0.12-opt4DDL-3.tar
$ cd srcpd-2.0.12-opt4DDL
$ sudo ./build.sh
$ sudo cp init.d.ubuntu /etc/init.d/srcpd
$ sudo update-rc.d srcpd defaults
Konfiguration des srcpd
Die Konfigurationsdatei des srcpd befindet sich in /etc und heisst srcpd.conf.
Die Datei sollte etwa folgenden Inhalt haben:
<?xml version="1.0"?>
<srcpd version="2.0">
<bus number="0">
<server>
<tcp-port>4303</tcp-port>
<pid-file>/var/run/srcpd.pid</pid-file>
<username>srcpd</username>
<groupname>srcpd</groupname>
</server>
<verbosity>0</verbosity>
</bus>
<bus number="1">
<ddl>
<number_ga>324</number_ga>
<number_gl>100</number_gl>
<enable_maerklin>yes</enable_maerklin>
<enable_nmradcc>yes</enable_nmradcc>
<enable_ringindicator_checking>no</enable_ringindicator_checking>
<enable_checkshort_checking>no</enable_checkshort_checking>
<inverse_dsr_handling>no</inverse_dsr_handling>
<shortcut_failure_delay>0</shortcut_failure_delay>
<nmradcc_translation_routine>3</nmradcc_translation_routine>
<improve_nmradcc_timing>no</improve_nmradcc_timing>
<enable_usleep_patch>yes</enable_usleep_patch>
<usleep_usec>250</usleep_usec>
</ddl>
<auto_power_on>no</auto_power_on>
<verbosity>0</verbosity>
<device>/dev/ttyS0</device>
</bus>
Passen Sie die Werte an Ihr System an. Dabei gelten folgende Empfehlungen:
- Erläuterungen zu den Parametern finden sie hier: DDL-Parameter der Datei srcpd.conf
- für DDL-Betrieb muss srcpd unbedingt von User 'root' gestartet werden.
Dies ist i. d. R. sowieso der Fall, wenn srcpd beim Startup des
Rechners automatisch gestartet wird.
Über die Parameter username und groupname der Sektion
'server' ist viel diskutiert worden. Fakt ist, daß DDL-Betrieb mit
dem srcpd nur dann sauber funktioniert, wenn das Programm von
einem User ausgeführt wird, der spezielle Rechte bzgl.
Echtzeitfähigkeiten des Linux-Kernels hat. Dies kann der User 'root'
sein. Ab Linux-Kernel 2.6.12 ist es besser, einen speziellen User
'srcpd' einzurichten und diesem mit einem geeigneten Eintrag in
/etc/security/limits.conf die nötigen Berechtigungen zu geben.
Laden Sie dazu das Script
createUserSrcpd.sh und führen
Sie es aus:
$ sudo ./createUserSrcd.sh
Anschliessend tragen Sie in srcpd.conf für username und
groupname je den Wert srcpd ein.
In der bei srcpd-2.0.12-opt4DDL-3.tar.gz mitgelieferten Variante von
srcpd.conf sind die Werte nobody und nogroup als
Standard eingetragen.
Ich empfehle unbedingt mit dem Script createUserSrcpd.sh den User
srcpd zu erzeugen und diesen in srcpd.conf einzutragen.
Verwendet man einen
Kernel vor Version 2.6.12, bleibt einem leider nichts anderes übrig,
als die Werte auf root zu setzen.
- ab Linux-Kernel 2.6 darf der Wert für improve_nmradcc_timing nur dann
auf yes gesetzt werden, wenn kein Multiprotokollbetrieb konfiguriert
worden ist. Im Umkehrschluss bedeutet dies, dass wenn enable_maerklin
auf yes gesetzt wurde, improve_nmradcc_timing zwingend auf no zu
setzen ist.
- wenn enable_maerklin auf yes gesetzt wurde, sollte
auch enable_usleep_patch auf yes gesetzt werden. Der Wert usleep_usec
sollte auf 250 gesetzt werden.
Starten Sie das Programm mit
$ sudo /etc/init.d/srcpd start
Beim nächsten Reboot Ihres Rechners, sollte srcpd automatisch starten.
Installation von J-Man
Im folgenden wird davon ausgegangen, dass das Paket j-man-1.4.0.zip von
Sourceforge geladen wurde.
Zur Nutzung des Gameports sind unter Ubuntu 8.04 folgende zusätzliche
Pakete zu installieren:
$ sudo apt-get install joystick
$ sudo modprobe gameport analog ns558 joydev
$ sudo ln -s /dev/input/js0 /dev/js0
Erweitern Sie die Datei /etc/rc.local zusätzlich um die letzten beiden Zeilen (allerdings ohne 'sudo').
Die letzte Zeile ist ein Workaround, da J-Man das Joystick Device unter /dev/js0 erwartet, dieses aber tatsächlich unter /dev/input/js0 zu finden ist.
J-Man auspacken und starten:
$ cd /opt
$ mkdir j-man
$ unzip <where-ever-it-is>/j-man-1.4.0.zip
$ /opt/j-man &
Installation von spdrs60
Im folgenden wird davon ausgegangen, dass das Paket spdrs60_0.5.4-1hardy1_i386.deb von Sourceforge geladen wurde.
Unter Ubuntu 8.04 sind folgende zusätzliche Pakete zu installieren:
$ sudo apt-get install libqt3-mt
spdrs60 installieren und starten:
$ sudo dpkg -i spdrs60_0.5.4-1hardy1_i386.deb
$ spdrs60 &
Viel Spass mit Ihrem neuen DDL-System.
ACHTUNG: Die folgenden Installationsanweisungen beziehen sich auf die veralteten
DDL-Komplettpakete!
Installation eines RPM-Paketes
Die Installation eines RPM-Paketes ist relativ einfach:
- Laden Sie ein geeignetes RPM-Paket für Ihr System aus dem
DDL-Download-Bereich. Sollten Sie kein passendes RPM-Paket finden,
lesen Sie bitte im nächsten Abschnitt dieser Seite, wie Sie
DDL aus dem Quellcode-Archiv passend für Ihr System erzeugen können.
- Installieren Sie dieses Paket auf Ihrem System mit dem
Programm rpm:
$ rpm -i ddl-<release>-<bs-info>.i386.rpm
- Die DDL-Installation befindet sich nun in /opt/DDL
- Passen Sie in Ihrem Home-Verzeichnis in der Datei .bashrc
den Pfad ($PATH) entsprechend an und setzen Sie dort
die Variablen DDLHOME, JAVAHOME und JAVAVM.
Beispiel:
export JAVAHOME=/opt/JAVA/jdk-1.3.1
export JAVAVM=java
export DDLHOME=/opt/DDL
export PATH=$DDLHOME/bin:$JAVAHOME/bin:$PATH
Diese Änderungen werden erst aktiv, nachdem Sie ein neues Terminalfenster
geöffnet haben oder nach einer erneuten Anmeldung beim System.
- Starten Sie den DDL-Daemon erddcd über das Script ddld und anschliessend
das grafische Steuerungsprogramm j-man:
$ ddld start
$ j-man
Nach der Eingabe von 'ddld start' werden Sie nach einem Password
gefragt. Geben Sie das root-Password Ihres Systems an.
Installation des Quellcode-Archivs
Sollten Sie kein passendes RPM-Paket für Ihr Linux-System finden und
auch keines der angebotenen RPM-Pakete auf Ihrem System funktionieren,
können Sie versuchen, DDL auf Ihrem System selbst aus dem Quellcode
zu erzeugen.
- Prüfen Sie nach, ob die Programme gcc, lex (flex), yacc (bison)
und eine funktionierende Java-Installation (J2DK) auf Ihrem
System vorhanden sind. Installieren Sie gegebenenfalls
fehlende System-Pakete nach.
- Laden Sie das TAR-Archiv mit dem DDL-Quellcode aus dem
DDL-Download-Bereich
- Entpacken Sie das Archiv in einem Verzeichnis Ihrer Wahl
$ gunzip ddl-<release>.tgz
$ tar -xvf ddl-<release>.tar
- Wechseln Sie in das neu angelegte DDL-Verzeichnis und folgen Sie
den Anweisungen:
$ ./configure
$ make
$ su
Password:
$ make install
$ exit
$ make clean
Hinweis: Es ist zwar möglich, mit Hilfe von
'configure --prefix=...' das Installationsverzeichnis
von /opt/DDL auf einen anderen Wert (z.B. /usr) zu ändern.
Empfohlen wird dies aber derzeit nicht. Setzen Sie --prefix
nur dann, wenn Sie in der Lage sind, noch weitere Anpassungen
am System durchzuführen, so daß die DDL-Software laufen kann.
- Die DDL-Installation befindet sich nun in /opt/DDL
- Befolgen Sie nun analog die entsprechenden Schritte wie sie bei
Installation von RPM-Paketen angegeben sind
|