Jetzt muss ich mal schauen, warum der VDR auf diese Tasten noch nicht reagiert ...
Läuft eventlircd?
systemctl status eventlircd.service eventlircd.socket
Jetzt muss ich mal schauen, warum der VDR auf diese Tasten noch nicht reagiert ...
Läuft eventlircd?
systemctl status eventlircd.service eventlircd.socket
Läuft eventlircd? systemctl status eventlircd.service eventlircd.socket
bringt
Failed to dump process list, ignoring: No such file or directory
● eventlircd.service - "eventlircd reads from kernel input devices and generates key presses on a lirc
Loaded: loaded (/lib/systemd/system/eventlircd.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-02-28 11:55:05 CET; 17min ago
Main PID: 2044 (eventlircd)
Tasks: 1 (limit: 4199)
CGroup: /system.slice/eventlircd.service
└─2044 /usr/sbin/eventlircd -f --socket=/var/run/lirc/lircd
Feb 28 11:55:05 vdr-uhd systemd[1]: Started "eventlircd reads from kernel input devices and generates
● eventlircd.socket
Loaded: loaded (/lib/systemd/system/eventlircd.socket; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-02-28 11:41:30 CET; 30min ago
Listen: /run/lirc/lircd (Stream)
CGroup: /system.slice/eventlircd.socket
Feb 28 11:41:30 vdr-uhd systemd[1]: Listening on eventlircd.socket.
Display More
irw meldet
evtest spuckt die Tastendrücke aus (eventlircd vorher ausgeschaltet).
Entwarnung:
Ich habe das System komplett neu installiert und jetzt funktioniert die Fernbedienung. Ich habe bei den vorherigen vielen Versuchen das System anscheinend zerschossen.
Nochmal Vielen Dank an alle Hinweisgeber . Ohne Euch wäre ich komplett aufgeschmissen.
Wie kann ich verhindern, dass meine Änderung in etc/rc_maps.cfg beim nächsten Playbook-Update überschrieben wird?
Die Datei wird aus einem Template erstellt (das wird in den Kopfzeilen der Datei erwähnt), daher wäre der naheliegende Weg das Template anzupassen.
Die Datei wird aus einem Template erstellt
Ich habe aus dieser Datei gelesen, dass dazu die Template-Datei in /usr/src/yavdr-ansible/roles/yavdr-remote/templates/rc_maps.cfg.j2 gibt. Wie funktionieren diese Template-Dateien grundsätzlich?
Die Doku zu 0.6 zu den Templates scheint nicht mehr zu gelten. Der dort angegebenen Pfad zu /usr/share/yavdr/templates/etc/vdr/ ist bei mir im System nicht vorhanden. Liegen die Templates jetzt im Git-Verzeichnis roles/ und in diesem Fall in serial_ir? Wo lege ich dann mein custom-Template hin?
Wie funktionieren diese Template-Dateien grundsätzlich?
Das sind jinja2-Templates: http://jinja.pocoo.org/docs/2.10/ - die werden dann von Ansible mit Hilfe des template-Modul in die Zieldatei übersetzt - für die rc_maps.cfg passiert das an dieser Stelle: https://github.com/yavdr/yavdr-an…ks/main.yml#L58
Wo lege ich dann mein custom-Template hin?
Das ersetzt das originale Template.
Hallo,
ich bin gerade mit yaVDR Ansible angefangen und habe nun auch das Problem meine alte lircd.conf umzusetzen.
Ich habe nun eine Keymap aus der alten lircd.conf erzeugt:
# table urc_7960, type: RC5
0x120C KEY_POWER2
0x123F KEY_FN # 16:9, -> user6
0x1232 KEY_BACK # |<
0x1236 KEY_STOP
0x122E KEY_NEXT # >|
0x122C KEY_REWIND
0x1235 KEY_PLAY
0x1234 KEY_FASTFORWARD
0x022F KEY_TEXT # List-Taste, -> user0
0x1229 KEY_PAUSE
0x1237 KEY_RECORD
0x1210 KEY_VOLUMEUP
0x120D KEY_MUTE
0x1211 KEY_VOLUMEDOWN
0x0210 KEY_UP
0x0211 KEY_DOWN
0x0215 KEY_LEFT
0x0216 KEY_RIGHT
0x0217 KEY_OK
0x1220 KEY_CHANNELUP
0x1221 KEY_CHANNELDOWN
0x022B KEY_RED
0x022C KEY_GREEN
0x022D KEY_YELLOW
0x022E KEY_BLUE
0x020F KEY_INFO
0x0212 KEY_MENU
0x122F KEY_PROG4 # guide
0x123C KEY_PROG2 # mce
0x1231 KEY_PROG3 # pop up X
0x1222 KEY_ESC # back-taste, auch die Taste zwischen CHANNELUP und CHANNELDOWN
0x1201 KEY_1
0x1202 KEY_2
0x1203 KEY_3
0x1204 KEY_4
0x1205 KEY_5
0x1206 KEY_6
0x1207 KEY_7
0x1208 KEY_8
0x1209 KEY_9
0x120A KEY_VIDEO # -/--, -> user8
0x1200 KEY_0
0x0200 KEY_CLEAR # av
und in /etc/rc_maps.cfg eingetragen
...
#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 urc_7960 /lib/udev/rc_keymaps/urc_7960
mceusb rc-rc6-mce /lib/udev/rc_keymaps/HOPLOrc6
...
Aber ich bekomme die noch nicht mal manuell geladen
$ sudo ir-keytable -a /etc/rc_maps.cfg -s rc0
alte Schlüsseltabelle geleert
39 Schlüsselcode(s) wurden in den Treiber geschrieben.
ungültige Protokolle ausgewählt
Die Fernbedienungsprotokolle konnten nicht geändert werden
$ sudo ir-keytable
/sys/class/rc/rc1/ 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: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Aktivierte Protokolle: lirc rc-6
bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
/sys/class/rc/rc0/ gefunden (/dev/input/event8) mit:
Name: Budget-CI dvb ir receiver saa7146 (0)
Treiber: budget_ci, Tabelle: rc-tt-1500
unterstützte Protokolle:
Aktivierte Protokolle:
bus: 1, Anbieter/Produkt: 13c2:1019, Version: 0x0001
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
Display More
$ sudo ir-keytable -a /etc/rc_maps.cfg -s rc0
Da der serielle Lirc-Empfänger rc1 ist, musst du den entsprechend angeben, der Technotrend-Empfänger beherrscht kein RC-5.
Stimmt, wer lesen kann ist klar im Vorteil. Hilft aber noch nichts. Ich habe einen selbst gebauten Empfänger an ttyS0. Mit irrecord kommt auch was an /dev/lirc0 an.
Jetzt sieht es so aus:
root@YAVDR:/etc# ir-keytable -a /etc/rc_maps.cfg -s rc1
alte Schlüsseltabelle geleert
100 Schlüsselcode(s) wurden in den Treiber geschrieben.
Protokolle geändert in rc-6
root@YAVDR:/etc# ir-keytable
/sys/class/rc/rc1/ 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: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp
Aktivierte Protokolle: lirc rc-6
bus: 25, Anbieter/Produkt: 0001:0001, Version: 0x0100
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
/sys/class/rc/rc0/ gefunden (/dev/input/event8) mit:
Name: Budget-CI dvb ir receiver saa7146 (0)
Treiber: budget_ci, Tabelle: rc-tt-1500
unterstützte Protokolle:
Aktivierte Protokolle:
bus: 1, Anbieter/Produkt: 13c2:1019, Version: 0x0001
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
Display More
Da wird immer noch rc-rc6-mce geladen. Kommentiere ich die Zeilen in rc_maps.cfg aus kann ich folgendes machen.
root@YAVDR:/etc# ir-keytable -a /etc/rc_maps.cfg -s rc1 -v
Gerät /sys/class/rc/rc1/ gefunden
Gerät /sys/class/rc/rc0/ gefunden
Uevent /sys/class/rc/rc1/lirc0/uevent wird ausgewertet.
/sys/class/rc/rc1/lirc0/uevent Uevent MAJOR=238
/sys/class/rc/rc1/lirc0/uevent Uevent MINOR=0
/sys/class/rc/rc1/lirc0/uevent Uevent DEVNAME=lirc0
Eingabe-Sysfs-Knoten ist /sys/class/rc/rc1/input3/
Ereignis-Sysfs-Knoten ist /sys/class/rc/rc1/input3/event11/
Uevent /sys/class/rc/rc1/input3/event11/uevent wird ausgewertet.
/sys/class/rc/rc1/input3/event11/uevent Uevent MAJOR=13
/sys/class/rc/rc1/input3/event11/uevent Uevent MINOR=75
/sys/class/rc/rc1/input3/event11/uevent Uevent DEVNAME=input/event11
Uevent /sys/class/rc/rc1/uevent wird ausgewertet.
/sys/class/rc/rc1/uevent Uevent NAME=rc-rc6-mce
/sys/class/rc/rc1/uevent Uevent DRV_NAME=serial_ir
/sys/class/rc/rc1/uevent Uevent DEV_NAME=Serial IR type home-brew
Eingabegerät ist /dev/input/event11
/sys/class/rc/rc1/protocols-Protokoll rc-5 (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll nec (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll rc-6 (aktiviert)
/sys/class/rc/rc1/protocols-Protokoll jvc (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll sony (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll rc-5-sz (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll sanyo (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll sharp (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll mce_kbd (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll xmp (deaktiviert)
/sys/class/rc/rc1/protocols-Protokoll lirc (aktiviert)
Tabelle für serial_ir, rc-rc6-mce nicht gefunden. Istzustand beibehalten
Display More
Da scheint ja noch wo anders für serial_ir rc-rc6-mce eingestellt zu sein.
Da wird immer noch rc-rc6-mce geladen.
Die Keymap heißt immer rc-rc6-mce, unabhängig davon, ob ein RC-6 Protokoll verwendet wird - und der Name muss auch im Header der Keytable genutzt werden, also musst du # table urc_7960, type: RC5 durch # table rc-rc6-mce, type: RC5 ersetzen und der Eintrag in der rc_maps.cfg muss so aussehen:
serial_ir rc-rc6-mce /lib/udev/rc_keymaps/urc_7960
Puh, da soll man erst mal drauf kommen.
Danke für den Schubser.
Damit wird schon mal die richtige Liste geladen. Aber weiter komme ich noch nicht. Weder im VDR noch mit -t kommen Tastendrücke durch.
fjepsen@YAVDR:~$ sudo ir-keytable
/sys/class/rc/rc1/ 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: 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
/sys/class/rc/rc0/ gefunden (/dev/input/event3) mit:
Name: Budget-CI dvb ir receiver saa7146 (0)
Treiber: budget_ci, Tabelle: rc-tt-1500
unterstützte Protokolle:
Aktivierte Protokolle:
bus: 1, Anbieter/Produkt: 13c2:1019, Version: 0x0001
Wiederholungsverzögerung = 500 ms, Wiederholungsperiode = 125 ms
fjepsen@YAVDR:~$ sudo ir-keytable -r
Scancode 0x0001 = KEY_POWER2 (0x164)
Scancode 0x0002 = KEY_SHUFFLE (0x19a)
Scancode 0x0003 = KEY_1 (0x02)
Scancode 0x0004 = KEY_2 (0x03)
Scancode 0x0005 = KEY_3 (0x04)
Scancode 0x0006 = KEY_4 (0x05)
Scancode 0x0007 = KEY_5 (0x06)
Scancode 0x0008 = KEY_6 (0x07)
Scancode 0x0009 = KEY_7 (0x08)
Scancode 0x000a = KEY_8 (0x09)
Scancode 0x000b = KEY_9 (0x0a)
Scancode 0x000c = KEY_0 (0x0b)
Scancode 0x000d = KEY_UP (0x67)
Scancode 0x000e = KEY_LEFT (0x69)
Scancode 0x000f = KEY_OK (0x160)
Scancode 0x0010 = KEY_RIGHT (0x6a)
Scancode 0x0011 = KEY_DOWN (0x6c)
Scancode 0x0012 = KEY_INFO (0x166)
Scancode 0x0013 = KEY_ESC (0x01)
Scancode 0x0014 = KEY_RED (0x18e)
Scancode 0x0015 = KEY_GREEN (0x18f)
Scancode 0x0016 = KEY_YELLOW (0x190)
Scancode 0x0017 = KEY_BLUE (0x191)
Scancode 0x0018 = KEY_MUTE (0x71)
Scancode 0x0019 = KEY_TEXT (0x184)
Scancode 0x001a = KEY_MODE (0x175)
Scancode 0x0021 = KEY_OPTION (0x165)
Scancode 0x0022 = KEY_EPG (0x16d)
Scancode 0x0023 = KEY_CHANNELUP (0x192)
Scancode 0x0024 = KEY_CHANNELDOWN (0x193)
Scancode 0x0025 = KEY_VOLUMEUP (0x73)
Scancode 0x0026 = KEY_VOLUMEDOWN (0x72)
Scancode 0x0027 = KEY_MENU (0x8b)
Scancode 0x003a = KEY_RECORD (0xa7)
Scancode 0x003b = KEY_PLAY (0xcf)
Scancode 0x003c = KEY_STOP (0x80)
Scancode 0x003d = KEY_REWIND (0xa8)
Scancode 0x003e = KEY_PAUSE (0x77)
Scancode 0x003f = KEY_FASTFORWARD (0xd0)
Aktivierte Protokolle:
fjepsen@YAVDR:~$ sudo ir-keytable -t -p rc5 -s rc1
Protokolle geändert in rc-5
Ereignisse werden getestet. Bitte drücken Sie STRG-C, um abzubrechen.
Display More
ir-keytable und evtest können nur Tastendrücke anzeigen, wenn eventlircd gestoppt ist - das kannst du vorübergehend so machen:
systemctl mask --runtime --now eventlircd.{socket,service} - und mit systemctl unmask --now eventlircd.{socket,service} kannst du es wieder rückgängig machen.
Die IR-Codes für die lircd.conf und das was die Kernel-Decoder liefern, unterscheiden sich oft - daher sollte man die am besten mit ir-keytable auslesen.
Bei laufendem eventlircd müsstest du mit irw Tastendrücke sehen können, wenn alles passt.
Ok, systemctl mask --runtime --now eventlircd.{socket,service} hat funktioniert.
Ich habe mit ir-keytable -t -p rc5 -s rc1 die Codes für meine Hauptfernbedienung rausbekommen und eine Datei angelegt.
#table rc-rc6-mce, type: RC5
0x80c KEY_POWER2
0x83f KEY_FN # 16:9, -> user6
0x832 KEY_BACK # |<
0x836 KEY_STOP
0x82e KEY_NEXT # >|
0x82c KEY_REWIND
0x835 KEY_PLAY
0x834 KEY_FASTFORWARD
0x86f KEY_TEXT # List-Taste, -> user0
0x829 KEY_PAUSE
0x837 KEY_RECORD
0x810 KEY_VOLUMEUP
0x80d KEY_MUTE
0x811 KEY_VOLUMEDOWN
0x850 KEY_UP
0x851 KEY_DOWN
0x855 KEY_LEFT
0x856 KEY_RIGHT
0x857 KEY_OK
0x820 KEY_CHANNELUP
0x821 KEY_CHANNELDOWN
0x86b KEY_RED
0x86c KEY_GREEN
0x86d KEY_YELLOW
0x86e KEY_BLUE
0x84f KEY_INFO
0x852 KEY_MENU
0x82f KEY_PROG4 # guide
0x83c KEY_PROG2 # mce
0x831 KEY_PROG3 # pop up X
0x822 KEY_ESC # back-taste, auch die Taste zwischen CHANNELUP und CHANNELDOWN
0x801 KEY_1
0x802 KEY_2
0x803 KEY_3
0x804 KEY_4
0x805 KEY_5
0x806 KEY_6
0x807 KEY_7
0x808 KEY_8
0x809 KEY_9
0x80a KEY_VIDEO # -/--, -> user8
0x800 KEY_0
0x840 KEY_CLEAR # a
Anschließend habe ich mit ir-keytable -t -p nec -s rc1 die Codes für meine Zweitfernbedienung rausbekommen und eine Datei angelegt.
# table rc-rc6-mce, type: NEC
0x401a KEY_1 # Heitech_4in1
0x4002 KEY_2 # ArtNr 10000081
0x4003 KEY_3
0x4004 KEY_4
0x4005 KEY_5
0x4006 KEY_6
0x4007 KEY_7
0x4008 KEY_8
0x4009 KEY_9
0x4000 KEY_0
0x5000 KEY_F13 # INFO (TV AV)
0x4059 KEY_FN # 16_9
0x4015 KEY_F14 # SLEEP
0x5001 KEY_F15 # TV (TV Power)
0x400b KEY_VIDEO # ANLEITUNG
0x4022 KEY_PROG4 # FAV
0x4014 KEY_INFO # AV
0x4043 KEY_PROG2 # Ende
0x405b KEY_MENU
0x4052 KEY_ESC
0x4019 KEY_UP
0x401d KEY_DOWN
0x4042 KEY_LEFT
0x4040 KEY_RIGHT
0x4021 KEY_OK
0x401a KEY_VOLUMEUP
0x401e KEY_VOLUMEDOWN
0x4010 KEY_MUTE
0x401b KEY_CHANNELUP
0x401f KEY_CHANNELDOWN
0x4053 KEY_REWIND
0x4067 KEY_PAUSE
0x400d KEY_FASTFORWARD
0x4068 KEY_STOP
0x4054 KEY_BACK
0x4015 KEY_NEXT
0x4012 KEY_POWER2
0x4011 KEY_PROG3 # Bild
0x4013 KEY_MODE # Ton
0x4048 KEY_RED
0x4049 KEY_GREEN
0x404a KEY_YELLOW
0x404b KEY_BLUE
0x4017 KEY_TEXT
0x4053 KEY_FN16 # TEXT_SMALL
0x400d KEY_FN17 # TEXT_BIG
0x4015 KEY_FN18 # TEXT_X
Meine /etc/rc_maps.cfg sieht jetzt so aus:
...
serial_ir rc-rc6-mce /etc/rc_keymaps/urc_7960
serial_ir rc-rc6-mce /etc/rc_keymaps/heitech4in1
...
Warum hier rc-rc6-mce stehen muss hat sich mir noch nicht erschlossen, da in den Beispielen auch andere Namen stehen.
Eventlirc ließ sich mit systemctl unmask --now eventlircd.{socket,service} nicht starten. Ich musste erst mit rm /run/systemd/system/eventlircd.* die beiden angelegten Symlinks wieder löschen und habe dann systemctl start eventlircd.{socket,service} verwendet.
Nun mit ir-keytable -a /etc/rc_maps.cfg -s rc1 die neue Tabelle aktiviert und irw liefert endlich was.
Leider wurde aber nur die erste Fernbedienung aktiviert.
Wie bekomme ich die zweite auch noch rein?
ir-keytable bricht nach dem ersten zum Empfänger passenden Eintrag in der rc_maps.cfg ab. Probier mal die beiden Dateien zusammenzuführen und in der Kopfzeile beide IR-Protokolle anzugeben:
#table rc-rc6-mce, type: RC5,NEC
Ja, auch das hat geklappt. Beide Fernbedienungen laufen nun.
Nun habe ich noch einen lircrc Eintrag nach /etc/lirc/irexec.lircrc übernommen
wobei /usr/local/sbin/kodionoff bisher so aussieht
#!/bin/bash
if ["`pidof /usr/lib/x86_64-linux-gnu/kodi/kodi.bin`" -eq ""]
then
stop vdr-frontend
start kodi
else
stop kodi
start vdr-frontend
fi
Wie muss ich das ändern?
Nun habe ich noch einen lircrc Eintrag nach /etc/lirc/irexec.lircrc übernommen
Bei yavdr-ansible solltest du nach Möglichkeit die /var/lib/vdr/.lircrc nutzen, denn root-Rechte braucht es da ja nicht mehr um KODI zu starten/stopppen, weil das in der Systemd-User Session des Nutzers vdr läuft.
Im Prinzip musst du in der Datei nur den Tastennamen anpassen, ein Eintrag zum Wechseln zwischen KODI und VDR ist da schon drin: https://github.com/yavdr/yavdr-an…ates/.lircrc.j2
Habe einfach meine rc_keymap auf KEY_HOME geändert.
Danke für die Hilfe.
Sorry für das Ausgraben des alten Threads.
Nachdem die Boot-Platte in meinem alten VDR gestorben ist und ich auf die Schnelle einen VDR brauche, habe ich ein yaVDR Ansible aufgesetzt. Im Rechner ist ein ATRIC seriell eingebaut und als Fernbedienung habe ich eine Hauppauge A415. Allerdings taucht der ATRIC im ir-keytable gar nicht auf. Jetzt stehe ich auf dem Schlauch wie ich den wieder aktiviert bekomme. In der alten Installation lief das alles noch einwandfrei mit LIRC.
Allerdings taucht der ATRIC im ir-keytable gar nicht auf. Jetzt stehe ich auf dem Schlauch wie ich den wieder aktiviert bekomme. In der alten Installation lief das alles noch einwandfrei mit LIRC.
Hast du dem Playbook gesagt, dass du einen Seriellen Empfänger hast? Dazu muss die Rolle serial_ir einkommentiert werden: https://github.com/yavdr/yavdr-an…yavdr07.yml#L51 und falls du nicht die erste serielle Schnittstelle nutzen willst, kannst du das über https://github.com/yavdr/yavdr-an…p_vars/all#L184 vorgeben. Dann das Playbook noch mal laufen lassen.
Don’t have an account yet? Register yourself now and be a part of our community!