<<< Previous topic - Next topic >>> |
|
Author |
Message |
Jan
Joined: 17 Jul 2006 Posts: 5
|
Posted: 17.07.2006, 10:39 Post subject: Autostart-Skript wählerisch |
|
|
Hallo
ich habe auf meinem DNP/9200 ein Problem mit dem Autostart-Skript /flash/autostart.sh.
Bestimmte Anwendungen werden gar nicht gestartet. Befehle der Busybox (Bsp. uname und whoami) geben ihe Meldung nur aus, wenn auf ">/dev/ttyS0" umgeleitet wird.
"ln" und "insmod <modulename>" funktionieren jedoch. Auch der "LCD_Test" (EVA9) funktioniert. Von der Anwendung finden sich keinerlei Spuren, weder auf der Konsole noch im Syslog.
Ich bin ratlos was hier den Start verhindert - als "root" in der Konsole gestartet funktioniert das Skript.
Mein Kernel / Image:
Linux DNP9200 2.4.27-vrs1-ssv1 #1 Do Aug 18 18:00:40 CEST 2005 armv4l unknown
MfG
Jan |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1462
|
Posted: 18.07.2006, 08:01 Post subject: autostart.sh |
|
|
Hallo Jan.
Die Busybox-Kommandos können auch von autostart.sh aus genutzt werden. Es ist allerdings zu beachten, dass in diesem Fall keine Konsole vorliegt (das Kommando wird ja durch eine spezielle Shell-Skript-Datei gestartet und nicht durch die manuelle Eingabe in einer Konsole). Daher erfolgt auch keine Ausgabe in einer Konsole.
Um das Verhalten zu testen, kann man die Ausgabe der einzelnen Kommandos ja mal in eine Datei umleiten. Dann sieht man hinterher, dass alles funktioniert hat. Beispiel:
pwd >> /flash/test.txt
ls –al / >> /flash/test.txt
ps –A >> /flash/test.txt
Die Datei /flash/test.txt kann man sich dann nachträglich mit „cat test.txt“ anschauen.
Viel Erfolg. |
|
Back to top |
|
|
Jan
Joined: 17 Jul 2006 Posts: 5
|
Posted: 18.07.2006, 11:14 Post subject: |
|
|
Hallo kdw,
die Umleitung der Ausgaben in eine temporäre Datei hatte ich bereits getestet. Mir ist klar, das es noch keine Konsole für user-prozesse gibt.
Die Ausgabedatei wird angelegt, bleibt jedoch völlig leer. Es gibt auch keine weiteren Indizien, das die Software überhaupt gestartet wurde. Mir ist es ein völliges Rätsel. auch andere Anwendungen, wie zb. "netio" reagieren gleich. Nur eine leere Datei bleibt.
Befehle wie "uname" und "whoami" funktionieren dagegen...
MfG
Jan
Meine autoini.sh
ln -s /flash/libpthread.so.0 /lib/libpthread.so.0
ln -s /flash/vas4/vst4ctrl.conf /etc/vst4ctrl.conf
ln -s /flash/vas4/vst4ctrl /usr/local/sbin/vst4ctrl
Meine autostart.sh:
insmod /flash/vas4/vas4dev.o
/flash/vas4/vst4ctrl -d >/var/vst4start.txt |
|
Back to top |
|
|
jne
Joined: 05 May 2006 Posts: 31 Location: Hannover
|
Posted: 19.07.2006, 15:04 Post subject: autostart.sh |
|
|
Hallo Jan,
das Problem liegt in der Umleitung der Error-Ausgaben in die Datei.
Die autoinit.sh ist so in Ordnung.
Bitte verwende die folgenden Einträge in der autostart.sh:
cd /flash
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib
/flash/myapp < /dev/null > /var/myapp.out 2> /var/myapp.err &
Der Pfad- und Applikationsname müssen noch angepasst werden.
Gruß
Jörg Neumann |
|
Back to top |
|
|
Jan
Joined: 17 Jul 2006 Posts: 5
|
Posted: 19.07.2006, 16:10 Post subject: Funktioniert nun |
|
|
Hallo Jörg,
vielen Dank für den Tip. Der Autostart hat mit den Änderungen auf anhieb funktioniert.
Das nun funktionierende Autostart-Skript:
Code: | #!/bin/sh
insmod /flash/vas4/vas4dev.o
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib
/flash/vas4/vst4ctrl -d < /dev/null >/var/log/vst4start.txt 2> /var/log/vst4err.txt & |
Noch nicht ganz klar ist, warum "/lib" noch zum Pfad hinzugefügt werden muss:
printenv liefert damit:
Code: | LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/lib=/usr/local/lib:/usr/lib:/lib=/usr/l
ocal/lib:/usr/lib:/lib |
Die Bedeutung der "=" ist mir hier noch nicht ganz klar...
MfG
Jan |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 19.07.2006, 16:18 Post subject: |
|
|
Hi Jan,
ich denke
Code: |
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/lib
export LD_LIBRARY_PATH
|
sollte besser funktionieren.
Gruß
Stefan |
|
Back to top |
|
|
Bernie
Joined: 18 Apr 2007 Posts: 8
|
Posted: 19.04.2007, 12:22 Post subject: |
|
|
Hallo Leute!
Ich arbeite auch seit kurzem mit dem DNP9200 mit originalem Linux Kernel 2.4 und bin über das gleiche Problem gestolpert. Dabei muß ich sagen dass ich noch nicht der volle Linux Guru bin, deshalb bitte nicht böse sein wenn ich etwas falsch verstanden habe.
Was mich zuerst verwirrt, es existiert doch eine Konsole, nämlich ttyS0. Dorthin sehe ich zumindest die Ausgabe von "entering autostart.sh".
Ich habe folgende autostart.sh:
Code: | #!/bin/sh
echo "entering autostart.sh"
if test `mount | grep -c mtdblock` -eq 0 ; then
echo "mounting flash..."
mkdir /root/flash
mount /dev/mtdblock3 /root/flash
fi
echo "autostart.sh done" |
Der script von der Konsole gestartet funktioniert aber nicht wenn er von init gestartet wird. Wenn ich den selben script im autoinit.sh verwende, läufts.
Ich nehme an dass der Grund darin liegt, dass im autoauto mein script als background Job gestartet wird und im autoinit nicht. Wie wäre der script richtig geschrieben dass er auch als background Job richtig arbeitet. Dabei geht es mir in Moment nur um das generelle Verständnis.
Dank im Voraus für eure Hilfe!
Bernhard |
|
Back to top |
|
|
|