This shows you the differences between two versions of the page.
|
mld:tutorials:fernbedienungen54serial [2018/04/14 16:30] MarMic [Liste der devices anzeigen] |
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 ===== | ||
| - | '' | + | |
| <code> | <code> | ||
| BVDR> ir-keytable | BVDR> ir-keytable | ||
| Line 12: | 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> | + | </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 20: | 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 32: | 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 52: | 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 64: | 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 76: | 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 172: | 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 178: | 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 275: | 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 283: | 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 297: | 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 314: | 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 335: | 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 348: | 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]] | ||
| + | |||
| + | |||