CVS/OE-Imagebau für Anfänger

  • Nachdem ich hier im Forum gesucht aber keine aktuellen Anleitungen gefunden hatte, habe ich ein Weilchen herumprobiert wie man ein aktuelles Image erstellen kann.


    Anleitung für Ubuntu (32bit - mit 64bit nicht getestet) 10.10 - ca. 25GB freier Platz


    Installation der benötigten Pakete

    Code
    sudo apt-get install git build-essential subversion cvs help2man texinfo diffstat gawk texi2html

    Bin nicht ganz sicher ob das folgende Paket wirklich nötig ist, es wurde aber an einer Stelle empfehlen

    Code
    sudo apt-get install python-dev
    svn co http://codespeak.net/svn/psyco/dist/ psyco-dist
    cd psyco-dist
    sudo python setup.py install

    Dann das folgende Makefile runterladen, am besten in ein eigenes Verzeichnis kopieren, z.B. mit

    Code
    make -f Makefile-opendreambox-1.6 MACHINE=dm8000

    für den Bau eines Images für die Dreambox 8000 configurieren (man kann Einstellungen auch in Build.conf vornehmen) und mit

    Code
    make -f Makefile-opendreambox-1.6 image

    den ganzen Prozess starten. Insgesamt hat der Prozess unter VMWare Fusion gut 8 Stunden gedauert und am Ende war das fertige Image in ./dm8000/build/tmp/deploy/images/ .


    CrossEPG-Patch integrieren: Habe keine bessere Möglichkeit gefunden, vielleicht geht es ja eleganter.


    - Image regulär erstellen
    - epgcache.cpp mit "find -name epgcache.cpp" suchen
    - den Patch von hier runterladen und in das Verzeichnis mit epgcache.cpp kopieren
    - patch anwenden

    Code
    patch -p0 < enigma2_crossepg_patch_v2_1.patch


    - enigma2 neu compilieren

    Code
    bitbake -c compile enigma2 -f


    und abschließend
    - alle ipks/das image neu erstellen was aber nur wenige Minuten dauert

    Code
    make -f Makefile-opendreambox-1.6 image


    Kopiert man jetzt den Ordner ipk, samt Unterordnern, auf einen lokalen Server, ändert die Links in den Dateien "all-feed.conf", "dm8000-feed.conf", "mipsel-feed.conf" im Ordner /etc/opkg, kann man dann problemlos Paket dazuinstallieren/entfernen.


    Will man Änderungen an den vorinstallierten Plugins vornehmen sollte man sich "task-opendreambox-base.bb", "task-opendreambox-enigma2.bb" im recipes-Ordner anschauen. Für meine DM8000 habe ich z.B. DVDBurn entfernt was gewaltig Platz gespart hat, dcamd entfernt, ...


    Würde mich sehr freuen wenn mir jemand noch dabei helfen könnte wie ich experimental Images erstelle, wie man z.B. andere Git-Repositories nutzt/integriert, wie man Plugins wie z.B. aihdcontroller ins Image integriert, ... Entsprechende Beiträge würde ich dann hier im ersten Post einbauen.

    Edited 4 times, last by tom04 ().

  • Naja, es ist ein etwas anderer Weg und bei mir hat es auch mit neuesten Ubuntu-Versionen funktioniert. Keine Ahnung was das Problem war, mit dem install.sh-Skript habe ich es in mehreren Versuchen mit Ubuntu nicht hingekriegt - hatte es mehrmals nach Anleitung probiert und auch etliche Seiten durchgelesen.

  • Quote

    Original von tom04
    Naja, es ist ein etwas anderer Weg und bei mir hat es auch mit neuesten Ubuntu-Versionen funktioniert. Keine Ahnung was das Problem war, mit dem install.sh-Skript habe ich es in mehreren Versuchen mit Ubuntu nicht hingekriegt - hatte es mehrmals nach Anleitung probiert und auch etliche Seiten durchgelesen.


    Ging mir genauso.
    Nachdem ich es so gemacht habe wie du es beschrieben hast, lief alles durch und ich habe ein Image für die 8000er erstellt.
    Dank Wiki habe ich dann noch das Programm kompiliert (MPD 0.16) was ich haben wollte. Läuft auch perfekt auf meiner Box.
    Nun wollte ich es noch in ein .ipk packen, finde aber keine richtige Hilfe dazu.
    Wichtig ist mir das ich das .ipk auf meinem Linux PC (Ubuntu 32bit - mit 64bit bekam ich immer Fehler) erstellen will und nicht auf der Dream (dafür gibt es ja in Reichis Wiki eine Anleitung).
    Vielleicht kann ja mal jemand erläutern wie ich auf einem Linux System mit OE Umgebung ein ipk erstellen kann.

  • Quote

    Originally posted by neighbour


    Ging mir genauso.
    Nachdem ich es so gemacht habe wie du es beschrieben hast, lief alles durch und ich habe ein Image für die 8000er erstellt.

    Freut mich zu hören. Das war auch die "Zielgruppe" dieses Beitrags - Leute die es mit der install.sh-Methode nicht hinkriegen, zu motivieren es weiter zu probieren.


    Quote

    Vielleicht kann ja mal jemand erläutern wie ich auf einem Linux System mit OE Umgebung ein ipk erstellen kann.

    Ich würde die Frage hier stellen. Habe es mit der Methode auf der Dreambox probiert und da es funktioniert hat, habe ich nicht weiter rumprobiert.

    Edited once, last by tom04 ().

  • Danke für die Info! Habe mich auch Wochenlang mit dem install-Skript herumgeärgert (sorry - nichts für ungut, aber es ist mir auch so vorgekommen, dass es nur für Uralt-Distributionen geschrieben wurde) und nur 1.5 zum laufen gebracht, der 1.6 build hat immer irgendwo gekracht (habe Ubuntu 10.4.1 LTS). Gestern abend habe ich es genau so probiert und heute habe ich mir das Resultat angesehen.


    Fazit: So ging es auf Anhieb - viel einfacher und ohne "voodoo" :hurra: !


    Den einzigen Unterschied habe ich im devshell gemerkt. Kann aber sein, dass dies auf Unterschiede 1.5/1.6 zurückzuführen ist, ich kenne es nur für 1.5. Die Suche hat mir da aber auch nicht geholfen...


    Beim "source build/env.source" + "bitbake devshell" läuft alles ohne (sichtbarer) Fehlermeldung durch, aber eine Shell wird nicht geöffnet und die Variablen sind nicht gesetzt. Habe mich mit der TERMCMD Variable herumgespielt und z.B. 'konsole -T "$TERMWINDOWTITLE"' probiert (mein Verdacht war, dass der default nun xterm ist, ich aber über ssh auf die Linuxmaschine zugreife und X11 nicht läuft). Hatte aber keinen Erfolg. Kein Fehler, keine Shell.


    Habe aber ein Script "build/tmp/deploy/addons/mipsel-oe-linux-opendreambox-dm8000-devshell" gefunden - einfach aufgerufen und voila - da war sie die neue Shell samt Umgebung! Ev. gehts ja jemanden andern auch so wie mir... :rolleyes:


    Danke nochmal!

    Edited 4 times, last by wope ().

  • Hi,
    erstmal danke für den Beitrag, mit install.sh bin ich nicht arg weit gekommen.
    Hier schon um einiges weiter...
    Ubuntu 10.10 in Vmware, wie oben beschrieben vorgegangen:

    Code
    NOTE: Handling BitBake files: - (8189/8189) [100 %]
    NOTE: Parsing finished. 7548 cached, 315 parsed, 326 skipped, 2 masked.
    NOTE: Resolving any missing task queue dependencies
    NOTE: Preparing runqueue
    NOTE: Executing runqueue
    NOTE: Running task 1 of 2278 (ID: 16, /home/user/dmm/dmmtest/dm800/openembedded/recipes/shasum/shasum-native.bb, do_setscene)
    ERROR: fork failed: 12 (Cannot allocate memory)
    NOTE: Tasks Summary: Attempted 0 tasks of which 0 didn't need to be rerun and 0 failed.
    make: *** [image] Error 1


    Was könnte das sein?

  • Danke für die Info,
    lag am Ram-Speicher der VM.
    Da hätt ich auch selber draufkommen können...


    Mal sehen wie weit es jetzt läuft :)

  • Um in cleanes CVS zu kompilieren ist der Weg aber seit geraumer Zeit unnötig da es tagesaktuelle Images gibt, beim reinpatchen von eigenen Sachen ist es allerdings eine sinnvolle Geschicht.

  • Quote

    Originally posted by skywatcher
    Um in cleanes CVS zu kompilieren ist der Weg aber seit geraumer Zeit unnötig da es tagesaktuelle Images gibt, beim reinpatchen von eigenen Sachen ist es allerdings eine sinnvolle Geschicht.

    Jo, denke dass die meisten hier wissen dass es die täglichen Updates gibt. ;) Da ich den CrossEPG-Patch brauche, würde ich eher iCVS oder Oozoon bevorzugen.


    Mir geht es aber um das Gefühl dass man es auch selber hinkriegt, außerdem will ich hier eine Box hinstellen die am Internet hängt deren Updates ich aber selber steuer, das Image will ich selber zusammenstellen so dass ich ein absolut leanes Image habe (momentan fast 18MB frei) und ich will die geplante zweite Dreambox ohne viel Aufwand identisch einrichten.

  • Es werkelt noch, aber so nebenbei stellt sich ne Anfänger-Frage.


    Wenn ich irgendwas in den Sourcen ändern würde, zb Kernel-Einstellungen in defconf, wird das dann auch verwendet wenn ich danach nochmal neu backen lasse oder geht das auch für ich nenns mal "Teile"?

  • Quote

    Originally posted by Zonk2007
    Wenn ich irgendwas in den Sourcen ändern würde, zb Kernel-Einstellungen in defconf, wird das dann auch verwendet wenn ich danach nochmal neu backen lasse oder geht das auch für ich nenns mal "Teile"?


    Es geht auch dass man Teile modifiziert, neu erstellt/compiliert und dann ein neues Image erstellt. Habe es so beim CrossEPG-Patch gemacht, weiß aber nicht ob es eleganter geht: also erst patch angewendet, dann mit

    Code
    bitbake -c compile enigma2 -f

    den geänderten code verarbeitet und dann mit

    Code
    make -f Makefile-opendreambox-1.6 image

    alles neu erstellt, wobei dabei dann nur die geänderten Pakete neu eingebunden wurden. Einzelne Pakete sollten auch mit dem entsprechenden BB funktionieren.


    Würde mich freuen wenn mir jemand auch mit meinem Problem (Frage bzgl. den verschiedenen Branches bzw. wie man aktuelle Plugins wie aihdcontroller holt/einbindet) helfen könnte.

    Edited once, last by tom04 ().

  • Kann ich mir auf diesem Weg auch Linux Tools wie nc (netcat) für die Dreambox kompillieren? Falls ja, wie gehe ich vor?

  • hallo,
    ich habe auch verzweifelt versucht eine Image für meine dm500s zu backen, immer scheiterte ich am linux-2.6.9.tar.bz2, dieses Kernelpaket wurde aus den Repos runtergeladen, konnte aber nicht entpackt werden etc. Ich habe es auch aus anderen Quellen manuell runtergeladen, wusste aber dann nicht wie weiter...
    Würde alternativ so gerne eine neue Image für die DM500s backen, bin jetzt ein wenig unsicher,ob ich auf diese Weise ein cvs-Image für die DM500s backen kann, da hier von bitbake, openembedded etc. geredet wird, was nichts mit DM500s zu tun hat. Könnte ich auf diese Weise eine Image für die DM500s backen?
    Mein System:
    Debian Squeeze/LXDE.
    Danke schon mal im voraus.

  • Hi,
    ich hätte mal ein paar grundsätzliche Fragen:


    Ich auf meinem Ubuntu (11.10) die folgende Zeile ausgeführt


    Code
    make -f Makefile-opendreambox-1.6 MACHINE=dm8000


    Dies erstellt die Openembedded Umgebung für die Dreambox, richtig?


    Kann ich damit - ohne vorher ein Image zu backen -, z. B. einen Treiber kompilieren.


    Also direkt die devshell starten und mittels einen einfachen "make" eine *.ko erstellen und wird der Treiber dann automatisch für die mipsel-Architektur erstellt?


    danke
    kos

  • Hi nochmal, irgendwie komme ich nicht weiter.
    Ich habe nach dem GP-Wiki mit bitbake die devshell erstellt und gestartet.


    Darin führe ich ein make aus, um den Treiber zu kompiliern (Treiberquelle: hier)


    Das make läuft auch durch und ich erhalte ein *.ko, aber m. E. wird der Treiber für die falsche Architektur gebaut.
    Ich habe nur ein makefile und kein configfile.


    Was muss ich anpassen, damit der Treiber für die Dreambox gebaut wird.


    tia
    kos