Archiv > Raspberry PI

RPI & Samsung CEC

(1/2) > >>

TimUx:
Hallo zusammen,
ich finde aktuell einfach nicht den Fehler, vielleicht habt ihr ja eine Idee.

Ich habe mein RPI am Samsung TV und den CEC Daemon installiert.
Es wird auch alles richtig von eventlircd erkannt erkannt.
Einige Tasten funktionieren auch wie erwartet, einige jedoch Falsch oder überhaupt nicht.

Beim KEY_ESC wird z.B. das Menü aufgerufen, beim KEY_EXIT oder KEY_OK passiert überhaupt nichts.
Die Zahlen und Pfeiltasten gehen.

Zumindest der KEY_OK sollte doch gehen.

Wenn ich evtest aufrufe, sieht soweit auch alles gut aus.
Anscheinend passiert etwas vom eventlirc zum VDR.
Ich habe da schon mal an die evmaps gedacht, aber welche soll hier greifen?

--- Code: ---MLD> ls -la /dev/input/
drwxr-xr-x    2 root     root           120 Apr 15 20:11 .
drwxr-xr-x   10 root     root          2880 Apr 15 20:11 ..
crw-------    1 root     root       13,  64 Apr 15 20:11 event0
crw-------    1 root     root       13,  65 Apr 15 20:11 event1
lrwxrwxrwx    1 root     root             6 Apr 15 20:11 ir -> event0
crw-------    1 root     root       13,  63 Jan  1  1970 mice
MLD> cat /dev/input/event0
^C�vMS���vMS�1�vMS<�vMS<�vMS�`�vMS��vMS��

MLD> stop eventlircd
Stopping eventlircd                                                                                                                                                     done
MLD> evtest
No device specified, trying to scan all of /dev/input/event*
Available devices:
/dev/input/event0: libcec-daemon
/dev/input/event1: lircd
Select the device event number [0-1]: 0
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x1 product 0x1 version 0x1
Input device name: "libcec-daemon"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 1 (KEY_ESC)
    Event code 2 (KEY_1)
    Event code 3 (KEY_2)
    Event code 4 (KEY_3)
    Event code 5 (KEY_4)
    Event code 6 (KEY_5)
    Event code 7 (KEY_6)
    Event code 8 (KEY_7)
    Event code 9 (KEY_8)
    Event code 10 (KEY_9)
    Event code 11 (KEY_0)
    Event code 14 (KEY_BACKSPACE)
    Event code 28 (KEY_ENTER)
    Event code 52 (KEY_DOT)
    Event code 102 (KEY_HOME)
    Event code 103 (KEY_UP)
    Event code 104 (KEY_PAGEUP)
    Event code 105 (KEY_LEFT)
    Event code 106 (KEY_RIGHT)
    Event code 108 (KEY_DOWN)
    Event code 109 (KEY_PAGEDOWN)
    Event code 113 (KEY_MUTE)
    Event code 114 (KEY_VOLUMEDOWN)
    Event code 115 (KEY_VOLUMEUP)
    Event code 116 (KEY_POWER)
    Event code 119 (KEY_PAUSE)
    Event code 128 (KEY_STOP)
    Event code 138 (KEY_HELP)
    Event code 139 (KEY_MENU)
    Event code 141 (KEY_SETUP)
    Event code 158 (KEY_BACK)
    Event code 159 (KEY_FORWARD)
    Event code 161 (KEY_EJECTCD)
    Event code 167 (KEY_RECORD)
    Event code 168 (KEY_REWIND)
    Event code 171 (KEY_CONFIG)
    Event code 174 (KEY_EXIT)
    Event code 207 (KEY_PLAY)
    Event code 208 (KEY_FASTFORWARD)
    Event code 213 (KEY_SOUND)
    Event code 226 (KEY_MEDIA)
    Event code 352 (KEY_OK)
    Event code 358 (KEY_INFO)
    Event code 359 (KEY_TIME)
    Event code 364 (KEY_FAVORITES)
    Event code 365 (KEY_EPG)
    Event code 370 (KEY_SUBTITLE)
    Event code 375 (KEY_SCREEN)
    Event code 386 (KEY_TUNER)
    Event code 388 (KEY_TEXT)
    Event code 393 (KEY_VIDEO)
    Event code 395 (KEY_LIST)
    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 412 (KEY_PREVIOUS)
Properties:
Testing ... (interrupt to exit)
Event: time 1397585690.449633, type 1 (EV_KEY), code 2 (KEY_1), value 1
Event: time 1397585690.449633, -------------- SYN_REPORT ------------
Event: time 1397585690.835283, type 1 (EV_KEY), code 2 (KEY_1), value 0
Event: time 1397585690.835283, -------------- SYN_REPORT ------------
Event: time 1397585695.160321, type 1 (EV_KEY), code 352 (KEY_OK), value 1
Event: time 1397585695.160321, -------------- SYN_REPORT ------------
Event: time 1397585695.649549, type 1 (EV_KEY), code 352 (KEY_OK), value 0
Event: time 1397585695.649549, -------------- SYN_REPORT ------------
Event: time 1397585697.961209, type 1 (EV_KEY), code 174 (KEY_EXIT), value 1
Event: time 1397585697.961209, -------------- SYN_REPORT ------------
Event: time 1397585698.336736, type 1 (EV_KEY), code 174 (KEY_EXIT), value 0
Event: time 1397585698.336736, -------------- SYN_REPORT ------------
Event: time 1397585741.298085, type 1 (EV_KEY), code 1 (KEY_ESC), value 1
Event: time 1397585741.298085, type 1 (EV_KEY), code 1 (KEY_ESC), value 0
Event: time 1397585741.298085, -------------- SYN_REPORT ------------

--- End code ---

Gruß Timo

TimUx:
Hallo zusammen,
nur zur Info, im XBMC funktionieren die Tasten alle wie erwartet.

Zumindest die 30-60 Sekunden, in denen mein XBMC läuft.

Anschließend schmiert das XBMC ab und man kann es nicht einmal mehr killen.
Nur ein reboot hilft.

Gruß Timo

TimUx:
Hallo zusammen,
ich habe mich noch ein wenig mit CEC beschäftigt.

Dabei ist mir aufgefallen, dass die CEC Kommandos komplett am eventlircd vorbei laufen.
Sprich, wenn ich den eventlircd stoppe, werden die KEYs trotzdem noch an den VDR gesendet.

Somit konnte ich natürlich auch keine KEYs in einer evmap umbiegen.

Ich habe jetzt die udev rule "98-eventlircd-names.rules" angepasst und folgendes eingetragen.

ATTRS{name}=="libcec-daemon", \
  ENV{eventlircd_enable}="true", \
  ENV{eventlircd_evmap}="CEC.evmap"
LABEL="end"

Hierdurch unterliegt das CEC jetzt komplett dem eventlircd und ich kann auch KEYs in der CEC.evmap eintragen, welche umgeleitet werden sollen.
Das funktioniert soweit auch gut und es funktionieren mittlerweile mehr Tasten als vorher.
(Auf, ab, links, rechts, zurück, Exit, OK, Channel Up, Channel Down, rot, grün, gelb, blau  )

Allerdings gehen noch nicht die Buttons wie Play, Pause, Stop, ...
Da ist jetzt die Frage, liegt es am libcec, eventlircd oder dem CEC von TV.
Laut im cec-client kann man die Aktionen sehen, wenn die Buttons auf der FB gedrückt werden.

Mit vdr-plugin-remote habe ich das ganze auch ans fliegen bekommen, mit den gleiche funktionierenden Buttons.
Um es mit dem remote Plugin hin zu bekommen, muss mann allerdings eine eigene udev rule für libcec bauen und das libcec-daemon init Skript anpassen.

@Claus
Mittlerweile gibt es ja libcec 2.4, könntest du das vielelicht mal zum testen kompilieren und bauen?

Gruß Timo

clausmuus:
Hi,

libcec hat die Version 2.1.4 was identisch mit der Version 2.4.1 ist. Da muss irgendwann mal was bei der Versionsvergabe durcheinander gekommen sein, jedenfalls ist beides das Selbe.

Soweit ich das durchgetestet hatte, kommen die cec Signale zwar alle beim libcec-daemon an, nur nimmt der nicht alle entgegen. Das kann man sehen, wenn man libcec-daemon im debug Modus startet.

Hab ich das nun richtig verstanden: Wenn Du das vdr remote Plugin verwendest, funktionieren mehr Tasten, als wenn Du eventlircd verwendest?

Deine eventlircd Regel werde ich jedenfalls gleich schon mal übernehmen. Ich bräuchte aber noch Deine cec.evmap dazu.

Claus

TimUx:
Hi,
nein das remote plugin kann genau so viele Buttons wie das eventlircd, wenn ich die udev regel drin habe.

Ich habe auch gerade noch einmal mit OpenELEC XBMC libcec 2.1.4 getestet und da funktionieren auch alle Media Buttons (Play, stop, ...)

Es scheint also in der Tat am libcec-daemon zu liegen.
Der reicht nicht alle CEC Kommandos weiter.

Ich denke meine CEC.evmap nutzt dir nicht wirklich viel, da ich hier meine Samsung KEYs umleite, welche natürlich bei einem anderen TV andere KEYs sein können.
Vermutlich muss einfach eine leere CEC.evmap vorhanden sein und dann muss jeder die KEYs nach seinem Bedarf anpassen.

Gruß Timo

Navigation

[0] Message Index

[#] Next page

Go to full version