[Howto] Openelec selber kompilieren

  • Hi,


    Da ich öfters mal eine PN bekomme, mit der Frage wie man OpenELEC kompiliert, habe ich mich entschlossen, mal ein kleines Howto zu schreiben. OpenELEC ist - für die Leute, die das noch nicht kennen - eine Art "Firmware" mit XBMC. Das system ist klein (ca 120 MB) und beinhaltet alles, was benötigt wird um einen schnellen und schlanken Mediacenter zu installieren. Das Medium läßt sich auf USB-Stick, SD oder SSD installieren und richtet neben einem Readonly System auch ein Bereich namens "storage" ein, worin u.a. auch die Config gespeichert wird.


    Ist das System erfolgreich installiert, gibt es im storage Bereich ein Versteckter Ordner (über SMB ganze normal zu erreichen) namens .update, sollte man sein eigenes Images mal aktualisieren wollen ,müssen die zwei Dateien KERNEL und SYSTEM dort hinein. Nach einem Reboot wird das System dann on-the-fly aktualisiert.


    So, genug geschwafelt, fangen wir mal an. Doch zuerst ein Tipp, wer so wie ich, als root kompiliert, fällt früher oder später auf den Arsch, die Scripte sind so gestaltet das man als User kompilieren MUSS, richtet euch also entweder einen extra-user ein und kompiliert mit diesem oder meldet euch als User an.


    Ich habe das ganze im Home-Dir eines neues Users kompiliert. Als System kommt bei mir Ubuntu 10.04.3 LTS im Einsatz, laut openelec gehen auch andere, die sind aber von mir nicht getestet und ich beschreibe daher AUSDRÜCKLICH nur den Einsatz in 10.04.3


    Ich weiss leider nicht mehr genau welche Abhängigkeiten notwendig sind, "build-essential" und "git-core" sind auf jedenfall notwendig. Ich kompiliere Übrigens für meine Zbox ID HD-40, das bedeutet, ich nehme dieses System auch als Beispiel.


    Ich gehe ab hier davon aus, das Ihr zumindest einmal OpenELEC lauffähig installiert und gestartet habt. Man kann die 1.02 von hier nehmen.


    Ok, let´s go!


    Wir checken zuerst mal die neusten Daten aus dem Git aus und wechseln in das Verzeichnis OpenELEC.TV

    Code
    git clone https://github.com/OpenELEC/OpenELEC.tv.git
    cd OpenELEC.tv.git


    Nun können wir mit dem kompilieren anfangen, bevor wir aber "make" eingeben sollten wir uns entscheiden, für welche -optimierte - Plattform wir kompilieren wollen. Im Verzeichnis ./projects (innerhalb des OpenELEC.TV Verzeichnisses) gibt es folgende Auswahl:


    ATV = AppleTV ,
    Fusion = Fusion Plattform
    Generic = i386
    Generic_OSS = wie oben nur mit OSS anstelle Alsa
    Intel = Intel
    ION = ION optimiert (ideal für zbox ;) )
    Ultra = Plattform


    Dann gibt es zusätzlich die Möglichkeit anzugeben, ob wir 32/64 bit haben wollen und man muss festlegen, ob man PVR Unterstützung haben möchte (also xvdr, xbmc-pvr und neu, vdr als addon). Ich kompiliere für meine Zbox bspw. so (Im Root-Verzeichnis OpenELEC.TV/ eingeben):


    Code
    PROJECT=ION ARCH=x86_64 PVR=yes make


    Ab hier dauert das ganze mehrere Stunden bis es durch ist, sollte make zwischendurch abbrechen, keine Panik, einfach obigen Befehl wiederholen. Sollte es immernoch nicht klappen, fragt mal im OpenElec-Forum nach ;)


    Am Ende haben wir im Verzeichnis ./target/ zwei Dateien, eine hat die Endung .kernel die andere .system. Wir kopieren nun die beiden Dateien auf dem OpenELEC-PC ins Verzeichnis Udates, und benenne diese um. *.kernel in KERNEL und *.system in SYSTEM.


    Einmal neustarten und nun startet euer neues System. Wenn Ihr euch via SSH anmeldet, seht ihr das auch als Message bzw im XBMC unter Systeminfo.


    Wer mag, kann sich im Verzeichnis ./projects/XXX/ die Datei options mal ansehen, XXX entspricht dabei obig genannte Plattform, bei meinem ION bspw. ./projects/ION/options. Dort kann man einige dinge ändern, wie Arbeitsgruppe, Username, Standardpasswort etc...


    MfG
    KRis


    Edit 17.09.2011 - 20:21
    Es wird Pipelkas Openelec-Git verwendet, da darin auch das notwendige xbmc-xvdr-addon integriert ist. Danke an Jobbt für den Tipp!


    Edit 19.01.2012 - 20:13
    Howto angepaßt, es hat sich einiges getan ;)

    Intel DN2800MT 4GB RAM; 32GB mSata, Ubuntu 15.04, TVHeadend 4.1, Digibit R1 SatIP

    5 Mal editiert, zuletzt von kris ()

  • Hallo kris,


    danke für dein super how to zur addon erstellung.


    Aber wie muss ich überhaupt vdr und das vdr-plugin-xvdr für openelec kompilieren? Das kann ich doch nicht einfach unter ubuntu durchlaufen lassen -oder?
    Oder ist vdr im openelec-pvr mit dabei?


    Googeln unter openelec und vdr-plugin-xvdr ist für mich als laie nicht besonders ergiebig. :wand


    Könntest du da auch noch ein How-To basteln? ?(


    Danke und schöne Grüße



  • Hi,
    Unter Getting started und ist alles ganz gut erklärt.
    Wenn Ihr dann noch die Sources von pipelka nehmt, ist xvdr auch schon drin.
    Ich mach das unter Debian in einer chroot Umgebung.
    PROJECT=Generic läuft bei mir auf fast allem was eine Intel oder AMD-CPU hat :]
    mfg
    jobit

    OpenElec auf raspberry pi / Cubieboard2
    Fernbedienungen: Handy, Fhem

    Einmal editiert, zuletzt von jobit ()

  • Hi,



    Zitat


    danke für dein super how to zur addon erstellung.


    Aber wie muss ich überhaupt vdr und das vdr-plugin-xvdr für openelec kompilieren?
    [...]


    Könntest du da auch noch ein How-To basteln? ?(


    danke für die Blumen. Ein howto wie man ein vdr Plugin kompiliert werde ich nicht erstellen. Es gibt zuviele distris und jede macht es anders, frage daher den oder die Ersteller deiner distri.


    Das Plugin für vdr kann man auch aus dem git holen (den Link füge ich oben noch bei) und kompilieren wie jedes andere Plugin auch, für debian ist sogar alles vorbereitet (und ich meine auch für gentoo)


    MfG
    Kis

    Intel DN2800MT 4GB RAM; 32GB mSata, Ubuntu 15.04, TVHeadend 4.1, Digibit R1 SatIP

  • Hi,


    Zitat

    Wenn Ihr dann noch die Sources von pipelka nehmt, ist xvdr auch schon drin.


    cool, wooer kommt das denn? War das vor ein paar tagen auch schon da? :D


    Das schaue ich mir sofort mal an, danke


    MFG
    Kris

    Intel DN2800MT 4GB RAM; 32GB mSata, Ubuntu 15.04, TVHeadend 4.1, Digibit R1 SatIP

  • Vielen Danke für das tolle How-To. Habe ich in den zwei Wochen nachdem Du mich mit OpenELEC "angefixt" auch schon kleidvoll selber rausgefunden :D.


    Besonders gut ist der Tip mit dem "einfach make nochmal aufrufen". Da habe ich Tage für gebraucht. Und man muss wegen der kernel.org Downtime natürlich
    ein paar URLs in den meta-Dateien verbiegen...


    DU BIST EIN HELD!!! :respekt


    Im Ernst: findest Du auch, dass das Binary besser vorkonfiguriert ist, als das selber kompilierte? Meine Addons stehen z.B. auf Blacklistet und das Video muss
    erst noch anders skaliert werden...hmmm. Ich dachte, das müsste alles identisch sein.


    Im Moment hänge ich beim Konfigurieren der Fernbedienung. Habe eine laufende XBMC Installation von yaVDR mit Lircmap, remote und allem, aber OE nimmt
    was anderes. Habe eine Atric V5. Hat das schon jemand gemacht? Ich will meine Harmony One nicht umkonfigurieren :wow.


    GrK.

  • Hi,


    jobit
    danke für den Tipp, pipelkas openelec-repo zu nutzen, ist sogar aktueller als GUJS ;)


    Karlson

    Zitat

    Vielen Danke für das tolle How-To. Habe ich in den zwei Wochen nachdem Du mich mit OpenELEC "angefixt" auch schon kleidvoll selber rausgefunden .


    ich habe meine kompiliererei mittlerweile auf dem Server ausgelagert, der hat hei nichts zu tun. Das Zeug dauert aber auch ewig ;)


    Zitat

    Besonders gut ist der Tip mit dem "einfach make nochmal aufrufen". Da habe ich Tage für gebraucht. Und man muss wegen der kernel.org Downtime natürlich
    ein paar URLs in den meta-Dateien verbiegen...


    Wenn ich Dir noch ein Tipp mitgeben kann, sichere das sources Verzeichnis innerhalb von Openelec noch woanders hin. Gerade in der Anfangszeit (als ich bspw die PVR-Tastenfunktion eingepatcht habe) häufig das git neu geklont (also Verzeichnis openelec.tv gelöscht und neu runtergeladen) war das Gold wert, die Scripte laden somit nur die dinge runter die in den Meta-Packages mit einer neueren Versionsnr. hinterlegt sind.


    Zitat

    Im Ernst: findest Du auch, dass das Binary besser vorkonfiguriert ist, als das selber kompilierte?


    Ehrlich gesagt nicht, ich mache bei meinem Eigenkompilat immer ein update (also *.kernel und *.system in /storage/.update/ rein und neu starten), somit ändert sich an meiner Konfiguration genau gar nichts.


    Das wäre auch sehr ärgerlich, da ich mittlerweile eine stattliche remote.xml habe ;)


    Zitat

    Habe eine laufende XBMC Installation von yaVDR mit Lircmap, remote und allem, aber OE nimmt
    was anderes


    Dann kopiere einfach die Dateien von yavdr in OE. In OE ist das Userverzeichnis /storage, die xbmc Einstellungen findest Du in .xbmc die von Openelec in .config, für LIRC wird aber wohl nur die Lircmap.xml und die
    keymaps/remote.xml gebraucht. Ich habe eine USB-MCE und das läuft astrein out of the box.


    Wenn ich wieder mal etwas mehr zeit habe, werde ich noch etwas "howto" für das .config Verzeichnis erstellen (bspw Autostart-script diverse Modulkonfigurationen, oder s3 Wakeup mit MCE)


    MfG
    Kris

    Intel DN2800MT 4GB RAM; 32GB mSata, Ubuntu 15.04, TVHeadend 4.1, Digibit R1 SatIP

  • Moin,


    Zitat

    Dann kopiere einfach die Dateien von yavdr in OE. In OE ist das Userverzeichnis /storage, die xbmc Einstellungen findest Du in .xbmc die von Openelec in .config, für LIRC wird aber wohl nur die Lircmap.xml und die
    keymaps/remote.xml gebraucht. Ich habe eine USB-MCE und das läuft astrein out of the box.


    Tja, denau das funktioniert bei mir nicht. Ob es daran liegt, dass die serielle Schnittstelle nicht läuft, lirc_serial nicht läuft, oder eventlircd das nicht erkennt - keine Ahnung. Aber ich bleibe am Ball.


    zum Kompilieren habe ich mir übrigens extra eine virtuelle Maschine auf meinem Server eingerichtet. 2 Kerne, 1 GB RAM und 64 GB Platte. Ja, auch VDR ist bei mir Xen-virtualisiert. Der Client ist ein POV ION/Aton 330.


    GrK.

  • Hallo jobit,


    danke für deine Infos und Links zu pipelka.


    Ich hab mir jetzt das openelec-pvr aus dem pipelka-git gebaut. Das xvdr-addon ist auch wirklich schon drin. Aber wohl nicht vdr und das vdr-plugin-xvdr.


    Oder bin ich da irgendwie blind? ;(


    Bleibt dann bei mir die Frage, wie man unter Ubuntu ein vdr/plugins für openelec ertstellt. Da fehlt mir einfach das know-how.


    Wenn mir da einer helfen kann, währe super.


    Schöne Grüße

  • Hi,


    Das geile an Openelec ist, dass neben der extremen Kompaktheit (ca. 120 Mb), der super boot Geschwindigkeit (> 20s) das einbinden von weiteren Anwendungen völlig unabhängig von der jeweils verwendeten Distribution ist.
    Prinzipiell wird für eine neue Anwendung (VDR) z.B unter packages/multimedia ein Ordner "vdr" angelegt.
    Dort hinein kommen noch ein paar Scripte "build, install, unpack ...." und eine "meta" Datei. ( kann man sich alles bei den anderen Apps
    angucken :] ). Dann noch dem "image" Script bescheid geben das man gerne "vdr" haben möchte


    Z.B.#######################################
    # Multimedia support
    [ ! "$MEDIACENTER" = "no" ] && $SCRIPTS/install mediacenter
    [ "$VDR" = "yes" ] && $SCRIPTS/install vdr
    # Automounter support


    dann noch in z.B /projects/Generic/options ein
    # VDR support (yes / no)
    VDR="yes"


    und fertig ist der Lack.


    Da zur Zeit vdr auf dem Server läuft bestand für mich noch kein Bedarf VDR in Openelec ein zu fügen.
    Hatte ich aber schon mal mit vnsi-server. Wenn gewünscht kann ich die Dateien hier noch posten.


    Übrigens Addons werden auch sehr leicht erzeugt, ein "scripts/create_addon Airplayer-Suite" erzeugt selbiges und legt das ZIP File unter Openelec..../addons/ ab.


    mfg
    jobit

    OpenElec auf raspberry pi / Cubieboard2
    Fernbedienungen: Handy, Fhem

    4 Mal editiert, zuletzt von jobit ()

  • Hallo Jobit


    wenn du die Dateien/Scripte noch auf die Reihe bekommst das währe super :thumbup:


    Ich wüsste noch nicht mal welche vdr-sourcen ich nehmen sollte, ich denke mal e-tobi ist die richtige Wahl.


    Den Wechsel von vnsi auf xvdr sollte ich wohl hinbekommen, wenn ich mal für den Rest einen ungefähren Ansatz habe.


    mfg


    Teppel

  • kris: In deinem Quelltext sind ein paar Schreibfehler ;)


    Anbei mal meine Kurze Doku (eher die Abhängigkeiten für UBUNTU 11.04):

    Code
    sudo apt-get install git build-essential gawk make autopoint gperf autoconf automake m4 cvs libtool texinfo libncurses5-dev
    
    
    git clone https://github.com/pipelka/OpenELEC.tv.git
    cd OpenELEC.tv.git


    Bei mir war hier kein .git sondern:

    Code
    cd OpenELEC.tv/
    git checkout openelec-pvr
    
    
    PROJECT=ION ARCH=x86_64 make


    vdr-box

    3 Mal editiert, zuletzt von vdr-box ()

  • Ahoi Portal,


    da ja kernel.org down ist, hat jemand die aktuelle Download Liste.


    Danke vorab vdr-box

  • hi,


    und mit einem


    Code
    git clone --branch openelec-pvr https://github.com/pipelka/OpenELEC.tv.git


    sparen wir uns noch das

    Code
    cd OpenELEC.tv/
    git checkout openelec-pvr


    ;D
    mfg
    jobit


    PS: Teppel
    wenn ich wieder zu Hause bin, schiebe ich das "VDR-Zeug" hoch.


    @ vdr-box
    http://ftp.uni-frankfurt.de/Kernel/..... Ersatz für Kernel.org :]

    OpenElec auf raspberry pi / Cubieboard2
    Fernbedienungen: Handy, Fhem

    Einmal editiert, zuletzt von jobit ()

  • kris: Ich hoffe du bist nicht sauer das ich deinen Thread kapere ;) Ich bin heute aber in sehr piratiger Stimmung.


    Anbei die ersten Link Änderungen. Werde sie später auffüllen.


    Aktueller Stand vom: 2011-09-20 12:49 OPENELEC ist fertig kompiliert



    Ahoi vdr-box

    4 Mal editiert, zuletzt von vdr-box ()

  • schau mal in den commits vom original openelec-git von sgraue. Der Stefan hat da schon eine ganze Menge Downloadurls auf den aktuellen Stand gebracht.


    Hmm, du meinst wahrscheinlich "sraue" :) Finde da aber leider keinen passenden Eintrag.


    Ahoi vdr-box

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!