This shows you the differences between two versions of the page.
mld:tutorials:fernbedienungen54serial [2018/04/14 16:12] MarMic |
mld:tutorials:fernbedienungen54serial [2019/04/28 12:55] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Step by Step ir-serial mit ir-keytable ====== | ====== Step by Step ir-serial mit ir-keytable ====== | ||
+ | |||
+ | Die hier beschriebene Konfiguration ist inzwischen in das Setup übernommen worden. | ||
===== Liste der devices anzeigen ===== | ===== Liste der devices anzeigen ===== | ||
- | ''BVDR> ir-keytable | + | |
+ | <code> | ||
+ | BVDR> ir-keytable | ||
Found /sys/class/rc/rc0/ (/dev/input/event14) with: | Found /sys/class/rc/rc0/ (/dev/input/event14) with: | ||
Driver cx88xx, table rc-tevii-nec | Driver cx88xx, table rc-tevii-nec | ||
Line 10: | Line 14: | ||
bus: 1, vendor/product: d464:9022, version: 0x0001 | bus: 1, vendor/product: d464:9022, version: 0x0001 | ||
Repeat delay = 500 ms, repeat period = 125 ms | Repeat delay = 500 ms, repeat period = 125 ms | ||
- | '' | + | </code> |
hier sieht man nur das device der DVB Karte - dieses soll allerdings nicht genutzt werden. | hier sieht man nur das device der DVB Karte - dieses soll allerdings nicht genutzt werden. | ||
Line 17: | Line 22: | ||
festlegen an welchem COM Port es angeschloßen ist(hier com1) | festlegen an welchem COM Port es angeschloßen ist(hier com1) | ||
- | ''setserial /dev/ttyS0 uart none'' | + | <code>setserial /dev/ttyS0 uart none</code> |
nun die Treiber laden: | nun die Treiber laden: | ||
- | ''modprobe serial-ir'' | + | <code>modprobe serial-ir</code> |
dmesg sagt nun: | dmesg sagt nun: | ||
- | ''[ 3689.460620] serial_ir serial_ir.0: auto-detected active low receiver | + | <code>[ 3689.460620] serial_ir serial_ir.0: auto-detected active low receiver |
[ 3689.483767] Registered IR keymap rc-rc6-mce | [ 3689.483767] Registered IR keymap rc-rc6-mce | ||
[ 3689.484744] IR RC6 protocol handler initialized | [ 3689.484744] IR RC6 protocol handler initialized | ||
Line 29: | Line 34: | ||
[ 3689.506875] input: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc1/input18 | [ 3689.506875] input: Serial IR type home-brew as /devices/platform/serial_ir.0/rc/rc1/input18 | ||
[ 3689.507978] ir-keytable[3573] | [ 3689.507978] ir-keytable[3573] | ||
- | [ 3689.516070] rc rc1: lirc_dev: driver serial_ir registered at minor = 1'' | + | [ 3689.516070] rc rc1: lirc_dev: driver serial_ir registered at minor = 1</code> |
==== Device Liste überprüfen ==== | ==== Device Liste überprüfen ==== | ||
nun überprüfen wir die Device List | nun überprüfen wir die Device List | ||
- | ''BVDR> ir-keytable | + | <code>BVDR> ir-keytable |
Found /sys/class/rc/rc1/ (/dev/input/event15) with: | Found /sys/class/rc/rc1/ (/dev/input/event15) with: | ||
Driver serial_ir, table rc-rc6-mce | Driver serial_ir, table rc-rc6-mce | ||
Line 49: | Line 54: | ||
Repeat delay = 500 ms, repeat period = 125 ms | Repeat delay = 500 ms, repeat period = 125 ms | ||
BVDR> | BVDR> | ||
- | '' | + | </code> |
das Device rc1 ist nun vorhanden aber es empfängt noch keine Daten, da das Protokol falsch ist. | das Device rc1 ist nun vorhanden aber es empfängt noch keine Daten, da das Protokol falsch ist. | ||
==== device test mit evtest ==== | ==== device test mit evtest ==== | ||
- | ''BVDR> evtest | + | <code>BVDR> evtest |
No device specified, trying to scan all of /dev/input/event* | No device specified, trying to scan all of /dev/input/event* | ||
Available devices: | Available devices: | ||
Line 61: | Line 66: | ||
/dev/input/event15: Serial IR type home-brew | /dev/input/event15: Serial IR type home-brew | ||
Select the device event number [0-15]: | Select the device event number [0-15]: | ||
- | '' | + | </code> |
event15 ist unser Empfänger er hat aber noch kein passendes Protokoll | event15 ist unser Empfänger er hat aber noch kein passendes Protokoll | ||
- | ''evtest /dev/input/event15 | + | <code>evtest /dev/input/event15 |
- | '' | + | </code> |
liefert noch keine TASTEN beim drücken. | liefert noch keine TASTEN beim drücken. | ||
Line 73: | Line 78: | ||
== Protokolle einzeln laden == | == Protokolle einzeln laden == | ||
- | ''BVDR> ir-keytable -s rc1 -p NEC | + | <code>BVDR> ir-keytable -s rc1 -p NEC |
Protocols changed to nec | Protocols changed to nec | ||
- | '' | + | </code> |
NEC ersetzen durch den Namen des zu testenden Protokolls | NEC ersetzen durch den Namen des zu testenden Protokolls | ||
in unserem Fall sagt ir-keytable: | in unserem Fall sagt ir-keytable: | ||
- | ''Supported protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp'' | + | <code>Supported protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp</code> |
nun mit evtest Testen: | nun mit evtest Testen: | ||
- | ''BVDR> evtest /dev/input/event15 | + | <code>BVDR> evtest /dev/input/event15 |
Input driver version is 1.0.1 | Input driver version is 1.0.1 | ||
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 | Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 | ||
Line 169: | Line 174: | ||
Event: time 1523714088.877285, type 4 (EV_MSC), code 4 (MSC_SCAN), value 00 | Event: time 1523714088.877285, type 4 (EV_MSC), code 4 (MSC_SCAN), value 00 | ||
Event: time 1523714088.877285, -------------- SYN_REPORT ------------ | Event: time 1523714088.877285, -------------- SYN_REPORT ------------ | ||
- | '' | + | </code> |
Es sieht gut aus - wir haben scan codes ABER noch keine Zuweißung. | Es sieht gut aus - wir haben scan codes ABER noch keine Zuweißung. | ||
Line 175: | Line 180: | ||
== EINFACH ALLE Protokolle laden == | == EINFACH ALLE Protokolle laden == | ||
Man lädt einfach mit -p alle Protokolle die laut ir-keytable unterstützt werden aufeinmal rein: | Man lädt einfach mit -p alle Protokolle die laut ir-keytable unterstützt werden aufeinmal rein: | ||
- | ''BVDR> ir-keytable -s rc1 -p lirc -p rc-5 -p rc-5-sz -p jvc -p sony -p nec -p sanyo -p mce_kbd -p rc-6 -p sharp -p x | + | <code>BVDR> ir-keytable -s rc1 -p lirc -p rc-5 -p rc-5-sz -p jvc -p sony -p nec -p sanyo -p mce_kbd -p rc-6 -p sharp -p x |
mp | mp | ||
Protocols changed to lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp | Protocols changed to lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp | ||
- | '' | + | </code> |
Damit sollten aufjedenfall wieder keycodes funktionieren! | Damit sollten aufjedenfall wieder keycodes funktionieren! | ||
- | '' | + | <code> |
BVDR> evtest /dev/input/event15 | BVDR> evtest /dev/input/event15 | ||
Input driver version is 1.0.1 | Input driver version is 1.0.1 | ||
Line 272: | Line 277: | ||
Event: time 1523714340.048912, type 4 (EV_MSC), code 4 (MSC_SCAN), value 15 | Event: time 1523714340.048912, type 4 (EV_MSC), code 4 (MSC_SCAN), value 15 | ||
Event: time 1523714340.048912, -------------- SYN_REPORT ------------ | Event: time 1523714340.048912, -------------- SYN_REPORT ------------ | ||
- | '' | + | </code> |
Wie auf bei Möglichkeit eins muss man diese nun einem Key zuweißen oder man hat bereits eine map datei und lädt diese. | Wie auf bei Möglichkeit eins muss man diese nun einem Key zuweißen oder man hat bereits eine map datei und lädt diese. | ||
Line 280: | Line 285: | ||
Beispiel mit Taste 1. | Beispiel mit Taste 1. | ||
Bei Taste 1 kommt folgende evtest Ausgabe: | Bei Taste 1 kommt folgende evtest Ausgabe: | ||
- | ''Event: time 1523714338.384568, type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 | + | <code>Event: time 1523714338.384568, type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 |
- | Event: time 1523714338.384568, -------------- SYN_REPORT '' | + | Event: time 1523714338.384568, -------------- SYN_REPORT </code> |
der scan code ist somit 11 und dieser muss nun Key_1 zugewiesen werden. | der scan code ist somit 11 und dieser muss nun Key_1 zugewiesen werden. | ||
dazuerstellt man eine Datei in /etc/rc_keymaps/name_der_remote und füllt diese mit folgender Syntax: | dazuerstellt man eine Datei in /etc/rc_keymaps/name_der_remote und füllt diese mit folgender Syntax: | ||
- | ''0x[SCANCODE] LEERZEICHEN [KEY]'' | + | <code>0x[SCANCODE] LEERZEICHEN [KEY]</code> |
also für uns Beispiel: | also für uns Beispiel: | ||
- | ''0x11 KEY_1'' | + | <code>0x11 KEY_1</code> |
Speichern fertig! | Speichern fertig! | ||
Line 294: | Line 299: | ||
Nun testen wir diese zuweißung indem wir die map auch mit laden -w. | Nun testen wir diese zuweißung indem wir die map auch mit laden -w. | ||
- | ''ir-keytable -s rc1 -c -p NEC -w /etc/rc_keymaps/rc-test-nec | + | <code>ir-keytable -s rc1 -c -p NEC -w /etc/rc_keymaps/rc-test-nec |
Old keytable cleared | Old keytable cleared | ||
Wrote 1 keycode(s) to driver | Wrote 1 keycode(s) to driver | ||
Protocols changed to nec | Protocols changed to nec | ||
- | '' | + | </code> |
es wurde ein keycode geladen (klar wir haben nur einen hinzugefügt). Dabei habe ich bewusst das richtige Protokoll eingefügt. | es wurde ein keycode geladen (klar wir haben nur einen hinzugefügt). Dabei habe ich bewusst das richtige Protokoll eingefügt. | ||
ir-keytable sieht nun so aus: | ir-keytable sieht nun so aus: | ||
- | '' ir-keytable | + | <code> ir-keytable |
Found /sys/class/rc/rc1/ (/dev/input/event15) with: | Found /sys/class/rc/rc1/ (/dev/input/event15) with: | ||
Driver serial_ir, table rc-rc6-mce | Driver serial_ir, table rc-rc6-mce | ||
Line 311: | Line 316: | ||
bus: 25, vendor/product: 0001:0001, version: 0x0100 | bus: 25, vendor/product: 0001:0001, version: 0x0100 | ||
Repeat delay = 500 ms, repeat period = 125 ms | Repeat delay = 500 ms, repeat period = 125 ms | ||
- | '' | + | </code> |
evtest sagt nun: | evtest sagt nun: | ||
- | ''evtest /dev/input/event15 | + | <code>evtest /dev/input/event15 |
Input driver version is 1.0.1 | Input driver version is 1.0.1 | ||
Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 | Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 | ||
Line 332: | Line 337: | ||
Properties: | Properties: | ||
Testing ... (interrupt to exit) | Testing ... (interrupt to exit) | ||
- | '' | + | </code> |
es kann schon KEY_1 | es kann schon KEY_1 | ||
- | ''Event code 2 (KEY_1)'' | + | <code>Event code 2 (KEY_1)</code> |
das testen wir natürlich sofort in dem wir auf der Fernbedienung Taste 1 drücken: | das testen wir natürlich sofort in dem wir auf der Fernbedienung Taste 1 drücken: | ||
- | ''Testing ... (interrupt to exit) | + | <code>Testing ... (interrupt to exit) |
Event: time 1523715061.010631, type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 | Event: time 1523715061.010631, type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 | ||
Event: time 1523715061.010631, type 1 (EV_KEY), code 2 (KEY_1), value 1 | Event: time 1523715061.010631, type 1 (EV_KEY), code 2 (KEY_1), value 1 | ||
Line 345: | Line 350: | ||
Event: time 1523715061.402358, type 1 (EV_KEY), code 2 (KEY_1), value 0 | Event: time 1523715061.402358, type 1 (EV_KEY), code 2 (KEY_1), value 0 | ||
Event: time 1523715061.402358, -------------- SYN_REPORT ------------ | Event: time 1523715061.402358, -------------- SYN_REPORT ------------ | ||
- | '' | + | </code> |
alles wie gewollt. So geht man nun weiter vor, bis man alle Tasten angelernt hat, oder man lädt eine bereits enthaltene datei aus /etc/rc_keymaps oder /lib/udev/rc_keymaps | alles wie gewollt. So geht man nun weiter vor, bis man alle Tasten angelernt hat, oder man lädt eine bereits enthaltene datei aus /etc/rc_keymaps oder /lib/udev/rc_keymaps | ||
- | ===== Das MUSS CLAUS NUN NOCH konfigurierbar und bei jedem Start ausführbar machen ===== | + | ====== Anpassungen für den RPi ====== |
+ | In der Datei /boot/config.txt muss jetzt "dtoverlay=lirc-rpi" geändert werden in: | ||
+ | <code>dtoverlay=gpio-ir,rc-map-name=rc-hauppauge</code> | ||
+ | Weiterhin ist in der /etc/rc_maps.cfg die Zeile "ir-kbd-i2c rc-hauppauge /etc/rc_keymaps/rc-hauppauge" wie folgt auszutauschen: | ||
+ | <code>gpio_ir_recv rc-hauppauge /etc/rc_keymaps/rc-hauppauge</code> | ||
+ | Nachfolgend der Inhalt für die Datei /etc/rc_keymaps/rc-hauppauge für eine Harmony mit dem Profil KLS 1.6: | ||
+ | <code># table hauppauge, type: RC5, KLS1.6 | ||
+ | 0xb4c KEY_SELECT | ||
+ | 0xb0c KEY_POWER2 | ||
+ | 0xb70 KEY_TV | ||
+ | 0xb71 KEY_VIDEO | ||
+ | 0xb72 KEY_AUDIO | ||
+ | 0xb73 KEY_CAMERA | ||
+ | 0xb4b KEY_EPG | ||
+ | 0x130 KEY_RADIO | ||
+ | 0xb44 KEY_UP | ||
+ | 0xb45 KEY_DOWN | ||
+ | 0xb46 KEY_LEFT | ||
+ | 0xb47 KEY_RIGHT | ||
+ | 0xb48 KEY_OK | ||
+ | 0xb4a KEY_ESC | ||
+ | 0xb49 KEY_MENU | ||
+ | 0xb10 KEY_VOLUMEUP | ||
+ | 0xb11 KEY_VOLUMEDOWN | ||
+ | 0xb22 KEY_PREVIOUS | ||
+ | 0xb0d KEY_MUTE | ||
+ | 0xb20 KEY_CHANNELUP | ||
+ | 0xb21 KEY_CHANNELDOWN | ||
+ | 0xb37 KEY_RECORD | ||
+ | 0xb36 KEY_STOP | ||
+ | 0xb32 KEY_REWIND | ||
+ | 0xb35 KEY_PLAY | ||
+ | 0xb34 KEY_FASTFORWARD | ||
+ | 0xb30 KEY_PREVIOUSSONG | ||
+ | 0xb33 KEY_PAUSE | ||
+ | 0xb31 KEY_NEXTSONG | ||
+ | 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 | ||
+ | 0xb08 KEY_TEXT | ||
+ | 0xb00 KEY_0 | ||
+ | 0xb78 KEY_SUBTITLE | ||
+ | 0xb40 KEY_RED | ||
+ | 0xb41 KEY_GREEN | ||
+ | 0xb42 KEY_YELLOW | ||
+ | 0xb43 KEY_BLUE | ||
+ | </code> | ||
+ | |||
+ | Der Inhalt stammt aus mehreren Forumsbeiträgen zu diesem Thema [[http://www.minidvblinux.de/forum/index.php/topic,9090.0.html|u.a. diesem Beitrag]] | ||
+ | |||
+ | |||