User Tools

Site Tools


mld:tutorials:fernbedienungen54serial

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

mld:tutorials:fernbedienungen54serial [2018/04/14 15:45]
MarMic [serial ir starten]
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 ==== 
 +nun überprüfen wir die Device List 
 +<​code>​BVDR>​ ir-keytable 
 +Found /​sys/​class/​rc/​rc1/​ (/​dev/​input/​event15) with: 
 +        Driver serial_ir, table rc-rc6-mce 
 +        Supported protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp 
 +        Enabled protocols: lirc rc-6 
 +        Name: Serial IR type home-brew 
 +        bus: 25, vendor/​product:​ 0001:0001, version: 0x0100 
 +        Repeat delay = 500 ms, repeat period = 125 ms 
 +Found /​sys/​class/​rc/​rc0/​ (/​dev/​input/​event14) with: 
 +        Driver cx88xx, table rc-tevii-nec 
 +        Supported protocols: lirc rc-6 
 +        Enabled protocols: lirc 
 +        Name: cx88 IR (TeVii S464 DVB-S/S2) 
 +        bus: 1, vendor/​product:​ d464:9022, version: 0x0001 
 +        Repeat delay = 500 ms, repeat period = 125 ms 
 +BVDR> 
 +</​code>​ 
 + 
 +das Device rc1 ist nun vorhanden aber es empfängt noch keine Daten, da das Protokol falsch ist. 
 + 
 +==== device test mit evtest ==== 
 +<​code>​BVDR>​ evtest 
 +No device specified, trying to scan all of /​dev/​input/​event* 
 +Available devices: 
 +... 
 +/​dev/​input/​event14: ​    cx88 IR (TeVii S464 DVB-S/S2) 
 +/​dev/​input/​event15: ​    ​Serial IR type home-brew 
 +Select the device event number [0-15]: 
 +</​code>​ 
 +event15 ist unser Empfänger er hat aber noch kein passendes Protokoll 
 + 
 +<​code>​evtest /​dev/​input/​event15 
 +</​code>​ 
 +liefert noch keine TASTEN beim drücken. 
 + 
 +=== Protokoll ermitteln === 
 + 
 +zwei möglichkeiten. 
 + 
 +== Protokolle einzeln laden == 
 +<​code>​BVDR>​ ir-keytable -s rc1 -p NEC 
 +Protocols changed to nec 
 +</​code>​ 
 +NEC ersetzen durch den Namen des zu testenden Protokolls 
 +in unserem Fall sagt ir-keytable:​ 
 +<​code>​Supported protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp</​code>​ 
 + 
 +nun mit evtest Testen: 
 +<​code>​BVDR>​ evtest /​dev/​input/​event15 
 +Input driver version is 1.0.1 
 +Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 
 +Input device name: "​Serial IR type home-brew"​ 
 +Supported events: 
 +  Event type 0 (EV_SYN) 
 +  Event type 1 (EV_KEY) 
 +    Event code 28 (KEY_ENTER) 
 +    Event code 103 (KEY_UP) 
 +    Event code 105 (KEY_LEFT) 
 +    Event code 106 (KEY_RIGHT) 
 +    Event code 108 (KEY_DOWN) 
 +    Event code 111 (KEY_DELETE) 
 +    Event code 113 (KEY_MUTE) 
 +    Event code 114 (KEY_VOLUMEDOWN) 
 +    Event code 115 (KEY_VOLUMEUP) 
 +    Event code 119 (KEY_PAUSE) 
 +    Event code 128 (KEY_STOP) 
 +    Event code 142 (KEY_SLEEP) 
 +    Event code 161 (KEY_EJECTCD) 
 +    Event code 164 (KEY_PLAYPAUSE) 
 +    Event code 167 (KEY_RECORD) 
 +    Event code 168 (KEY_REWIND) 
 +    Event code 174 (KEY_EXIT) 
 +    Event code 207 (KEY_PLAY) 
 +    Event code 208 (KEY_FASTFORWARD) 
 +    Event code 210 (KEY_PRINT) 
 +    Event code 212 (KEY_CAMERA) 
 +    Event code 224 (KEY_BRIGHTNESSDOWN) 
 +    Event code 225 (KEY_BRIGHTNESSUP) 
 +    Event code 226 (KEY_MEDIA) 
 +    Event code 352 (KEY_OK) 
 +    Event code 356 (KEY_POWER2) 
 +    Event code 358 (KEY_INFO) 
 +    Event code 365 (KEY_EPG) 
 +    Event code 366 (KEY_PVR) 
 +    Event code 368 (KEY_LANGUAGE) 
 +    Event code 369 (KEY_TITLE) 
 +    Event code 370 (KEY_SUBTITLE) 
 +    Event code 372 (KEY_ZOOM) 
 +    Event code 373 (KEY_MODE) 
 +    Event code 377 (KEY_TV) 
 +    Event code 385 (KEY_RADIO) 
 +    Event code 386 (KEY_TUNER) 
 +    Event code 387 (KEY_PLAYER) 
 +    Event code 389 (KEY_DVD) 
 +    Event code 392 (KEY_AUDIO) 
 +    Event code 393 (KEY_VIDEO) 
 +    Event code 398 (KEY_RED) 
 +    Event code 399 (KEY_GREEN) 
 +    Event code 400 (KEY_YELLOW) 
 +    Event code 401 (KEY_BLUE) 
 +    Event code 402 (KEY_CHANNELUP) 
 +    Event code 403 (KEY_CHANNELDOWN) 
 +    Event code 407 (KEY_NEXT) 
 +    Event code 412 (KEY_PREVIOUS) 
 +    Event code 425 (KEY_PRESENTATION) 
 +    Event code 430 (KEY_MESSENGER) 
 +    Event code 512 (KEY_NUMERIC_0) 
 +    Event code 513 (KEY_NUMERIC_1) 
 +    Event code 514 (KEY_NUMERIC_2) 
 +    Event code 515 (KEY_NUMERIC_3) 
 +    Event code 516 (KEY_NUMERIC_4) 
 +    Event code 517 (KEY_NUMERIC_5) 
 +    Event code 518 (KEY_NUMERIC_6) 
 +    Event code 519 (KEY_NUMERIC_7) 
 +    Event code 520 (KEY_NUMERIC_8) 
 +    Event code 521 (KEY_NUMERIC_9) 
 +    Event code 522 (KEY_NUMERIC_STAR) 
 +    Event code 523 (KEY_NUMERIC_POUND) 
 +  Event type 4 (EV_MSC) 
 +    Event code 4 (MSC_SCAN) 
 +Key repeat handling: 
 +  Repeat type 20 (EV_REP) 
 +    Repeat code 0 (REP_DELAY) 
 +      Value    500 
 +    Repeat code 1 (REP_PERIOD) 
 +      Value    125 
 +Properties:​ 
 +Testing ... (interrupt to exit) 
 +Event: time 1523714087.984388,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 1f 
 +Event: time 1523714087.984388,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714088.117117,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 1f 
 +Event: time 1523714088.117117,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714088.746571,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 00 
 +Event: time 1523714088.746571,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714088.877285,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 00 
 +Event: time 1523714088.877285,​ -------------- SYN_REPORT ------------ 
 +</​code>​ 
 + 
 +Es sieht gut aus - wir haben scan codes ABER noch keine Zuweißung. 
 + 
 +== EINFACH ALLE Protokolle laden == 
 +Man lädt einfach mit -p alle Protokolle die laut ir-keytable unterstützt werden aufeinmal rein: 
 +<​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 
 +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! 
 +<​code>​ 
 +BVDR> evtest /​dev/​input/​event15 
 +Input driver version is 1.0.1 
 +Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 
 +Input device name: "​Serial IR type home-brew"​ 
 +Supported events: 
 +  Event type 0 (EV_SYN) 
 +  Event type 1 (EV_KEY) 
 +    Event code 28 (KEY_ENTER) 
 +    Event code 103 (KEY_UP) 
 +    Event code 105 (KEY_LEFT) 
 +    Event code 106 (KEY_RIGHT) 
 +    Event code 108 (KEY_DOWN) 
 +    Event code 111 (KEY_DELETE) 
 +    Event code 113 (KEY_MUTE) 
 +    Event code 114 (KEY_VOLUMEDOWN) 
 +    Event code 115 (KEY_VOLUMEUP) 
 +    Event code 119 (KEY_PAUSE) 
 +    Event code 128 (KEY_STOP) 
 +    Event code 142 (KEY_SLEEP) 
 +    Event code 161 (KEY_EJECTCD) 
 +    Event code 164 (KEY_PLAYPAUSE) 
 +    Event code 167 (KEY_RECORD) 
 +    Event code 168 (KEY_REWIND) 
 +    Event code 174 (KEY_EXIT) 
 +    Event code 207 (KEY_PLAY) 
 +    Event code 208 (KEY_FASTFORWARD) 
 +    Event code 210 (KEY_PRINT) 
 +    Event code 212 (KEY_CAMERA) 
 +    Event code 224 (KEY_BRIGHTNESSDOWN) 
 +    Event code 225 (KEY_BRIGHTNESSUP) 
 +    Event code 226 (KEY_MEDIA) 
 +    Event code 352 (KEY_OK) 
 +    Event code 356 (KEY_POWER2) 
 +    Event code 358 (KEY_INFO) 
 +    Event code 365 (KEY_EPG) 
 +    Event code 366 (KEY_PVR) 
 +    Event code 368 (KEY_LANGUAGE) 
 +    Event code 369 (KEY_TITLE) 
 +    Event code 370 (KEY_SUBTITLE) 
 +    Event code 372 (KEY_ZOOM) 
 +    Event code 373 (KEY_MODE) 
 +    Event code 377 (KEY_TV) 
 +    Event code 385 (KEY_RADIO) 
 +    Event code 386 (KEY_TUNER) 
 +    Event code 387 (KEY_PLAYER) 
 +    Event code 389 (KEY_DVD) 
 +    Event code 392 (KEY_AUDIO) 
 +    Event code 393 (KEY_VIDEO) 
 +    Event code 398 (KEY_RED) 
 +    Event code 399 (KEY_GREEN) 
 +    Event code 400 (KEY_YELLOW) 
 +    Event code 401 (KEY_BLUE) 
 +    Event code 402 (KEY_CHANNELUP) 
 +    Event code 403 (KEY_CHANNELDOWN) 
 +    Event code 407 (KEY_NEXT) 
 +    Event code 412 (KEY_PREVIOUS) 
 +    Event code 425 (KEY_PRESENTATION) 
 +    Event code 430 (KEY_MESSENGER) 
 +    Event code 512 (KEY_NUMERIC_0) 
 +    Event code 513 (KEY_NUMERIC_1) 
 +    Event code 514 (KEY_NUMERIC_2) 
 +    Event code 515 (KEY_NUMERIC_3) 
 +    Event code 516 (KEY_NUMERIC_4) 
 +    Event code 517 (KEY_NUMERIC_5) 
 +    Event code 518 (KEY_NUMERIC_6) 
 +    Event code 519 (KEY_NUMERIC_7) 
 +    Event code 520 (KEY_NUMERIC_8) 
 +    Event code 521 (KEY_NUMERIC_9) 
 +    Event code 522 (KEY_NUMERIC_STAR) 
 +    Event code 523 (KEY_NUMERIC_POUND) 
 +  Event type 4 (EV_MSC) 
 +    Event code 4 (MSC_SCAN) 
 +Key repeat handling: 
 +  Repeat type 20 (EV_REP) 
 +    Repeat code 0 (REP_DELAY) 
 +      Value    500 
 +    Repeat code 1 (REP_PERIOD) 
 +      Value    125 
 +Properties:​ 
 +Testing ... (interrupt to exit) 
 +Event: time 1523714338.384568,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 
 +Event: time 1523714338.384568,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714339.225618,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 12 
 +Event: time 1523714339.225618,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714339.360765,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 12 
 +Event: time 1523714339.360765,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714339.918255,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 15 
 +Event: time 1523714339.918255,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523714340.048912,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 15 
 +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. 
 + 
 +===== scan codes einem Key zuweisen ===== 
 +nun haben wir scan codes also weisen wir diese nun den Tasten zu: 
 +Beispiel mit Taste 1. 
 +Bei Taste 1 kommt folgende evtest Ausgabe: 
 +<​code>​Event:​ time 1523714338.384568,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 
 +Event: time 1523714338.384568,​ -------------- SYN_REPORT </​code>​ 
 + 
 +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: 
 +<​code>​0x[SCANCODE] LEERZEICHEN [KEY]</​code>​ 
 +also für uns Beispiel: 
 +<​code>​0x11 KEY_1</​code>​ 
 +Speichern fertig! 
 + 
 +===== scan codes Key zuweisung testen ===== 
 +Nun testen wir diese zuweißung indem wir die map auch mit laden -w. 
 + 
 +<​code>​ir-keytable -s rc1 -c -p NEC -w /​etc/​rc_keymaps/​rc-test-nec 
 +Old keytable cleared 
 +Wrote 1 keycode(s) to driver 
 +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. 
 + 
 +ir-keytable sieht nun so aus: 
 +<​code>​ ir-keytable 
 +Found /​sys/​class/​rc/​rc1/​ (/​dev/​input/​event15) with: 
 +        Driver serial_ir, table rc-rc6-mce 
 +        Supported protocols: lirc rc-5 rc-5-sz jvc sony nec sanyo mce_kbd rc-6 sharp xmp 
 +        Enabled protocols: lirc nec 
 +        Name: Serial IR type home-brew 
 +        bus: 25, vendor/​product:​ 0001:0001, version: 0x0100 
 +        Repeat delay = 500 ms, repeat period = 125 ms 
 +</​code>​ 
 + 
 +evtest sagt nun: 
 +<​code>​evtest /​dev/​input/​event15 
 +Input driver version is 1.0.1 
 +Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100 
 +Input device name: "​Serial IR type home-brew"​ 
 +Supported events: 
 +  Event type 0 (EV_SYN) 
 +  Event type 1 (EV_KEY) 
 +    Event code 2 (KEY_1) 
 +  Event type 4 (EV_MSC) 
 +    Event code 4 (MSC_SCAN) 
 +Key repeat handling: 
 +  Repeat type 20 (EV_REP) 
 +    Repeat code 0 (REP_DELAY) 
 +      Value    500 
 +    Repeat code 1 (REP_PERIOD) 
 +      Value    125 
 +Properties:​ 
 +Testing ... (interrupt to exit) 
 +</​code>​ 
 +es kann schon 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: 
 +<​code>​Testing ... (interrupt to exit) 
 +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,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523715061.145434,​ type 4 (EV_MSC), code 4 (MSC_SCAN), value 11 
 +Event: time 1523715061.145434,​ -------------- SYN_REPORT ------------ 
 +Event: time 1523715061.402358,​ type 1 (EV_KEY), code 2 (KEY_1), value 0 
 +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 
 + 
 +====== 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]]
  
  
mld/tutorials/fernbedienungen54serial.1523713545.txt.gz · Last modified: 2018/04/14 15:45 (external edit)