Installation eines VDR+Plugins nativ auf CoreELEC Boxen

  • Ich hatte mal versucht mesa zu kompilieren, allerdings bin ich schon nicht durch das configure gekommen.

    ../meson.build:442:4: ERROR: Problem encountered: EGL requires dri

    Meine Versuche sind alle gescheitert und ich bin dann davon abgekommen.


    An diesen Prüfungen bin ich nicht vorbeigekommen:

  • Ganz andere Frage, warum ist die Wahl auf Coreelec und nicht Libreelec gefallen?

  • Die Antwort ist ganz einfach und schuld ist Dieter  ;) Ich bin über den Thread VDR auf 40€ TV-Box gestolpert und war sofort angefixed. Weil die Box und die Möglichkeiten genau das war, was ich schon lange suche um die aktuellen Clients zu ersetzen. Und da war eben CoreELEC Thema und weitere Alternativen habe ich dann nicht untersucht.

    Soweit ich das sehe, gibt es keine großen Unterschiede im Build-System von LE und CE.

  • Ich dachte immer Coreelec hat sich speziell auf Amlogic spezialisiert :-)


    Es gibt verschiedene Varianten der libMali.so. Das ist letztlich ein Link auf libMali.dvalin oder libMali.gondul oder libMali.m450

    Welche ist denn bei dir Zabrimus eingebaut ? Müsste die nicht je nach CPU entsprechend gesetzt werden ?

  • Ich fragte nur, weil ich https://wiki.libreelec.tv/hardware/amlogic gesehen habe, und mir der code so aussieht, als würde libreelec auf den Kistchen laufen. Der Rest für VDR kommt ja eigentlich nur on top?! (Das ganze müsste ja mit Allwinner eigentlich auch umsetzbar sein...)

  • Alle 3 befinden sich in /usr/lib. Ich nehme an, durch die Wahl der dtb, wird in /var/lib der Link auf die passende libMail in /usr/lib gesetzt.

    Und bei mir sehen die Links so aus:
    /usr/lib/libMali.so -> /var/lib/libMali.so

    /var/lib/libMali.so -> /usr/lib/libMali.dvalin.so

    Durch den Umweg über /var/lib (schreibbar) kann die libMali ausgetauscht werden.


    Ich müsste hier eine G31 (S509x3) Bifrost haben. Aber den Zusammenhang zu den Codenamen oben (dvalin) habe ich nicht finden können.

  • Ich fragte nur, weil ich https://wiki.libreelec.tv/hardware/amlogic gesehen habe, und mir der code so aussieht, als würde libreelec auf den Kistchen laufen.

    Dann muss es jemand versuchen. Meine Änderungen sind von CoreELEC weitgehend isoliert (eigene Packages, eigenes virtual package), so daß ich durchaus denke, das LE funktionieren könnte. Zumal zwischen LE und CE ein reger Austausch stattzufinden scheint.

  • Ein nightly image für den N2 gibt es jedenfalls, mit 5.17er Kernel etc.

    Vielleicht probier ich es mal mit Allwinner, da ich Amlogic nicht habe. Aber kodi brauch ich eigentlich nicht ;)

  • Der große Unterschied zwischen Libreelec und Coreelec ist der, dass Libreelec den Mainline-Kernel verwendet und Coreelec den 4.9.xxx Kernel mit den Modifikationen von Amlogic.


    Aus dem Grund gab es auch die Trennung, denn Libreelec hat eine längere Zeit keine Amlogic-SOCs unterstützt. In letzter Zeit gibt es wieder ein paar Versuche die Amlogic-SOCs in Libreelec zu integrieren, aber nur mit mäßigen Erfolg, den viele Funktionen gehen mit den aktuellen Kernel 5.x noch nicht, wie z.B. HDR und auch einige HD-Tonformate.


    Coreelec ist praktisch ein Fork von Libreelec, deshalb gibt es auch die vielen Verbindungen untereinander. Die Aufspaltung kam, als sich Libreelec entschlossen hat nur noch auf den Mainline-Kernel zu setzen und das funktioniert eben mit den Amlogic-SOCs zur damaligen Zeit (vor ca. 4 Jahren) überhaupt nicht.


    Coreelec verwendet deshalb immer noch den "alten" 4.9.xxx Kernel, weil damit eben praktisch alle Video- und Audio-Funktionen die für die Wiedergabe von allen Mediaformaten perfekt verfügbar sind. Bis auf die Wiedergabe von Dolby-Vision ( fehlende Lizenz) geht nämlich alles! Es geht sogar die automatische Anpassung der Bildwiederholrate und der Bildauflösung entsprechend des Quellsignals.


    Momentan geht für einen VDR der UHD mit HDR wiedergeben soll und vor allem für KODI mit einem Amlogic-SOC kein Weg an Coreelec vorbei!

  • Soweit ich das überschauen kann nutzt CoreELEC den closed source Treiber von Amlogic der nur für den älteren Kernel zur Verfügung steht.

    Im Mainline-Kernel wird ein neu entwickelter Treiber für Amlogic-Devices genutzt der vom Funktionsumfang für unseren

    Anwendungfall hier leider noch nicht so weit ist. Der nutzt wohl nur "offizielle" Schnittstellen wie das neue v4l m2m womit dann keine gesonderte Lösung wie das softhdodroid und letztendlich auch das CoreELEC notwendig ist.

    Die Entwicklung des neuen Treiber stockt aber wohl so das es leider spannend bleibt ob da mal was brauchbares rauskommt.


    Insofern stellt sich natürlich die Frage wie nachhaltig die derzeitige Entwicklung für die Platform ist.

    Die Portierung des VDR samt Plugins mach meines erachtens schon sinn da sich diese recht problemlos nach LE

    portieren lassen. Da könnte es überigens auch z.B. für X64-Platform mit den verfügbaren softhd-Plugins betrieben werden.

  • Danke. Jetzt ist der Unterschied CoreELEC/LibreELEC endlich klar geworden. Ich hatte mich schon über die verschiedenen Kernel gewundert.


    Ich habe mal ein Diff zwischen meiner Version und dem Original CE gemacht. Auch aus reiner Neugier, weil ich wissen wollte, wo ich überall rumgepfuscht habe. Wenn ich mal alle vdr-Verzeichnisse (packages/vdr, virtual/vdr-all) weg lasse, dann ist das Diff recht übersichtlich:

    - rust und rustup wurde auf eine höhere Version gezogen (für librsvg -> skindesigner)

    - image/package.mk hat Referenzen auf VDR (klar)

    - In opengl-meson werden zusätzlich die GLESv3 Header kopiert

    - In amlogic/media_modules-aml wurde der Patch gelöscht, der die Anzahl der Decoder beschränkt

    - In fontconfig habe ich ein zusätzliches Font-Verzeichnis aufgenommen


    Also eigentlich sind meine Änderungen sehr übersichtlich und sollten sich einfach nach LibreELEC übernehmen lassen.



    CoreELEC-Original-Zabrimus.diff

  • Wie schon erwähnt macht Libreelec genauer gesagt der 5.er Kernel mit softhdodroid keinen Sinn. Nur im 4.er Kernel von Coreelec sind die Amlogic funktionen drin die mein Treiber braucht. Und die Amlogic Änderungen sind da auch Opensource. Allerdings sind die Video Decoder closed Source. Ob die dann im 5.17er Kernel open source sind wage ich zu bezweifeln.


    Wenn wir also mit dem softhdodroid weiter machen wollen dann müssen wir bei Coreelec bleiben :-)


    Und bei mir sehen die Links so aus:
    /usr/lib/libMali.so -> /var/lib/libMali.so

    /var/lib/libMali.so -> /usr/lib/libMali.dvalin.so

    So sieht das auch bei mir aus. Ich frage mich wie das bei einer Mali-450 GPU aussieht. Und könnte man das durch eine Mesa Version ersetzten die dann auch die Mali 450 mit GL/ES 3.0 versorgt. Laut Datenblatt kann die Mali 450 aber kein GL/ES 3.0. Wenn das also dann da nicht irgendwo simuliert wird, dann müsste man das openglosd doch auf GL/ES 2.0 downgraden.

  • Zabrimus

    Ich habe bei meiner Distribution VDR-Distribution für CoreELEC als Kodi addons

    es vermieden Erweiterungen direkt im CE git zu committen.

    Stattdessen liegen alle zusätzlichen Packages in einem eigenen Verzeichnis bzw. git und die wenigen unbedingt notwendigen Änderungen werden

    über Patches mit Hilfe eines Script im CE-Build-Verzeichnis vorgenommen.

    Darunter ist auch ein Patch der CE-Build-Scripts damit diese bei bauen auch Packages bzw. Packages-Verzeichnisse berücksichtigen die per symbolic link

    eingebunden sind. Über einen solchen Link werden dann auch meine Packages gefunden.

    Damit kann man dann sehr schnell z.B. gegen eine andere CE-Version compilieren. Es benötigt halt immer nur ein "git reset --hard <version> && prepare_build_env.sh". Ein Wechsel zu einem LE-Build wäre genauso einfach.


    Ich hoffe im laufe der nächsten Woche meinen Source zur Distri auf github bereitzustellen. Dann kannst du dir das vieleicht was abgucken.

  • Manche Skindesigner skins liefern eigene fonts mit, jedoch habe ich noch nicht herausgefunden, wo ich diese fonts ablegen müsste :/ kann mir hier jemand unterstützen?

    VDR1: Intel NUC8I3BEK - OctopusNet - yavdr-ansible focal

    VDR2: Intel NUC7CJYH2 - OctopusNet - yavdr-ansible focal

  • Wenn wir also mit dem softhdodroid weiter machen wollen dann müssen wir bei Coreelec bleiben

    Ich habe nicht vor zu wechseln. Die Box (inkl. Ausgabe) macht was sie soll und das gut :)

    Ich frage mich wie das bei einer Mali-450 GPU aussieht. Und könnte man das durch eine Mesa Version ersetzten die dann auch die Mali 450 mit GL/ES 3.0 versorgt.

    Das war viel weiter oben. libMali.m450.so oder ähnlich. Wenn es gelingt, Mesa zu kompilieren oder eine Version zu finden, die funktioniert, könnte man beim Start des VDR den Link in /var/lib auf etwas anderes umbiegen.


    Ich habe bei meiner Distribution VDR-Distribution für CoreELEC als Kodi addons

    es vermieden Erweiterungen direkt im CE git zu committen.

    Genau das hatte ich auch überlegt, aber dann war der Komfort bei der Entwicklung wichtiger. VDR/Plugins als Addon können binär über ein Repository angeboten werden. Mittlerweile nutze ich persönlich nur noch die kompletten Image Updates. Das geht schnell und bequem.

    Ich habe bisher nie PIP verwendet, aber so langsam könnte ich mich daran gewöhnen und das geht dann nur mit dem passendem Kernel.

  • Manche Skindesigner skins liefern eigene fonts mit, jedoch habe ich noch nicht herausgefunden, wo ich diese fonts ablegen müsste kann mir hier jemand unterstützen?

    Da sprichst du was an. Fonts in /storage/.fonts sollten theoretisch funktionieren, fc-list zeigt diese auch an. Und es hat tatsächlich mal funktioniert, aber sie werden aus irgendwelchen Gründen von VDR nicht mehr gefunden/gelesen und ich habe nicht herausgefunden, warum. Die Fonts, die ich gefunden habe, installiere ich mittlerweile im Image selbst. Dazu habe ich fontconfig noch ein eigenes Font-Verzeichnis hinzugefügt. Die Fonts, die ich in das Image einbinde, findest du im Repository Fonts.


    Ich denke, ich könnte genauso noch ein weiteres Verzeichnis irgendwo in storage hinzufügen. /storage/.config/vdropt/fonts? Oder was anderes oder doch hart /storage/.fonts? Also irgendwas, in dem man neue Fonts für VDR/Skins hinzufügen kann, falls gewünscht.

  • Wie Paulaner bereits schrieb ist Coreelec die einzige Möglichkeit für eine volle Unterstützung von Amlogic.


    Für Allwinner und Rockchip kann (muss) man Libreelec mit vdr-plugin-softhddevice-drm verwenden. Das funktioniert auch mit Amlogic dann aber mit den Einschränkungen.


    Für eine Tanix TX6 und QBox+ habe ich das schon mal ausprobiert. Bis auf Wakeup per Remote funktioniert das auch brauchbar.

  • Ich habe bisher nie PIP verwendet, aber so langsam könnte ich mich daran gewöhnen und das geht dann nur mit dem passendem Kernel.

    Kannst Du bitte mal in Video Treiber für Odroid-N2+ (softhdodroid) schauen? Ich brauche den passenden Kernel inkl. aktueller DVB-Treiber, möchte aber bei meiner Installation aus CoreElec mit Ubuntu-chroot bleiben.

    ACT-620, Asrock B75 Pro3-M, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.

  • Dr. Seltsam Für den neuen Kernel musst Du Dir das CE aus dem github laden in der Version, die Du benutzt (also z.B. 19.3 oder 19.4 oder was auch immer). Dann löschst Du den Patch (den Du ja schon selbst erwähnt hast). Jetzt gibt es 2 Möglichkeiten.

    1. Du baust Dir das gesamte CE neu, packst das tar-File in das .update-Verzeichnis und bootest neu.

    2. Du generierst Dir nur den Kernel (ohne den Patch). Ich glaube, dafür bist Du im script-Verzeichnis build linux aufrufen. Dann müsstest Du schauen, wie CE kernel.img zusammenbaut (ich habe das selbst nicht nachvollzogen) und dann ersetzt Du auf der unter /flash gemounteten Partition (re-mount rw) die selbige Datei.

    Der erste Weg sollte deutlich einfacher sein, allerdings dauert das Kompilieren auch deutlich länger.

  • weisst Du zufällig, in welcher Umgebung man das bauen muss? Ich meine gelesen zu haben, dass es Ubuntu 20.04 ist.
    Meinst Du der Kernel ist mit der kleinen Änderung dann noch kompatibel zu den DVB-Treibern aus dem CE addon-Paket?

    ACT-620, Asrock B75 Pro3-M, Intel Core i3-3240, 4 GB DDR3 RAM 1600 MHz, passive Geforce GT1030 von MSI, Sandisk 2TB SSD, 2xWinTV DualHD, Atric-IR-Einschalter. SW: Xubuntu 20.04 auf 64GB Sandisk SSD.