Probier es aus
Ubunto Karmic: lirc startet unzuverlässig
- MarkusE
- Geschlossen
-
-
Also ich weiß nicht, ich habe einfach ein "/etc/init.d/lirc restart" in die "rc.local" geschrieben und habe seit dem kein problem mehr.
-
Und das erachtest du als Fix ? Manch einer will halt wissen wo es her kommt und das Problem beheben.
Ich habe einen Bug in Ubuntu aufgemacht dafür:
https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/499588 -
Ich habe jetzt die erste Zeile aus der 85-lirc.rules deaktiviert, aber das ist eigtl. auch nur ein Workaround, da bei USB-Empfängern beim Hotpluggen das Skript nicht mehr funktionieren wird.
Der PC, wo das benötigt wird, steht bei meinen Großeltern als Mediacenter (ja, sie haben nur Linux...), deswegen meine Frage, ob das denn funktioniert hat oder nicht, damit ich das bei meiner Oma nicht umsonst ändere. Jetzt ist es getan und ich werde berichten, wenn sich meine Oma wieder beschweren sollte, dass die Fernbedienung nicht mehr geht
Trotzdem würde ich auch ein Upstart Skript bevorzugen, aber leider keine Zeit mich da einzuarbeiten
-
Das Problem scheint ja eine Race Condition zu sein.
Meine These:
Es tritt nur auf wenn die module noch nicht geladen sind. Dann werden sie vom init skript geladen, udev feuert und restartet lirc gleich nochmal. Evtl sollte man es auf USB beschränken ?Code#These rules are currently only adapted for a single lirc device. #They are mainly used for hotplugability of the USB devices #So that the user won't have to restart the lircd process. # #If a user has multiple lirc devices, and removes one of them #The other will stop working as well. This is a side effect #of both this udev script as well as the lirc architecture #Of chaining lircd processes. ACTION=="add", KERNEL=="lirc[0-9]" , BUS=="usb", RUN="/etc/init.d/lirc restart udev" ACTION=="remove", KERNEL=="lirc[0-9]", BUS=="usb", RUN="/etc/init.d/lirc stop udev"
Kann das jemand mit dem Problem mal bitte ausprobieren und bestätigen ? Bei USB Geräten müssten die Treiber automatisch geladen werden und somit die Race Condition nicht auftreten. Bei nicht USB Geräten würde die Rule nicht feuern.
Das Upstart Skript sehe ich jetzt nicht als Heilsbringer an, nur ein Nice-To-Have.
-
Hallo,
die von mir vorgeschlagene Lösung
Zitata) ACTION=="add", KERNEL=="lirc[0-9]", RUN="/etc/init.d/lirc restart udev in 85-lirc.rules entfernen:
hat bei mir nicht funktioniert. Lircd ist dann zwar gelaufen, hat aber nicht auf die Fernbedienung reagiert. Ich vermute, der Grund ist, daß die Module nicht synchron geladen werden und noch nicht 'vollständig' geladen waren, als lircd gestartet wurde (?).
Ich habe jetzt in /etc/init.d/lirc nach
Codeif [ "$LOAD_MODULES" = "true" ] && [ "$START_LIRCD" = "true" ]; then load_modules $2 $REMOTE_MODULES $TRANSMITTER_MODULES $MODULES fi
eingefügt. Seither (bisher) keine Fehler.
Markus
-
Zitat
Original von steffen_b
Ich habe einen Bug in Ubuntu aufgemacht dafür:
https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/499588Hallo steffen_b,
vielen Dank für den Bug Report, ich habe dort gerade ergänzt, dass der Fehler auch mich betrifft.
Es gibt einen weiteren Fehler:
https://bugs.launchpad.net/ubuntu/+source/lirc/+bug/460027
der vermutlich damit zusammenhängt: Wenn der von udev initiierte Restart nicht sauber funktioniert, gibt es natürlich auch beim Start von Lirc Probleme.Markus
-
Zitat
Und das erachtest du als Fix ? Manch einer will halt wissen wo es her kommt und das Problem beheben.
Sorry, sollte ja keine Lösung des eigentlichen Problems darstellen.
-
MarkusE: Nur kurz - weil ich weiss das du Interesse hattest:
im yavdr svn ist jetzt ein upstart job für setserial (setserial-minimal nicht volle Funktionalität) und einer für Lirc (ohne Part für die TRANSMITTER) - ist im wesentlichen das init skript - nur umgestellt. Die udev-rules müssen dafür disabled werden (die zeigt eh auf das initscript und das geht nicht gut - echtes hotplug ist ja eh nicht drin mit lirc).
HTH!
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!