Keine Lokomotive fährt, was nun?
Zuerst ist zu überprüfen, ob an Gleisen die Digitalspannung anliegt. Am
einfachsten geht dies, in dem man einen Wagen mit Innenbeleuchtung auf
das Gleis stellt. Leuchtet diese auf, dann wird die Anlage mit Strom versorgt.
Leuchtet diese nicht auf, muß der Server angewiesen werden den Digitalstrom
zu erzeugen. Dies geht beim simpleclient mit dem Kommando
start. Sollte das Problem nicht behoben sein, ist das Kabel zwischen
PC und Booster zu überprüfen. Ist das Problem immer noch nicht behoben, dann
könnte die Kurzschlusserkennung des SRCP-Servers der Grund
sein. Am Besten man schaut sich die Meldungen des SRCP-Servers in der
Datei /var/log/messages an. Gibt es Indizien, die auf eine fehlerhafte
Kurzschlusserkennung hinweisen, dann sollte man diese zunächst per
Kommandozeilenargument oder über die Konfigurationsdatei deaktivieren.
Wenn nun alles geht, kann man sich um das Kurzschlussproblem kümmern ;-)
zurück zum Seitenanfang ...
Wie kann man den SRCP-Server beim booten des Rechners
automatisch starten?
Wenn Sie das Programm srcpd aus einem Installationspaket oder gemäss
den Ausführungen der Installationsanleitung installiert haben, sollte
das Programm automatisch beim Systemstart gestartet werden. Die folgenden
Ausführungen beziehen sich auf den ursprünglichen SRCP-Server erddcd des
DDL-Projektes und beschreiben den grundsätzlichen Vorgang. Auf aktuellen
Linux-Distributionen gibt es i. d. R. Hilfsprogramme, die den Grossteil
der unten beschriebenen Massnahmen automatisch durchführen. Unter Ubuntu
Linux gibt es dazu beispielsweise das Programm update-rc.d. Bevor
Sie die folgende Beschreibung lesen und auf Ihr System übertragen, sollten
Sie anhand der Installationsanleitung prüfen, warum srcpd nicht gestartet
wurde. Oft hilft auch ein Blick in die Datei /var/log/messages.
Unix-Systeme durchlaufen beim booten eine sogenannte Boot-Sequenz. Wie diese
genau aussieht wird durch das Programm init festgelegt. Es würde
an dieser Stelle zu weit führen, den genauen Ablauf zu beschreiben. Deshalb
beschränke ich mich auf die notwendigen Dinge, die bei einer System V
konformen Boot-Sequenz den automatischen Start von erddcd bewirken.
Dies wird mit den meisten Linux-Distributionen (z.B. RedHat Linux)
funktionieren.
Zunächst ist es notwendig Superuser-Privilegien zu erhalten und in das
Verzeichnis /etc/rc.d/init.d zu wechseln. Bei anderen Distributionen könnte
es auch das Verzeichnis /etc/init.d sein.
$ su -
Password:
$ cd /etc/rc.d/init.d
Erzeugen Sie nun in diesem Verzeichnis ein Shell-Script erddcd
mit folgendem Inhalt: (Dieses Script finden Sie unter dem Namen erddcd.rc im Verzeichnis /opt/DDL/bin der DLL-Distribution)
#!/bin/sh
#
# Author: Torsten Vogt, 1999
#
# /etc/rc.d/init.d/erddcd
#
# Script to start erddcd at system startup time
#
# copy this script to the directoy which contains your systems
# startup scripts (e.g. /etc/rc.d/init.d).
# Change the following variables:
ddlpath=/opt/DDL
pidfile=/tmp/.erddcd_ttyS1.pid
device=/dev/ttyS1
port=12345
# Then you have to do two symbolic links like the following:
#
# % ln -s /etc/rc.d/init.d/erddcd.rc /etc/rc.d/rc3.d/S25erddcd
# % ln -s /etc/rc.d/init.d/erddcd.rc /etc/rc.d/rc3.d/K25erddcd
#
#---------- there is nothing to change beyond this line! ----------#
case "$1" in
start)
if test -f ${ddlpath}/bin/erddcd ; then
${ddlpath}/bin/erddcd -f $pidfile;
echo "erddcd started";
else
echo "cannot find ${ddlpath}/bin/erddcd! erddcd not started!"
fi
;;
stop)
if test -f $pidfile ; then
kill -1 `cat $pidfile`
kill -15 `cat $pidfile`
rm -f $pidfile
echo "erddcd stopped";
else
echo "pidfile $pidfile not found! Cannot stop erddcd."
fi;
;;
reload)
if test -f $pidfile ; then
kill -1 `cat $pidfile`
echo "erddcd reloaded"
else
echo "pidfile $pidfile not found! Cannot reload erddcd.";
fi;
;;
*)
echo "Usage: $0 {start|stop|reload}"
exit 1
esac
Nun muß noch dafür gesorgt werden, daß dieses Script während der Bootsequenz
des Linux-Systems aufgerufen wird. Speichern Sie dieses Script unter dem
Namen erddcd ab und ändern Sie die Auführbarkeitsprivilegien dieser
Datei:
$ chmod u+x erddcd
Als letzter Schritt sind noch symbolische Links zu erzeugen.
An welcher Stelle diese erzeugt werden müssen, hängt vom Runlevel Ihres
Systems ab. Das Programm erddcd sollte im Runlevel 3 gestartet werden.
$ cd /etc/rc.d/rc3.d
$ ln -s /etc/rc.d/init.d/erddcd ./S25erddcd
$ ln -s /etc/rc.d/init.d/erddcd ./K25erddcd
Das war es. Beim nächsten Hochfahren Ihres Rechners wird erddcd
automatisch gestartet.
zurück zum Seitenanfang ...