Images erstellen und Programme kompilieren unter OE 2.2: Unterschied zwischen den Versionen

Aus Gemini-Wiki
Zur Navigation springen Zur Suche springen
 
(14 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
{|width="40%"
 +
|[[Bild:deutsch.png]] - [[Images erstellen und Programme kompilieren unter OE 2.2|in Deutsch]]
 +
|[[Bild:english.png]] - [[Build images and compile programs with OE 2.2|in English]]
 +
|}
 +
 
{{Achtung| Dieser Artikel erfordert mehr Erfahrung im Umgang mit der Dreambox / Linux und ist daher nur für fortgeschrittene Benutzer gedacht.}}
 
{{Achtung| Dieser Artikel erfordert mehr Erfahrung im Umgang mit der Dreambox / Linux und ist daher nur für fortgeschrittene Benutzer gedacht.}}
 
Der Beitrag beschreibt das Einrichten der [[OE 2.2]] Entwicklungsumgebung unter [http://de.wikipedia.org/wiki/Linux Linux], um [[CVS / OE - Image|Images]] und Programme für die Dreambox zu bauen. Unterstützt werden folgende Modelle:
 
Der Beitrag beschreibt das Einrichten der [[OE 2.2]] Entwicklungsumgebung unter [http://de.wikipedia.org/wiki/Linux Linux], um [[CVS / OE - Image|Images]] und Programme für die Dreambox zu bauen. Unterstützt werden folgende Modelle:
 
* DM 500 HD
 
* DM 500 HD
 
* DM 500 HD V2
 
* DM 500 HD V2
 +
* ''' DM 520'''
 +
* ''' DM 525'''
 
* DM 800 HD SE
 
* DM 800 HD SE
 
* DM 800 HD SE V2
 
* DM 800 HD SE V2
 +
* '''DM 820 HD'''
 
* DM 7020 HD
 
* DM 7020 HD
 
* DM 7020 HD V2
 
* DM 7020 HD V2
Zeile 10: Zeile 18:
 
* DM 8000 HD PVR
 
* DM 8000 HD PVR
  
{{Warnung|Nicht alle Boxen stellen genug internen Flashspeicher zur Verfügung, um ein Image auf der Dreambox zu flashen. Es könnte möglich sein, von externen Speichermedien oder via Netzwerk zu booten! Auf der '''DM 7080 HD''' werdet ihr aber keine Probleme haben.}}
+
{{Warnung|Im Moment ist OE 2.2 nur auf der DM 7080 HD / DM 820 HD / DM 52X lauffähig. Alle anderen Dreamboxmodelle werden nicht von [http://www.dream-multimedia-tv.de/en DMM] unterstützt. Selbst gebaute Images können aber mit viel Erfahrung auf den anderen Boxen zum Laufen gebracht werden.}}
  
 
== Unterstützte Betriebssysteme ==
 
== Unterstützte Betriebssysteme ==
Zeile 16: Zeile 24:
 
* Debian 7.6 "Wheezy" [i386, amd64]
 
* Debian 7.6 "Wheezy" [i386, amd64]
 
* Ubuntu 14.04.1 LTS "Trusty Tahr" [amd64]
 
* Ubuntu 14.04.1 LTS "Trusty Tahr" [amd64]
 +
* Ubuntu 14.10 "Utopic Unicorn" [amd64]
 
* Mint Linux 17 [amd64]
 
* Mint Linux 17 [amd64]
  
Zeile 21: Zeile 30:
 
Das Einrichten der OE 2.2 Entwicklungsumgebung und das spätere Erstellen von Images und der einzelnen Pakete (deb) benötigt weitere Pakete, welche nachfolgend beschrieben sind. Der folgende Absatz beschreibt die Installation der Abhängigkeiten für verschiedene Linux Distributionen:
 
Das Einrichten der OE 2.2 Entwicklungsumgebung und das spätere Erstellen von Images und der einzelnen Pakete (deb) benötigt weitere Pakete, welche nachfolgend beschrieben sind. Der folgende Absatz beschreibt die Installation der Abhängigkeiten für verschiedene Linux Distributionen:
  
=== Ubuntu / Mint ===
+
=== Debian / Ubuntu / Mint ===
 
Installiert die Abhängigkeiten mit folgendem Befehl:
 
Installiert die Abhängigkeiten mit folgendem Befehl:
 
<syntaxhighlight>
 
<syntaxhighlight>
Zeile 34: Zeile 43:
 
     Please install following missing utilities: wget
 
     Please install following missing utilities: wget
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== andere Distributionen ===
 +
Im englischsprachigen Wikibeitrag [http://www.openembedded.org/wiki/Getting_started Getting started] des Openembeddedprojekts werden die Abhängigkeiten für andere Distributionen beschrieben.
  
 
== Entwicklungsumgebung erstellen ==
 
== Entwicklungsumgebung erstellen ==
Zeile 69: Zeile 81:
 
Das Wunschimage könnt ihr für folgende Dreamboxtypen bauen.
 
Das Wunschimage könnt ihr für folgende Dreamboxtypen bauen.
 
* dm500hd, dm500hdv2, dm800se, dm800sev2, dm7020hd, dm7020hdv2, dm7080, dm8000
 
* dm500hd, dm500hdv2, dm800se, dm800sev2, dm7020hd, dm7020hdv2, dm7080, dm8000
 
{{Warnung|Nicht alle Boxen stellen genug internen Flashspeicher zur Verfügung, um ein Image auf der Dreambox zu flashen. Es könnte möglich sein, von externen Speichermedien oder via Netzwerk zu booten! Auf der DM 7080 HD werdet ihr aber keine Probleme haben.}}
 
  
 
Startet das Erstellen mit folgendem Befehl für den gewünschten [[Dreambox-Varianten|Dreamboxtyp]] (z.B. für die DM 7080 HD). Das Herunterladen mit anschließendem Erstellen des Images und Paketen benötigt seine Zeit. Seid also bitte bei dem Vorgang sehr geduldig. Das Bauen benötigt je nach Rechnerleistung mehrere Stunden und der Speicherplatz pro Image beträgt ca. 38GB.
 
Startet das Erstellen mit folgendem Befehl für den gewünschten [[Dreambox-Varianten|Dreamboxtyp]] (z.B. für die DM 7080 HD). Das Herunterladen mit anschließendem Erstellen des Images und Paketen benötigt seine Zeit. Seid also bitte bei dem Vorgang sehr geduldig. Das Bauen benötigt je nach Rechnerleistung mehrere Stunden und der Speicherplatz pro Image beträgt ca. 38GB.
Zeile 131: Zeile 141:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
Wird das gewünschte Paket gefunden, kann es wieder mit dem Befehl <code>"bitbake $paketname"</code> erstellt werden. Erscheint das Wunschpaket nicht, muss es mit einem eigenen oder angepassten Rezept erstellt werden. Oder man benutzt den [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiler] (<code>cross-compile.env</code> Skript), um den Quellcode einer Anwendung / Bibliothek zu kompilieren.
 
Wird das gewünschte Paket gefunden, kann es wieder mit dem Befehl <code>"bitbake $paketname"</code> erstellt werden. Erscheint das Wunschpaket nicht, muss es mit einem eigenen oder angepassten Rezept erstellt werden. Oder man benutzt den [http://de.wikipedia.org/wiki/Cross-Compiler Cross-Compiler] (<code>cross-compile.env</code> Skript), um den Quellcode einer Anwendung / Bibliothek zu kompilieren.
 +
 +
=== Hilfreiche bitbake Befehle ===
 +
Listet alle Tätigkeiten (Tasks) von einem gewünschten Paketnamen auf.
 +
<syntaxhighlight>
 +
bitbake -c listtasks $paketname
 +
</syntaxhighlight>
 +
 +
Löscht das Arbeitsverzeichnis eines gewünschten Paketes
 +
<syntaxhighlight>
 +
bitbake -c clean $paketname
 +
</syntaxhighlight>
 +
 +
Baut ein manuell, definiertes Rezept.
 +
<syntaxhighlight>
 +
bitbake -b <pfad/zum/dem/recipe.bb>
 +
</syntaxhighlight>
 +
 +
Der folgende Befehl wird zum Debuggen verwendet, wenn Variablen oder Dateien nicht gefunden werden.
 +
<syntaxhighlight>
 +
bitbake -D -D -D
 +
</syntaxhighlight>
  
 
== Weblinks ==
 
== Weblinks ==

Aktuelle Version vom 4. November 2016, 18:30 Uhr

Deutsch.png - in Deutsch English.png - in English
Ambox attention.png Dieser Artikel erfordert mehr Erfahrung im Umgang mit der Dreambox / Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Der Beitrag beschreibt das Einrichten der OE 2.2 Entwicklungsumgebung unter Linux, um Images und Programme für die Dreambox zu bauen. Unterstützt werden folgende Modelle:

  • DM 500 HD
  • DM 500 HD V2
  • DM 520
  • DM 525
  • DM 800 HD SE
  • DM 800 HD SE V2
  • DM 820 HD
  • DM 7020 HD
  • DM 7020 HD V2
  • DM 7080 HD
  • DM 8000 HD PVR
Ambox warning.png Im Moment ist OE 2.2 nur auf der DM 7080 HD / DM 820 HD / DM 52X lauffähig. Alle anderen Dreamboxmodelle werden nicht von DMM unterstützt. Selbst gebaute Images können aber mit viel Erfahrung auf den anderen Boxen zum Laufen gebracht werden.

Unterstützte Betriebssysteme

Für das erstellen der Entwicklungsumgebung wird zwingend Linux vorausgesetzt. In der Theorie können verschiedene Linux Distributionen eingesetzt werden. Aber nicht viele sind fähig OpenDreambox zu bauen. Die folgenden Distributionen sind dazu in der Lage ;)

  • Debian 7.6 "Wheezy" [i386, amd64]
  • Ubuntu 14.04.1 LTS "Trusty Tahr" [amd64]
  • Ubuntu 14.10 "Utopic Unicorn" [amd64]
  • Mint Linux 17 [amd64]

Abhängigkeiten installieren

Das Einrichten der OE 2.2 Entwicklungsumgebung und das spätere Erstellen von Images und der einzelnen Pakete (deb) benötigt weitere Pakete, welche nachfolgend beschrieben sind. Der folgende Absatz beschreibt die Installation der Abhängigkeiten für verschiedene Linux Distributionen:

Debian / Ubuntu / Mint

Installiert die Abhängigkeiten mit folgendem Befehl:

sudo apt-get install git build-essential diffstat texi2html texinfo subversion chrpath cvs gawk gettext-lint autopoint

Fehlen Pakete, bricht später die Wunschimageerstellung mit einer Fehlermeldung ab. Wenn z.B. wget nicht installiert ist, mit:

ERROR:  OE-core's config sanity checker detected a potential misconfiguration.
    Either fix the cause of this error or at your own risk disable the checker (see sanity.conf).
    Following is the list of potential problems / advisories:
 
    Please install following missing utilities: wget

andere Distributionen

Im englischsprachigen Wikibeitrag Getting started des Openembeddedprojekts werden die Abhängigkeiten für andere Distributionen beschrieben.

Entwicklungsumgebung erstellen

Öffnet das Terminal und wechselt in euer Wunschverzeichnis, wo das Grundgerüst der Entwicklungsgebung abgelegt werden soll. Die Daten aus dem git Repository sind nach Ausführen des folgenden Befehls im Verzeichnis opendreambox zu finden.

git clone -b dora git://git.opendreambox.org/git/opendreambox.git

Wechselt nun in das opendreambox Verzeichnis mit folgendem Befehl.

cd opendreambox

Entwicklungsumgebung aktualisieren

Aktualisiert nun die OE 2.2 Entwicklungsumgebung (Dreambox SDK) mit folgendem Befehl und wartet geduldig, bis der Vorgang mit der Meldung [*] The Dreambox SDK is now up-to-date abgeschlossen ist.

make update

git Benutzerinformationen

Gebt eure Email Adresse und den Benutzernamen mit folgenden Befehlen ein (wenn nicht schon gemacht für ältere OE Versionen z.B. OE 2.0).

git config --global user.email "you@example.com"
git config --global user.name "Your Name"

Informationen zur Entwicklungsumgebung

Mit folgendem Befehl können hilfreiche Informationen zu der Entwicklungsumgebung angezeigt werden.

make help

Wunschimage bauen

Das Wunschimage könnt ihr für folgende Dreamboxtypen bauen.

  • dm500hd, dm500hdv2, dm800se, dm800sev2, dm7020hd, dm7020hdv2, dm7080, dm8000

Startet das Erstellen mit folgendem Befehl für den gewünschten Dreamboxtyp (z.B. für die DM 7080 HD). Das Herunterladen mit anschließendem Erstellen des Images und Paketen benötigt seine Zeit. Seid also bitte bei dem Vorgang sehr geduldig. Das Bauen benötigt je nach Rechnerleistung mehrere Stunden und der Speicherplatz pro Image beträgt ca. 38GB.

make image MACHINE=dm7080

Images und Pakete

Die erstellten Images findet ihr im opendreambox Verzeichnis unter folgendem Pfad.

/opendreambox/build/dm7080/tmp-xxx/deploy/images

Pakete (deb) sind im folgenden Verzeichnis zu finden.

/opendreambox/build/dm7080/tmp-xxx/deploy/deb

Entwicklungsumgebung aktualisieren

Aktualisiert die Entwicklungsumgebung mit folgendem Befehl in eurem opendreambox Verzeichnis. So werden neue Änderungen im git in euer Dreambox SDK einfliessen.

make update

Aktuelles Image erstellen

Startet die Imageerstellung für eure Wunschbox (z.B. DM 7080 HD) mit dem Befehl:

make image MACHINE=dm7080

Pakete mit BitBake erstellen

Mit den vorhandenen Recipes (Rezepten) im Dreambox-SDK könnt ihr mit dem bitbake Befehl Pakete (*.deb) erstellen. Zuerst muss mit folgendem Befehl die Umgebung für bitbake geschaffen werden. Wechselt in das opendreambox Verzeichnis und gebt folgenden Befehl ein.

source bitbake.env

Öffnet das build Verzeichnis von eurem Dreamboxtyp. Für die DM 7080 HD wäre der Befehl wie folgt.

cd build/dm7080

Das Erstellen von einem Paket erfolgt mit dem Befehl.

bitbake $Paketname

Für das Programm atftp ist der Befehl:

bitbake atftp

Die erstellten Pakete sind nach erfolgreichem Bauen im folgenden Verzeichnis zu finden.

/opendreambox/build/dm7080/tmp-xxx/deploy/deb

Verfügbare Rezepte anzeigen

Die verfügbaren Rezepte für das Bauen mittels bitbake können mit folgendem Befehl aufgelistet werden.

bitbake -s

Da die Liste relativ lang ist, könnt ihr das Suchergebnis einschränken:

bitbake -s | grep $wunschpaket

Wird das gewünschte Paket gefunden, kann es wieder mit dem Befehl "bitbake $paketname" erstellt werden. Erscheint das Wunschpaket nicht, muss es mit einem eigenen oder angepassten Rezept erstellt werden. Oder man benutzt den Cross-Compiler (cross-compile.env Skript), um den Quellcode einer Anwendung / Bibliothek zu kompilieren.

Hilfreiche bitbake Befehle

Listet alle Tätigkeiten (Tasks) von einem gewünschten Paketnamen auf.

bitbake -c listtasks $paketname

Löscht das Arbeitsverzeichnis eines gewünschten Paketes

bitbake -c clean $paketname

Baut ein manuell, definiertes Rezept.

bitbake -b <pfad/zum/dem/recipe.bb>

Der folgende Befehl wird zum Debuggen verwendet, wenn Variablen oder Dateien nicht gefunden werden.

bitbake -D -D -D

Weblinks