Ubuntu 10.04: Lirc nach Reboot ab und zu defekt (atric IR-Einschalter und Via Epia-M1000B)

  • Ich nutze den IR-Einschalter von atric (rev. 5). Angeschlossen habe ich den über den internen COM2 Anschluss meines Via Epia-M1000B Boards angeschlossen.


    Im Prinzip läuft auch (fast) alles. Das Problem, was ich habe ist, dass setserial ab und an nach einem Reboot nicht korrekt ausgeführt wird (ggf. stimmt auch einfach das Timing nicht) und der Anschluss dann nicht freigegeben wird.


    Lirc startet dann nicht und dann startet startet auch der VDR nicht. Der Grund ist, dass das lirc_serial modul nicht geladen werden kann. Ein manuelles Laden führt zu


    Code
    # sudo modprobe lirc_serial
    FATAL: Error inserting lirc_serial (/lib/modules/2.6.32-22-generic/updates/dkms/lirc_serial.ko): Device or resource busy

    Führt man dann

    Code
    #sudo setserial /dev/ttyS1 uart none

    aus und startet lirc und den vdr neu, läuft alles.


    Im Prinzip geht es also nur darum, dass beim booten "setserial /dev/ttyS1 uart none" an der richtigen Stelle ausgeführt wird (also vor dem Starten von lirc). Hierfür habe ich folgendes konfiguriert:


    1. /var/lib/setserial/autoserial.conf:

    Code
    /dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test
    /dev/ttyS1 uart none


    2. /etc/serial.conf:

    Code
    /dev/ttyS0 uart 16550A port 0x03f8 irq 4 baud_base 115200 spd_normal skip_test
    /dev/ttyS1 uart none


    3. "# sudo dpkg-reconfigure setserial" habe ich ausgeführ und "manual" ausgewählt.


    Die Ausgebe von "# setserial /dev/ttyS1" bestätigt, dass im Fehlerfall der UART Wert nicht korrekt gesetzt ist:
    - Fehlerfall: /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
    - Funktionierend: /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3


    Ich habe die Ausgeben von dmesg einmal nach einem "fehlerhaften" Boot und einmal nach einen "funktionierenden" Boot erstellt und hier angehängt.
    Man erkennt in den logs auch, dass sich das Timing beim Booten bei beiden Durchläufen unterscheidet.


    Sieht jemand einen Fehler in meiner Konfiguration oder gibt es eine andere Erklärung, warum es mal funktioniert und mal nicht? Irgendwelche BIOS Einstellungen? Irgendwas anderen, was das "Timing" beim Booten beeinflusst?

  • Ich habe die init-Skripte /etc/init.d/setserial und /etc/init.d/etc-setserial so angepasst, dass sie eine Ausgabe in /var/log/messages schreiben, sobald sie gestartet/ausgeführt werden.
    Im Fehlerfall finde ich in /var/log/messages keine Ausgabe; die Skripte scheinen also nicht ausgeführt zu werden. Vielleicht ist das nochmal ein Hinweis um die Fehlerquelle einzugrenzen...

  • Hallo!


    Ich habe genau das gleiche Problem. Leider habe ich bisher ebenfalls keine Lösung gefunden. Bei mir tritt der Fehler allerdings bei jedem booten auf. Mit einem nachträglichen Start über "/etc/init.d/lirc start" funktioniert dann aber alles einwandfrei. Die Einstellungen der autoserial.conf sollten übrigens eigentlich egal sein, da die serial.conf maßgebend ist. Diese Erkenntnis hilft allerdings auch nciht weiter... :)


    Viele Grüße
    Wundertüte

  • Schaut mal bitte im svn von yavdr rein. Da haben wir upstart Skripte am laufen. Der Vorteil ist das die Abhängigkeiten explizit angegeben werden können. Braucht immernoch ein bischen Fummelei, funktioniert aber wohl recht zuverlässig. Alternative kann man das setserial auch beim Laden der Module ausführen. (/etc/modprobe.d)

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • habe gestern mal noch ein wenig geforscht. Leider erfolglos :(
    Unter Kubuntu 10.04 hat man keinen so guten Blick mehr auf alle Dienste, wie dies noch unter 8.04 der Fall war. Habe darauf hin das Tool "webmin" installiert. Das gibt schon einen besseren Überblick des Systems. Dabei fiel mir auf, das setserial standardmäßig gar nicht gestartet wird, damit sind die Einträge in der serial.conf sicher schon mal nutzlos gewesen. Allerdings brachte auch ein Start zum Systemstart keine Veränderung.


    steffen_b: Was meinst Du denn mit upstart-Scripten? ein anderes Script zum Start von Lirc? Habe ich erstmal im CVS nichts dergleichen gefunden. Vielleicht habe ich aber auch nicht die richtige Stelle gefunden.


    Gruß
    Wundertüte

  • Wenn du lucid installiert hast und dich mit Systemdiensten beschäftigst, solltest du dir raussuchen was upstart ist und mal /etc/init anschauen. Fast alles wird unter lucid so gestartet.


    http://svn.origo.ethz.ch/wsvn/…erial-minimal.conf/10main


    Ich sage nicht das es die beste Lösung ist, aber es geht IMHO

    VDR User: 87 - LaScala LC14B - LG/Phillipps 6,4" VGA Display | Asrock H61/U3S3 | G630T | 1x 16GB Mobi Mtron 3035 1x WD 750GB 2,5" |1x L4m DVB-S2 Version 5.4

  • Hallo,


    ich kann das Verhalten von Wundertuete bestätigen. Wenn nach einem Reboot lirc und der vdr nicht automatisch starten, dann hilft es erst lirc und dann den vdr zu starten.


    Hier ein Auszug von setserial vor und nach dem Start von lirc:

    Code
    # sudo setserial /dev/ttyS1
    /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3
    # /etc/init.d/lirc start
     * Loading LIRC modules [ OK ]
     * Starting remote control daemon(s) : LIRC [ OK ]
    # setserial /dev/ttyS1
    /dev/ttyS1, UART: unknown, Port: 0x02f8, IRQ: 3
  • Nochmal ich,


    ich habe mal, wie von steffen_b vorgeschlagen, den upstart-job setserial-minimal eingesetzt. Folgendes habe ich gemacht:


    1. http://svn.origo.ethz.ch/wsvn/…erial-minimal.conf/10main heruntergeladen und unter /etc/init/setserial-minimal.conf gespeichert
    2. init.d-skripte von setserial und etc-setserial deaktiviert:
    # update-rc.d -f setserial remove
    # update-rc.d -f etc-setserial remove


    Ich habe 2 mal neugestartet und der lirc/vdr startete automatisch. Aber bei mir hat es ja auch schon zuvor ab und an funktioniert.


    Mir ist noch nicht ganz klar, wann dieser setserial-minimal job ausgeführt wird, denn in den dependencies steht: "start on starting lirc"
    Brauche ich dann auch den lirc upstart job, oder wird triggert ein /etc/init.d/lirc start dann auch schon den setserial-minimal job?

  • Zitat

    Original von realtigger
    Mir ist noch nicht ganz klar, wann dieser setserial-minimal job ausgeführt wird, denn in den dependencies steht: "start on starting lirc"
    Brauche ich dann auch den lirc upstart job?


    Ja

    Zitat

    Original von realtigger
    oder wird triggert ein /etc/init.d/lirc start dann auch schon den setserial-minimal job?


    Nein


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Zitat

    Original von realtigger
    Ich gehe mal davon aus, dass man die jobs nicht einfach von yavdr für Ubuntu 10.04 übernehmen kann und damit die init.d-Skripte ersetzen, oder?


    Ich wüsste nicht was dagegen sprechen würde. Wir tun ja auch nichts anderes. Allerdings macht dann der nächste Paket-Update vieles wieder kaputt.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hallo,


    wie zu erwarten war, ist es nicht ausreichend einfach das /etc/init/setserial-minimal.conf Skript anzulegen, da die anderen Upstart-Skript fehlen, die dieses Skript wiederum triggern. Alle Upstart-Skript von yavdr wollte ich nicht übernehmen, da es (wie gda schon gesagt hat) problematisch mit Updates wird.


    Ich habe mir nun ein kleines Skript gebastelt, welches den Status des Ports checkt und bei Bedarf lirc und vdr (neu)startet:

    Code
    if [ `setserial /dev/ttyS1 | grep -c unknown` = 0 ]
      then
        echo "Restarting Lirc & VDR ..."
        /etc/init.d/lirc restart
        /etc/init.d/vdr restart
      else
        echo "Lirc is ok :)"
    fi

    Das Skript lasse ich per Cronjob jede Minute ausführen. Auch alles andere als optimal, aber hoffentlich funktioniert der VDR so nun wieder zuverlässig nach jedem Neustart.

  • Hi,


    ich habe das Problem, das ich mein ATRIC Modul bisher unter Ubuntu 10.04 noch gar nicht ans Laufen bekommen habe. Es reagiert nicht (auch kein Blinken) obwohl LIRC ohne Fehlermeldungen startet. Gibt es ein HowTo oder eine kurze Anleitung, was ich da tun muss. Das Modul hängt bei mir am COM0.


    Auf dem gleiche System gibt es auch noch eine c't VDR Installation mit 2.6.30-bpo Kernel. Dort geht die Fernbedienung an dem Atric Modul ohne Probleme.


    Danke schon mal für einen TIPP
    Norbert

  • Hallo,
    ich erinnere mich dass LIRC das setserial irgendwo in der config haben kann und es dann vor dem eigenen Start ausführt. War bei Debian Lenny und älter.
    Diese Zeile ist in modules.conf:
    #preinstall lirc_serial /bin/setserial /dev/ttyS0 uart none
    Leider ein Kommentar, wurde wohl geändert.
    Wird aus /etc/modutils/lirc erzeugt, aber das steht natürlich das gleiche drin.


    Vielleicht hilft es.

    Grüße, Dieter :)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!