Hallo zusammen,
ich möchte unter yaVDR ansible lirc mit Atric serial nutzen.
Was muss man machen, damit diese Konfiguration funktioniert?
Viele Grüße
Frank
Hallo zusammen,
ich möchte unter yaVDR ansible lirc mit Atric serial nutzen.
Was muss man machen, damit diese Konfiguration funktioniert?
Viele Grüße
Frank
Was muss man machen, damit diese Konfiguration funktioniert?
Wenn du den Empfänger an ttyS0 (COM1) hast, einfach die Raute vor diesem Eintrag in der yavdr07.yml entfernen und das Playbook bzw. den Teil für die Rolle noch mal laufen lassen: sudo -H ansible-playbook yavdr07.yml -b -i 'localhost_inventory' --connection=local --tags="serial-ir"
Falls du ein anderes Device als ttyS0 (sonst ist noch ttyS1 möglich) benötigst, erstellst du zusätzlich eine host_vars/localhost und trägst die gewünschte Schnittstelle darin ein, bevor du das Playbook laufen lässt:
ok, lirc läuft jetzt .
Jetzt gibt es neue Fragen:
Wie bekomme ich meine mit irrecord angelernte Fernbedienung (Name der Fernbedienung in lirc: OneForAll) in ansible bekannt gemacht?
Wie starte ich den lircd-Service neu? Ich bekommt im Moment die Fehlermeldung Failed to restart lircd.service: Unit lircd.service is masked.
Sehe ich dann die Tastendrücke auch mit irw?
Lircd sollte nach dem Ausführen des Playbooks nicht laufen (es sei denn man hat einen Atric IRWakeupUSB oder einen yaUsbIR Empfänger) und man braucht es auch nicht, wenn man ein IR-Protokoll verwendet, für das es einen Kernel-Decoder gibt.
Der Kernel-Treiber serial_ir legt ein rc-core Gerät an, das man mit ir-keytable konfigurieren kann (in der Voreinstellung wird eine Keytable für eine RC-6(A) MCE-Fernbedienung geladen). Die Konfiguration erfolg dann wie in https://www.yavdr.org/documentation/…tml#ir-keytable beschrieben. Das Stoppen von eventlircd (damit man mit ir-keytable die Scancodes sehen kann) kann man so umsetzen: systemctl mask --now --runtime eventlircd.service eventlircd.socket - um eventlircd wieder anzuschalten den Rechner neu starten oder das mask im Befehl durch unmask ersetzen und den --runtime Schalter dabei weglassen.
Mal ein Beispiel für eine fertige Konfiguration auf meinem ION-VDR:
$ sudo ir-keytable
/sys/class/rc/rc0/ gefunden (/dev/input/event3) mit:
Name: Serial IR type home-brew
Treiber: serial_ir, Tabelle: rc-rc6-mce
Lirc Gerät: /dev/lirc0
unterstützte Protokolle: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Aktivierte Protokolle: lirc rc-5
bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
In der /etc/rc_maps.cfg lasse ich dann eine Keytable für das KLS VDR 1.6 Profil (nutzt das RC-5 extendend IR-Protokoll) meiner Harmony Fernbedienung laden:
# table rc-rc6-mce, type: RC5
0xb49 KEY_MENU
0xb4a KEY_ESC
0xb4c KEY_INFO
0xb4b KEY_EPG
0xb44 KEY_UP
0xb47 KEY_RIGHT
0xb45 KEY_DOWN
0xb46 KEY_LEFT
0xb48 KEY_OK
0xb40 KEY_RED
0xb41 KEY_GREEN
0xb42 KEY_YELLOW
0xb43 KEY_BLUE
0xb00 KEY_0
0xb01 KEY_1
0xb02 KEY_2
0xb03 KEY_3
0xb04 KEY_4
0xb05 KEY_5
0xb06 KEY_6
0xb07 KEY_7
0xb08 KEY_8
0xb09 KEY_9
0xb36 KEY_STOP
0xb35 KEY_PLAY
0xb33 KEY_PAUSE
0xb37 KEY_RECORD
0xb34 KEY_FASTFORWARD
0xb32 KEY_REWIND
0xb31 KEY_NEXT
0xb30 KEY_BACK
0xb20 KEY_CHANNELUP
0xb21 KEY_CHANNELDOWN
0xb10 KEY_VOLUMEUP
0xb11 KEY_VOLUMEDOWN
0xb0d KEY_MUTE
0xb22 KEY_PREVIOUS
0xa0c KEY_POWER2
0xb0c KEY_DISPLAY_TOGGLE
0xb4f KEY_TIME
0xb0b KEY_POWER
0xb52 KEY_SUBTITLE
0xb51 KEY_MODE
0xb53 KEY_CHANNEL
0xb70 KEY_PROG1
0xb71 KEY_PROG2
0xb72 KEY_PROG3
0xb73 KEY_PROG4
0xb74 KEY_AUDIO
0xb75 KEY_VIDEO
0xb76 KEY_IMAGES
0xb77 KEY_FN
0xb78 KEY_SCREEN
0xb4e KEY_PVR
0xb50 KEY_SETUP
0xb4d KEY_FAVORITES
Display More
Ich habe für meine Fernbedienung eine eigene keytable in /lib/udev/rc_keymaps names rc-one4all-7960 angelegt. Diese habe ich der /etc/rc_maps.cfg wie folgt verlinkt:
...
#driver table file
ite-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
nuvoton-cir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
# serial_ir rc-rc6-mce /lib/udev/rc_keymaps/rc-rc6-mce
serial_ir rc-rc6-mce /lib/udev/rc_keymaps/rc-one4all-7960
mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6
...
Wenn ich diese keytable manuell mit ir-keytable -c -p rc-5 -w /lib/udev/rc_keymaps/rc-one4all_7960 lade, funktioniert dies schon mal und er gibt die Tasten richtig aus.
Nach einem Reboot wird aber leider nicht meine neue keytable geladen, er reagiert leider nicht auf die Tastendrücke.
Found /sys/class/rc/rc0/ (/dev/input/event16) with:
Name: Serial IR type home-brew
Driver: serial_ir, table: rc-rc6-mce
lirc device: /dev/lirc0
Supported protocols: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Enabled protocols: lirc rc-6
bus: 25, vendor/product: 0001:0001, version: 0x0100
Repeat delay = 500 ms, repeat period = 125 ms
EDIT: Bei mir wird rc-6 als Protokoll enabled, obwohl in der keytable RC5 drinsteht
Wo muss ich noch dran drehen?
EDIT: Bei mir wird rc-6 als Protokoll enabled, obwohl in der keytable RC5 drinsteht
Wo muss ich noch dran drehen?
Wie sieht denn die erste Zeile der von dir erstellten Keytable aus? Die sollte wie bei im von mir geposteten Beispiel aussehen:
Wie sieht denn die erste Zeile der von dir erstellten Keytable aus?
Die sieht genau so aus wie bei Dir:
Selbst wenn ich in der /etc/rc_maps.cfg den Eintrag * * /lib/udev/rc_keymaps/rc-one4all_7960 drin habe, wird diese Keymap nicht geladen.
Irgendwie habe ich den Eindruck, an der falschen Stelle zu suchen.
Hhhmm, bei mir sieht das etwas anders aus: type: rc-5 und nicht type: RC5
Meine Ausgabe von ir-keytable sieht dann auch so aus:
yavdr# ir-keytable
/sys/class/rc/rc0/ gefunden (/dev/input/event11) mit:
Name: Serial IR type home-brew
Treiber: serial_ir, Tabelle: rc-rc6-mce
Lirc Gerät: /dev/lirc0
unterstützte Protokolle: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Aktivierte Protokolle: lirc rc-5
bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
Wichtig hierbei ist m.M. nach auch die Angabe Aktivierte Protokolle: lirc rc-5
Laden der richtigen keymap kann man über:
ir-keytable -a /pfad-zur-keymap/rc_maps.cfg -s rc0
Hhhmm, bei mir sieht das etwas anders aus: type: rc-5
Habs gerade nochmal mit rc-5 getestet und komme leider zu dem gleichen Ergebnis. Meine keytable wird nicht geladen.
Kann udev da irgendwas in eine andere Richtung lenken?
Was bringt denn die Ausgabe von ir-keytable ?
Welche Protokolle werden denn überhaupt unterstützt bzw. aktiviert?
Und mach doch mal das ir-keytable -a /etc/rc_maps.cfg -s rc0 , evtl. den Pfad zur "rc_maps.cfg" anpassen.
Bei mir kommt da z.B. folgende Ausgabe, wobei ich nur die 1 keytable, welche ich für meine Fernbedienung erstellt habe, in der "rc_maps.cfg" aktiviert habe.
ir-keytable -a /etc/rc_maps.cfg -s rc0
alte Schlüsseltabelle geleert
36 Schlüsselcode(s) wurden in den Treiber geschrieben.
Protokolle geändert in rc-5
Erst jetzt wird doch das richtige Protokoll aktiviert!
Nachtrag:
Eine sehr gute und ausführliche Anleitung für "ir-keytable mit serial-ir" findest Du hier: Step by Step serial-ir mit ir-keytable
Meine keytable wird nicht geladen.
Kannst du die mal unverändert als Datei anhängen?
rc-core Empfänger werden über diesen Teil der udev-Regel eingebunden: https://github.com/yavdr/yavdr-re…lircd.rules#L63
Das Problem ist eher, dass die Keytable (oder das Protokoll) nicht auf den Empfänger anwendet wird.
Das Problem ist eher, dass die Keytable (oder das Protokoll) nicht auf den Empfänger anwendet wird.
Siehe meine Hinweise zum Laden der keytable im Beitrag #15 in diesem Thread!
Außerdem gibt es bereits eine Diskussion zu dem Thema im "yavdr-ansible"-Thread, wo genau beschrieben ist, wie man das alles zu laufen bekommt:
Kannst du die mal unverändert als Datei anhängen?
Ich habe zu Testzwecken nur diese 4 Tasten definiert.
EDIT:
Was bringt denn die Ausgabe von ir-keytable ?
Found /sys/class/rc/rc0/ (/dev/input/event4) with:
Name: Serial IR type home-brew
Driver: serial_ir, table: rc-rc6-mce
lirc device: /dev/lirc0
Supported protocols: other lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Enabled protocols: lirc rc-6
bus: 25, vendor/product: 0001:0001, version: 0x0100
Repeat delay = 500 ms, repeat period = 125 ms
Und mach doch mal das ir-keytable -a /etc/rc_maps.cfg -s rc0
ich halte folgende Reaktion
Eigentlich müssten doch jetzt die 4 Keycodes geladen werden - oder?
EDIT-1:
Nachdem ich das Protokoll auf rc-5 umgestellt habe
Und die keytable nochmal lade
Bekomme ich nun ein besseres () Ergebnis:
Read rc-rc6-mce table
Old keytable cleared
Wrote 4 keycode(s) to driver
Protocols changed to rc-5
Mal sehen wie das nach einem Reboot ausssieht?
EDIT-2:
Nach dem Booten sind die Protokoll-Einstellungen leider wieder weg. Es wird meine Keytable nicht geladen ...
Mich hätte der Dateiname interessiert, wei du in den früheren Posts munter Binde- und Unterstriche durcheinander geworfen hast...
serial_ir rc-rc6-mce /lib/udev/rc_keymaps/rc-one4all-7960
Selbst wenn ich in der /etc/rc_maps.cfg den Eintrag * * /lib/udev/rc_keymaps/rc-one4all_7960 drin habe, wird diese Keymap nicht geladen.
Wenn ich diese keytable manuell mit ir-keytable -c -p rc-5 -w /lib/udev/rc_keymaps/rc-one4all_7960 lade, funktioniert dies schon mal und er gibt die Tasten richtig aus.
Wie seahawk1986 schon sagt, Du hast hier einige dateinamen unterschiedlich geschrieben!
Einmal schreibst Du rc-one4all-7960 und dann wieder rc-one4all_7960.
Du solltest also nochmals genau kontrollieren, was Du in der /etc/rc_keymaps.cfg drin stehen hast!
Mich hätte der Dateiname interessiert, wei du in den früheren Posts munter Binde- und Unterstriche durcheinander geworfen hast...
Ach du Schreck ... Dateiname gecheckt, ist rc-one4all_7960 ... In /etc/rc_maps.cfg geprüft. Eintrag ist * * rc-one4all-7960. Ach du meine Güte
.
Dateiname geändert und (wer hätte es gedacht), er lädt nach einem Reboot mit RC-5 meine Keytable .
Sorry, da war ich wohl betriebsblind. Vielen Dank für Eure Hilfe beim Augenöffnen .
Jetzt muss ich mal schauen, warum der VDR auf diese Tasten noch nicht reagiert ...
EDIT:
Dann doch noch eine Frage:
Wie kann ich verhindern, dass meine Änderung in etc/rc_maps.cfg beim nächsten Playbook-Update überschrieben wird?
Don’t have an account yet? Register yourself now and be a part of our community!