libcec kompatibler Treiber für sunxi Chipsatz [Cubieboard, Cubietruck, BananaPi usw.]

  • Update 23.01.2016: Neue Version der CEC Treibers, besseres Handling bei Send/Receive Error
    Update 18.01.2016: Benötigte Pakete und ein ldconfig am Ende der Installation hinzugefügt
    Update 17.01.2016: neuer Patch für libcec, da mit aktuellen Quellen aus git '-DHAVE_EXYNOS_API=1' nicht funktioniert.


    Hallo zusammen,
    ich habe einen Treiber für die Boards mit Allwinner Chipsätzen geschrieben der mit der libcec funktioniert und somit CEC Support für diese Boards bereitstellt.
    Jetzt suche ich ein paar Tester, da ich nur einen Fernseher mit CEC Funktion zur Verfügung habe.
    Zum testen kann ich zwei Wege anbieten:
    1. Für alle die ihren Kernel selbst kompilieren wollen, habe ich eine diff Datei erstellt. Einfach die Datei in euer Linux source Verzeichnis kopieren und mit patch -p1 < sunxi_cecV2.patch anwenden.


    2. Für alle die armbian von Igor Pečovnik benutzen habe ich .deb Pakete erstellt mit denen ganz einfach ein neuer Kernel mit dem CEC Treiber installiert wird.

    Code
    1. cd /tmp
    2. wget http://sunxi.das-eckchen.de/linux-headers-sun7i_4.83_armhf.deb
    3. wget http://sunxi.das-eckchen.de/linux-image-sun7i_4.83_armhf.deb
    4. wget http://sunxi.das-eckchen.de/linux-firmware-image-sun7i_4.83_armhf.deb
    5. dpkg -i *.deb
    6. reboot


    Wenn alles funktioniert hat sollte nun das Gerät /dev/CEC vorhanden sein.
    Für libcec benötigte Pakete installieren:

    Code
    1. apt-get install cmake liblockdev1-dev libudev-dev libxrandr-dev python-dev swig


    Jetzt noch die libcec installieren:


    Wäre schön wenn es ein paar Leute testen könnten und hier Rückmeldung geben würden.


    Gruß
    Joachim

  • Cool danke. Jetzt muss ich mich doch mal informieren, was es mit dem CEC auf sich hat und werds dann beizeiten probieren.


    Gruß Andreas

  • Nett, wollte schon selber basteln und habe die Docus zusammengesucht.


    Der TV für den der Banana Pi vorgesehen ist, kann CES und dann brauche ich keine extra Fernbedienung.
    Ist nur etwas schwierig daran zutesten.


    Johns

    Sag mir, wo die Developer sind. Wo sind sie geblieben? . . . . . . . . . . . . . . . . . . . . SoftHdDevice - A software and GPU emulated HD output device plugin.
    Sag mir, wo die Developer sind. Was ist geschehn?


    Client0: Crown CW02 MSI_C847MS-E33 Zotac_GT640_passiv Cine-S2 iMon-MCE / streamdev softhddevice
    Client1: Lian_Li_PC-Q09FB ASRock_H67M-ITX/HT I3-2100 ASUS_ENGT520_passiv / streamdev softhddevice
    Test: Lian_Li_PC-Q09R Asus C60M1-I / streamdev
    Server0: Dockstar TT-S2-3600-USB / streamdev
    Server2: Lian_Li_PC-Q07R Intel_DH61DL G620 WD20EARX 90W PicoPSU Cine-S2+DuoFlex-S2+DuoFlex-CT / streamdev / 22 Watt Verbrauch

  • Jetzt suche ich ein paar Tester, da ich nur einen Fernseher mit CEC Funktion zur Verfügung habe.

    Hello! I compile Kernel and libcec with your patches and install it to my Cubietruck. But cec-client not working for me: anytime fail to find TV, not send command (write error), only brodcast show.
    I think libcec error read-write to memory.

  • Hello! I compile Kernel and libcec with your patches and install it to my Cubietruck. But cec-client not working for me: anytime fail to find TV, not send command (write error), only brodcast show.
    I think libcec error read-write to memory.


    Hi, and thanks for your feedback. What kernel sources did you use? Can you please post the output from:

    Code
    1. cec-client -t r


    I have done my testing with a Bananapi. I have a Cubietruck too, but i don't have much time atm to do some testing with it. I hope i can give you more support on sunday or monday.

  • Hallo jodamm,


    erstmal danke für deine Arbeit.
    Habe aber leider auf meiner Bananapi (1) ein Problem.
    Verwende das IMAGE von IGOR
    Habe soweit alles wie von dir beschrieben gemacht.



    /dev/CEC ist vorhanden.


    Libcec ist aktuell von heute, habe es mit deinem Patch gepatcht. In der liste von cmake steht aber exynos = no , ist das normal?


    Wenn ich dann versuche cec-client zu starten findet es nichts und wenn ich das so mache "cec-client /dev/CEC" kommt


    cec-client /dev/CEC
    No device type given. Using 'recording device'
    CEC Parser created - libCEC version 3.0.1
    opening a connection to the CEC adapter...
    DEBUG: [ 5] Broadcast (F): osd name set to 'Broadcast'
    ERROR: [ 3568] error opening serial port '/dev/CEC': Device or resource busy
    ERROR: [ 3568] could not open a connection (try 1)


    mit -t r passiert das gleiche.
    dmesg schreibt 724.323344] cec: another process is accessing the device.
    Hast du nen ratschlag für mich.

  • Hallo spacy,
    ich habe es gerade nochmal bei mir durchgespielt und es funktioniert.
    Bei cmake sollte auf jedenfall Exynos support: yes stehen.
    Vielleicht fehlt bei dir ein benötigtes Paket.
    Hier ist die Liste von der libcec Seite:

    Code
    1. apt-get install cmake liblockdev1-dev libudev-dev libxrandr-dev python-dev swig


    Nach dem installieren der Pakete am besten die Verzeichnisse /usr/local/src/platform und /usr/local/src/libcec löschen und es nochmal von vorne probieren


  • Hi, and thanks for your feedback. What kernel sources did you use? Can you please post the output from:

    Code
    1. cec-client -t r


    I have done my testing with a Bananapi. I have a Cubietruck too, but i don't have much time atm to do some testing with it. I hope i can give you more support on sunday or monday.

    I done it :] Problem was in permissions. Set chmod 0777 /dev/CEC. It work fine!

  • Hi jodamm,


    ich habe einen BananaPi Pro nach deiner neuen Anleitung mit deinem Image installiert. Ich verstehe aber die Anbindung an den VDR nicht ganz. Wo werden denn die Befehle definiert? In der remote.conf sind ja nur die Tastarturbefehle enthalten. Hier die Ausgabe von:



    vielen Dank schon mal im Voraus
    Gruß Donkey-Kong

  • Hallo Donkey-Kong


    Quote

    Hi jodamm,


    ich habe einen BananaPi Pro nach deiner neuen Anleitung mit deinem Image installiert. Ich verstehe aber die Anbindung an den VDR nicht ganz. Wo werden denn die Befehle definiert? In der remote.conf sind ja nur die Tastarturbefehle enthalten. Hier die Ausgabe von:


    Um den VDR mit CEC zu steuern benötigt man wohl noch ein Plugin oder einen cec-deamon der die Befehle dann an Lirc weitergibt. Damit habe ich mich aber noch nicht beschäftigt. Ich schalte den Fernseher nur mit dem cec-client um.


    Gruß Joachim

  • OK,


    da weiß ich wo ich weiterforschen muss.

  • Hallo Joachim,


    Zuerst mal vielen Dank für die Arbeit. Ist zwar schon eine Weile her, aber ich habe dennoch eine Frage dazu:

    1. Für alle die ihren Kernel selbst kompilieren wollen, habe ich eine diff Datei erstellt. Einfach die Datei in euer Linux source Verzeichnis kopieren und mit patch -p1 < sunxi_cecV2.patch anwenden.


    2. Für alle die armbian von Igor Pečovnik benutzen habe ich .deb Pakete erstellt mit denen ganz einfach ein neuer Kernel mit dem CEC Treiber installiert wird.

    Hast Du eventuell mehr Infos, auf welche Kernel Version Dein Patch anzuwenden ist/war? In den aktuellen Kernel Quellen für sun7i/sunxi in Armbian lässt sich der Patch nicht anwenden – unter anderem da die Verzeichnisstruktur nicht der des Patch entspricht. Und soweit ich das beurteilen kann, ist in den aktuellen sunxi Quellen CEC nicht vorhanden.


    Hast Du das ganze irgendwo in einem Github Repository abgelegt oder sonst Info, die mir eventuell weiterhelfen würde, an einer aktuellen Version des Treibers zu arbeiten?


    Schon mal Danke für die Hilfe und Gruss,
    Johann