Serielles IR mit Lirc 0.10 unter Debian9

  • Nachdem ich mir die Ausgaben mal selber genauer angeschaut habe, habe ich mal die ganzen Fehler beseitigt, die da gemeldet werden:

    -> .conf-Dateien der Fernbedienungen bereinigt

    -> in der /etc/lirc/lirc_options.conf die Zeile /var/run/... in /run/... geaendert

    -> in der Datei /etc/modules-load.d/serial_ir.conf wieder auf Ausgangs-Eisntellung: Da steht einfach nur noch serial_ir drin.

    Ergebnis ist ein deutlich kuerzeres Log nach dem Booten:

    cat /var/log/syslog|grep lirc

    Pastebin-Link


    cat /var/log/syslog|grep serial

    Pastebin-Link

    Die /var/lib/setserial/autoserial.conf ist gleich geblieben:

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

    Es ist schon wie ich vermute: Setserial wird nicht oder zu spaet ausgefuehrt. Sonst staend das nicht extra im Log beim module-load:

    Zusammengeschnitten steht da ja:

    Quote

    port 02f8 already in use

    use 'setserial /dev/ttySX uart none'

    or compile the serial port driver as module and

    make sure this module is loaded first

    Wenn ich das richtig auswerte, wird laut Log versucht, einfach COM1 zu benutzen.

  • Das, was vorher

    install serial_ir setserial /dev/ttyS1 uart none; modprobe --ignore-install serial_ir irq=3 io=0x2f8

    war, war vermutlich nicht richtig. Da fehlt vermutlich ein Semikolon hinter "install serial_ir".

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Ok, hab jetzt einfach mal die manpage gesucht, da soll wohl doch kein Semikolon nach dem zweiten Wort (ich wollte es eigentlich nach dem "install serial_ir", aber da soll keins hin. Ich hatte das als einzelne Befehle interpretiert...):

    https://linux.die.net/man/5/modprobe.d

    Eigentlich sollten die Befehle dahinter ausgeführt werden, warum das auf deinem System nicht funktioniert, weiß ich nicht.

    Lars

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Gib sonst bei dem setserial mal den ganzen Pfad mit an, vielleicht findet er das Ding nur einfach nicht...

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Hab hier auch was gefunden: Link. Da hatte einer genau mein Problem. Bei ihm heisst der Befehl allerdings preinstall statt install und braucht keine Semikolons. Hat trotzdem nicht funktioniert.

    Ich werde Deinen Vorschlag ausprobieren.

    Alternativ habe ich versucht, die Reihenfolge in /etc/rc0.d zu aendern. Die Start-Skripte sind ja durchnummeriert K01lircd kommt natuerlich (alphabetisch) VOR K01setserial. Habe also die Reihenfolge geaendert und dabei ein neues Skript eingefuegt, in dem einfach

    Code
    modprobe serial_ir

    steht. Wieder kein Erfolg.

    Wenn ich schon dabei bin das Modul per Skript zu laden, kann das eigentlich auch das Lirc-script machen (wie eigentlich ja vorgesehen). Also wieder /etc/lirc/lirc_options.conf editiert und da die Kommentarzeichen vor den Code-Zeilen (am Ende der Datei) wieder weg. Dann muessten ja setserial und modprobe ausgefuehrt werden...passiert aber nicht. Wieso fuehrt das lirc-skript eigentlich nicht diese Befehle aus?

    Wuerde mir ja schon reichen, der unelegante Weg. Es geht aber einfach gar keiner! Das kann doch nicht sein! Ich werd' doch noch ein Skript beim Boot-Up ausfuehren koennen!

    Ich probier jetzt noch Deine Methode aus.

    Edit:

    Ich hatte noch vergessen zu erwaehnen, dass der Kernel sicherheitshalber noch folgende Option von mir in der /etc/default/grub spendiert bekommen hat:

    Code
    GRUB_CMDLINE_LINUX_DEFAULT="quiet 8250.nr_uarts=4"

    8250.nr_uarts=4 teilt dem Kernel mit, dass es ings. 4 Serial-Ports gibt. Leider hat das aber nichts geholfen.

    Edited once, last by whocares02 (February 27, 2019 at 10:01 PM).

  • Bei Lösungen von vor über 10 Jahren sollte man immer eine gewisse Skepsis haben. Auch unter Debian ändert sich manchmal was... :)

    Viel Erfolg!

    Lars

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Vielleicht solltest du das Startscript unter /etc/rc0.d mal ganz wegmachen und systemd benutzen:

    http://lirc.sourceforge.net/lirc.org/html/…l#systemd-setup

    Lars

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Wieviele Startup-Dienste gibt es denn bei Debian? lircd habe ich bisher mit systemctl gestartet, dann gibt es den Befehl service, es gibt ausserdem einen Ordner /etc/init.d mit Startup-Skripten, nicht zu vergessen diese runlevel-Ordner /etc/rc[0-6].d. Sind das jetzt nicht mindestens drei verschiedene Bootup-Dienste?

    Edit:

    So wie ich das sehe, nutzt Debian bereits systemd. Wollte da mal kurz ein paar Docs zu ueberfliegen...keine Chance..dafuer braucht man ein Studium. Auch sytemd-gui ist nicht hilfreich. Reihenfolgen lassen sich da nicht festlegen.

    Edited once, last by whocares02 (February 28, 2019 at 9:48 AM).

  • Natürlich lassen sich da Reihenfolgen festlegen, indem man z.B. im lircd.service sagt, das es "after" einem anderen Dienst gestartet werden soll.

    Und es gibt PreStart und PostStop Optionen, mit denen man Sachen direkt beim Start/Stop des Services ausführen lassen kann.

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Oder man legt einen neuen Service an, der dann eine "before"-Regel mitbekommt, so dass es auf alle Fälle vor lirc ausgeführt wird.

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • geht das ein bisschen genauer? lircd soll ganz am Schluss starten. Vielleicht fuehrt es dann ja doch den modprobe-Befehl aus, der in seiner /etc/lirc/lirc_options.conf am Schluss steht.

    Das vollautomatische Laden des Kernel-Modules beim Booten wuerde ich dafuer entfernen. COM2 ist ja am Ende des Bootvorgangs stets richtig konfiguriert. Irgendeins der vielen Bootup-Skript fuehrt setserial also korrekt aus...nur eben immer NACH dem Laden des Kernel-Modules serial_ir. Ich brauche also ein "modprobe serial_ir" ganz am Schluss des Bootvorgangs, aber VOR lircd.

  • Sind das jetzt nicht mindestens drei verschiedene Bootup-Dienste?

    Nein, eigentlich sollte es da nur systemd geben. Skripte aus /etc/init.d im SysV-Init Stil werden über einen Kompatibilitätslayer dynamisch in systemd-Skripte überführt, dabei gibt es einige Besonderheiten - die kann man in https://www.freedesktop.org/wiki/Software/…ompatibilities/ nachlesen. In /etc/rc[0-6].d sollen K- und S-Symlinks nicht beachtet werden.

    Wollte da mal kurz ein paar Docs zu ueberfliegen...keine Chance..dafuer braucht man ein Studium.

    So schlimm ist das nicht (insbesondere wenn man das Upstart-Cookbook kennt) - und als Debian-Nutzer hattest du ab dem Release von jessie in 2015 Gelegenheit dir das genauer anzusehen...

    Meine VDRs

    VDR 1: Point of View Ion-330-1, 2x Sundtek MediaTV Pro (DVB-C), Atric IR-Einschalter Rev.5, Ubuntu 18.04 (yavdr-ansible)
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    VDR 3: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 18.04 (yavdr-ansible), VDR 2.4.1, CIR-Empfänger
    Client 1: Raspberry Pi 2, Arch Linux ARM, VDR 2.3.8
    vdr-epg-daemon auf Cubietruck mit 32 GB SSD, Arch Linux ARM

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • https://www.freedesktop.org/software/syste…l#ExecStartPre=

    Wenn du das ExecStartPre von lirc update-sicher überschreiben willst, dann empfiehlt sich ein Drop-In:

    https://coreos.com/os/docs/latest…p-in-units.html

    Genaues kann ich jetzt auch nicht sagen, dazu müsste ich sehen, wie deine lircd.service aussieht.

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Oh nein, noch mehr Hausaufgaben... OK, werde mir das anschauen und mich dann melden. Unterdessen hier die geforderte lircd.service:

  • Da siehst du z.B. das lircd.service immer nach lircd-setup.service ausgeführt wird. Das klingt doch auch nach einer passenden Stelle, wo das Modul geladen werden sollte. Magst du das auch noch posten?

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Wenn ich schon dabei bin das Modul per Skript zu laden, kann das eigentlich auch das Lirc-script machen (wie eigentlich ja vorgesehen). Also wieder /etc/lirc/lirc_options.conf editiert und da die Kommentarzeichen vor den Code-Zeilen (am Ende der Datei) wieder weg. Dann muessten ja setserial und modprobe ausgefuehrt werden...passiert aber nicht. Wieso fuehrt das lirc-skript eigentlich nicht diese Befehle aus?

    Weil du das Kommentarzeichen vor [modinit] nicht entfernt hast? Dann wird nämlich die ganze modinit-section nicht berücksichtigt.

    Falls du das testen willst, den Rechner nach der Änderung am besten neu starten!

    shady, a skin for skindesigner: Screenshots, Git :|:|:|:|:|: shady_KISS Git :|:|:|:|:|: a little bit outdated but still running: anthra-skins for text2skin

  • Danke für die Adleraugen tomas - wenn ich mir die gepostete lirc_options.conf in den ersten Posts ansehe, ist das [modinit] immer auskommentiert. Da muss das führende # natürlich auch weg, wenn lirc-setup das ausführen soll...

    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

  • Weil du das Kommentarzeichen vor [modinit] nicht entfernt hast? Dann wird nämlich die ganze modinit-section nicht berücksichtigt.

    Au Mann! DAS WARS! Kommentarzeichen weg, IR läuft sofort!

    Ich hab das einfach nicht gesehen. Wer zur Hölle kommentiert 'ne Kategorie aus???

    Also Thomas, der ist für Dich:

    :gott

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!