Hallo Leute,
ich habe mir mal eine Lirc Fernbedienung für meinen Rechner gebastelt, installiert und alles funktioniert wie ich mir das vorstelle - nur das init-script tut nicht was es soll: /etc/init.d/lirc: -------------------------------------------------------------------------------------- # # This is an init script for Debian 2.1 Slink distribution. # Copy it to /etc/init.d/lirc and type # > update-rc.d lirc defaults 20 #
test -f /usr/local/sbin/lircd || exit 0 test -f /usr/local/bin/irxevent || exit 0
#debug stuff: who exec's this? date >> /var/log/lirc.debug runlevel >> /var/log/lirc.debug id >> /var/log/lirc.debug
case "$1" in start) rmmod serial rmmod lirc_serial insmod lirc_serial echo -n "Starting lirc daemon: lircd" start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd -- --device=/dev/lirc echo -n " irxevent" start-stop-daemon --start --quiet --exec /usr/local/bin/irxevent -- /etc/lircrc& echo "." ;; stop) echo -n "Stopping lirc daemon: irxevent" start-stop-daemon --stop --quiet --exec /usr/local/bin/irxevent -- /etc/lircrc& echo -n " lircd" start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircd echo "." ;; reload|force-reload) start-stop-daemon --stop --quiet --signal 1 --exec /usr/local/sbin/lircd start-stop-daemon --stop --quiet --signal 1 --exec /usr/local/bin/irxevent -- /etc/lircrc& ;; restart) echo -n "Stopping lirc daemon: irxevent" start-stop-daemon --stop --quiet --exec /usr/local/bin/irxevent echo " lircd" start-stop-daemon --stop --quiet --exec /usr/local/sbin/lircd sleep 1
echo -n "Starting lirc daemon: lircd" start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd -- --device=/dev/lirc echo -n " irxevent" start-stop-daemon --start --quiet --exec /usr/local/bin/irxevent -- /etc/lircrc& echo "." ;; *) echo "Usage: /etc/init.d/lircd {start|stop|reload|restart|force-reload}" exit 1 esac
exit 0 ----------------------------------------------------------------------------------------------------- ich habe das ganze noch etwas angepasst, damit der irxevent Daemon, der Signale vom lirc Daemon gleich mit gestartet wird. Nur startet der irxevent erst wenn ich das Script per Hand ausführe und nicht beim Booten. (ich habe das Script mit update-rc.d lirc defaults 20 eingerichtet). Woran kann das liegen? Was ist beim Booten anders?
/var/log/lirc.debug: ----------------------------------------------------------------------------------------------------- Thu Oct 2 14:23:16 UTC 2003 5 0 uid=0(root) gid=0(root) Thu Oct 2 17:53:47 UTC 2003 N 5 uid=0(root) gid=0(root) Don Okt 2 18:27:34 UTC 2003 N 5 uid=0(root) gid=0(root) Gruppen=0(root) Don Okt 2 18:27:38 UTC 2003 N 5 uid=0(root) gid=0(root) Gruppen=0(root) Don Okt 2 18:28:23 UTC 2003 N 5 uid=0(root) gid=0(root) Gruppen=0(root) Thu Oct 2 19:00:58 UTC 2003 5 6 uid=0(root) gid=0(root) Thu Oct 2 19:02:03 UTC 2003 N 5 uid=0(root) gid=0(root) Don Okt 2 19:10:09 UTC 2003 N 5 uid=0(root) gid=0(root) Gruppen=0(root) ------------------------------------------------------------------------------------------------------ Ach ja: Die Sache mit den Modulen war auch schon eigenartig: in meiner modules Datei war serial ausgetragen und trotzdem war es immer schon geladen, wenn lirc_serial starten wollte. Immer erst wenn ich Serial per rmmod entladen habe, konnte ich ordnungsgemäß lirc_serial laden. Deshalb habe ich es kurzerhand mit in das Startscript eingetragen.
Gut, das ist sicher ein umfangreiches Problem, aber ich hoffe jemand hat Zeit sich das mal durchzulesen.
Danke, Joe
On 04.10.03 Johannes Richter (joe_2000@web.de) wrote:
Hallo Leute,
ich habe mir mal eine Lirc Fernbedienung für meinen Rechner gebastelt, installiert und alles funktioniert wie ich mir das vorstelle - nur das init-script tut nicht was es soll: /etc/init.d/lirc:
# # This is an init script for Debian 2.1 Slink distribution. # Copy it to /etc/init.d/lirc and type # > update-rc.d lirc defaults 20 #
test -f /usr/local/sbin/lircd || exit 0 test -f /usr/local/bin/irxevent || exit 0
#debug stuff: who exec's this? date >> /var/log/lirc.debug runlevel >> /var/log/lirc.debug id >> /var/log/lirc.debug
case "$1" in start) rmmod serial rmmod lirc_serial insmod lirc_serial echo -n "Starting lirc daemon: lircd" start-stop-daemon --start --quiet --exec /usr/local/sbin/lircd -- --device=/dev/lirc
Enn Du ganz am Anfang den Pfad setzt sollte die komplette Pfadangabe überflüssig sein.
exit 0
ich habe das ganze noch etwas angepasst, damit der irxevent Daemon, der Signale vom lirc Daemon gleich mit gestartet wird. Nur startet der irxevent erst wenn ich das Script per Hand ausführe und nicht beim Booten. (ich habe das Script mit update-rc.d lirc defaults 20 eingerichtet). Woran kann das liegen? Was ist beim Booten anders?
Wenn das wirklich so geschrieben ist, wie das da oben drin steht: Im Initskript musz(!) der Interpreter erscheinen, also #!/bin/sh als erste Zeile im Skript.
Ach ja: Die Sache mit den Modulen war auch schon eigenartig: in meiner modules Datei war serial ausgetragen und trotzdem war es
^^^^^^^ /etc/modules.conf ? Die wird bei Debian aus dem Inhalt von /etc/modutils generiert. Änderungen an dieser Datei bitte dort vornehmen und update-mod???? aufrufen.
immer schon geladen, wenn lirc_serial starten wollte.
Immer erst wenn ich Serial per rmmod entladen habe, konnte ich ordnungsgemäß lirc_serial laden. Deshalb habe ich es kurzerhand mit in das Startscript eingetragen.
Ja, da hat jemand vorher auf die serielle Schnittstelle zugegriffen.
H.
Am Samstag, 4. Oktober 2003 12:14 schrieb Hilmar Preusse:
Wenn Du ganz am Anfang den Pfad setzt sollte die komplette Pfadangabe überflüssig sein.
Ok, wird probiert ...
Wenn das wirklich so geschrieben ist, wie das da oben drin steht: Im Initskript musz(!) der Interpreter erscheinen, also #!/bin/sh als erste Zeile im Skript.
Ja, sorry, hab die erste Zeile vergessen - es steht in meinem Skript. Es funktioniert ja auch, nur eben nicht, wenn's beim Booten ausgeführt wird.
Ach ja: Die Sache mit den Modulen war auch schon eigenartig: in meiner modules Datei war serial ausgetragen und trotzdem war es
^^^^^^^
/etc/modules.conf ? Die wird bei Debian aus dem Inhalt von /etc/modutils generiert. Änderungen an dieser Datei bitte dort vornehmen und update-mod???? aufrufen.
Nein, ich meine schon die /etc/modules Datei, und die wird IMHO auch bei Debian nicht von den Modutils generiert. Das sollte die Datei sein, in der nur die Module drinstehen, die beim booten geladen werden.
Ja, da hat jemand vorher auf die serielle Schnittstelle zugegriffen.
Kann ich das irgendwie explizit unterbinden ?
On Sun, Oct 05, 2003 at 05:14:15PM +0000, Johannes Richter wrote:
Am Samstag, 4. Oktober 2003 12:14 schrieb Hilmar Preusse:
Hi Johannes,
Wenn das wirklich so geschrieben ist, wie das da oben drin steht: Im Initskript musz(!) der Interpreter erscheinen, also #!/bin/sh als erste Zeile im Skript.
Ja, sorry, hab die erste Zeile vergessen - es steht in meinem Skript. Es funktioniert ja auch, nur eben nicht, wenn's beim Booten ausgeführt wird.
Bedeutet 'Beim booten nicht ausgeführt' das Skript wird nicht ausgeführt oder das Skript zeigt keine Wirkung? Bei Ersterem solltest du mal ein paar Debug-Ausgaben in das Script /etc/init.d/rcS unterbringen um evtl. einen Tip zu bekommen warum nicht. Das Script führt andere Scripte z.B. nicht aus wenn es fehlerhafte Symlinks sind.
Ja, da hat jemand vorher auf die serielle Schnittstelle zugegriffen.
Kann ich das irgendwie explizit unterbinden ?
Ich tippe auf ein Init-Script das vor deinem Script ausgeführt wird und das Modul lädt. In diesem Fall sollte ein Vertauschen der Reihenfolge (Umbenennen) reichen.
There are only 10 types of people in this world... those who understand binary and those who don't.
Hehe, davon gibt es auch T-Shirts bei kernelconcepts.org ;)
Ciao, Tobias
Ich habe den Fehler gefunden - der Teufel steckte im Detail: irxevent, was ich eigentlich starten wollte übersetzt signale vom lircd auf X-Events. Da er aber vor x gestartet wurde, hat er sich wahrscheinlich Kommentarlos verabschiedet, was ich nicht gemerkt hatte, da das Skript unter X natürlich perfekt lief. Also hab ich den irxevent jetzt in den Autostart von KDE eingefügt.
Am Montag, 6. Oktober 2003 19:38 schrieb Johannes Richter:
Ich habe den Fehler gefunden - der Teufel steckte im Detail: irxevent, was ich eigentlich starten wollte übersetzt signale vom lircd auf X-Events. Da er aber vor x gestartet wurde, hat er sich wahrscheinlich Kommentarlos verabschiedet, was ich nicht gemerkt hatte, da das Skript unter X natürlich perfekt lief. Also hab ich den irxevent jetzt in den Autostart von KDE eingefügt.
Hi Johannes,
nah siehste, da funktioniert es ja nun. Ich weiss ja, dass Du eigentlich nur das KDE benutzt. Aber wenn Du es noch ein bisschen besser machen magst, dann ruf das Script doch in /etc/rc5/ _nach_ kdm auf. Dann ist X gestartet, und Dein Script auch. (Und in diesem Fall unabhängig von KDE :-)
Viel Spass beim mp3-hören ...
Tschüss, Friedrich
Hallo,
Friedrich Hagedorn friedrich_h@gmx.de writes:
das KDE benutzt. Aber wenn Du es noch ein bisschen besser machen magst, dann ruf das Script doch in /etc/rc5/ _nach_ kdm auf. Dann ist X gestartet, und Dein Script auch. (Und in diesem Fall unabhängig von KDE :-)
...und du hast mit größter Wahrscheinlichkeit ein Problem, weil der X-Server den Zugriff verweigert... :-) Aber man könnte es z.b. in die .xinitrc eintragen, so mach' ich das immer.
Gruss,
Stefan
lug-dd@mailman.schlittermann.de