DDL Logo
DDL - Digital Direct for Linux
Multiprotokoll-Controler und Steuerungssoftware für digitale Modelleisenbahnen

Mail: vogt@vogt-it.com
Impressum

Installation

Installation eines DDL-Systems auf Basis des srcpd

Ab Version 2.1.0 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 11.10.

Downloads (laden Sie die Installationspakete für Ihr Betriebssystem)

Installation des srcpd

Falls Sie ein Installationspaket von Sourceforge (ab Version 2.1.0) geladen haben, installieren Sie es mit dem Paketmanager Ihres Betriebssystems.

Beispiel für Ubuntu 11.10:

$ sudo dpkg -i srcpd_2.1.1-1karmic2_i386.deb
Falls Sie ein Quellcode-Archiv wie z. B. srcpd-2.1.1.tar.gz geladen haben, gehen Sie wie folgt vor:

Für Ubuntu 11.10 sind einige Systempakete zusätzlich zu installieren:
$ sudo apt-get install build-essential libxml2-dev
Quellcode auspacken, srcpd kompilieren und installieren:
$ gunzip srcpd-2.1.1.tar.gz
$ tar -xvf srcpd-2.1.1.tar
$ cd srcpd-2.1.1
$ 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>
</srcp>
Passen Sie die Werte an Ihr System an. Dabei gelten folgende Empfehlungen:
  1. Erläuterungen zu den Parametern finden sie hier: DDL-Parameter der Datei srcpd.conf
  2. 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.

    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.
  3. 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.
  4. 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 11.10 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.6-1karmic1_i386.deb von Sourceforge geladen wurde.

Unter Ubuntu 11.10 sind folgende zusätzliche Pakete zu installieren:
$ sudo apt-get install libqt3-mt
spdrs60 installieren und starten:
$ sudo dpkg -i spdrs60_0.5.6-1karmic1_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:

  1. 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.
  2. Installieren Sie dieses Paket auf Ihrem System mit dem Programm rpm:
           $ rpm -i ddl-<release>-<bs-info>.i386.rpm
           
  3. Die DDL-Installation befindet sich nun in /opt/DDL
  4. 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.
  5. 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.

  1. 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.
  2. Laden Sie das TAR-Archiv mit dem DDL-Quellcode aus dem DDL-Download-Bereich
  3. Entpacken Sie das Archiv in einem Verzeichnis Ihrer Wahl
           $ gunzip ddl-<release>.tgz
           $ tar -xvf ddl-<release>.tar
           
  4. 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.
  5. Die DDL-Installation befindet sich nun in /opt/DDL
  6. Befolgen Sie nun analog die entsprechenden Schritte wie sie bei Installation von RPM-Paketen angegeben sind