Build images and compile programs with 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 8: Zeile 8:
 
* 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 15: Zeile 18:
 
* DM 8000 HD PVR
 
* DM 8000 HD PVR
  
{{Warnung|At this moment the images will only run on the '''DM 7080 HD''', and not on the other listed Dreamboxes!}}
+
{{Warnung|At this moment the OE 2.2 can only be used on the DM 7080 HD / DM 820 HD / DM 52X. All other dreambox models are not supported by [http://www.dream-multimedia-tv.de/en DMM]. If you have a lot of experience, you might be able to get a self-build image running on other models.}}
  
 
== Supported operating systems ==
 
== Supported operating systems ==
Zeile 21: 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 26: Zeile 30:
 
The setup of the OE 2.2 development environment, and afterwards building the images and packages (deb) require some additional packages. The following sections describes the installation of the dependencies for the different Linux distros:
 
The setup of the OE 2.2 development environment, and afterwards building the images and packages (deb) require some additional packages. The following sections describes the installation of the dependencies for the different Linux distros:
  
=== Ubuntu / Mint ===
+
=== Debian / Ubuntu / Mint ===
 
Use the following command to install the dependencies:
 
Use the following command to install the dependencies:
 
<syntaxhighlight>
 
<syntaxhighlight>
Zeile 43: Zeile 47:
 
In [http://www.openembedded.org/wiki/Getting_started Getting started] of the Openembedded project the dependencies for other distros are described.
 
In [http://www.openembedded.org/wiki/Getting_started Getting started] of the Openembedded project the dependencies for other distros are described.
  
== Entwicklungsumgebung erstellen ==
+
== Create the development environment ==
Öffnet das Terminal und wechselt in euer Wunschverzeichnis, wo das Grundgerüst der Entwicklungsgebung abgelegt werden soll. Die Daten aus dem [http://de.wikipedia.org/wiki/Git git] Repository sind nach Ausführen des folgenden Befehls im Verzeichnis <code>opendreambox</code> zu finden.
+
Open the terminal and change the working directory, to the directory you want to use for the environment. The files of the [http://en.wikipedia.org/wiki/Git git] repository will be available in the directory <code>opendreambox</code> once the following command is executed.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
git clone -b dora git://git.opendreambox.org/git/opendreambox.git
 
git clone -b dora git://git.opendreambox.org/git/opendreambox.git
 
</syntaxhighlight>
 
</syntaxhighlight>
Wechselt nun in das <code>opendreambox</code> Verzeichnis mit folgendem Befehl.
+
Now you can enter the directory <code>opendreambox</code> with the following command.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
cd opendreambox
 
cd opendreambox
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Entwicklungsumgebung aktualisieren ===
+
=== Update the development environment ===
Aktualisiert nun die OE 2.2 Entwicklungsumgebung (Dreambox [http://de.wikipedia.org/wiki/Software_Development_Kit SDK]) mit folgendem Befehl und wartet geduldig, bis der Vorgang mit der Meldung <code>[*] The Dreambox SDK is now up-to-date</code> abgeschlossen ist.
+
Use the following command to update the OE 2.2 development environment (Dreambox [http://en.wikipedia.org/wiki/Software_Development_Kit SDK]). Have some patience and wait until the update is completed. At the end you will see <code>[*] The Dreambox SDK is now up-to-date</code>.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
make update
 
make update
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== git Benutzerinformationen ===
+
=== git user information ===
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]]).
+
Enter your email address and user name with following commands (if not done before for older OE version, e.g. [[OE 2.0 (en)|OE 2.0]]).
 
<syntaxhighlight>
 
<syntaxhighlight>
 
git config --global user.email "you@example.com"
 
git config --global user.email "you@example.com"
Zeile 68: Zeile 72:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Informationen zur Entwicklungsumgebung ===
+
=== Informations about the development environment ===
Mit folgendem Befehl können hilfreiche Informationen zu der Entwicklungsumgebung angezeigt werden.
+
The following command will display useful informations concerning the development environment.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
make help
 
make help
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Wunschimage bauen ===
+
=== Build an image ===
Das Wunschimage könnt ihr für folgende Dreamboxtypen bauen.
+
An image can be build for the following Dreamboxes.
 
* dm500hd, dm500hdv2, dm800se, dm800sev2, dm7020hd, dm7020hdv2, dm7080, dm8000
 
* dm500hd, dm500hdv2, dm800se, dm800sev2, dm7020hd, dm7020hdv2, dm7080, dm8000
  
{{Warnung|Die erstellten Images funktionieren im Moment nur auf der '''DM 7080 HD''' und nicht auf den anderen erwähnten Dreamboxen!}}
+
Start the building process with the following command for the desired [[Dreambox-Varianten|Dreambox type]] (e.g. for the DM 7080 HD). The download and the subsequent build of the image and packages can take a while. So please, be patient. The building process takes, depending on the resources, several hours and for every image approximately 38GB is needed.
 
 
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.
 
 
<syntaxhighlight>
 
<syntaxhighlight>
 
make image MACHINE=dm7080
 
make image MACHINE=dm7080
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Images und Pakete ===
+
=== Images and packages ===
Die erstellten Images findet ihr im <code>opendreambox</code> Verzeichnis unter folgendem Pfad.
+
The images can be found in the following paths of the <code>opendreambox</code> environment.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
/opendreambox/build/dm7080/tmp-xxx/deploy/images
 
/opendreambox/build/dm7080/tmp-xxx/deploy/images
Zeile 95: Zeile 97:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Entwicklungsumgebung aktualisieren ==
+
== Update the development environment ==
Aktualisiert die Entwicklungsumgebung mit folgendem Befehl in eurem <code>opendreambox</code> Verzeichnis. So werden neue Änderungen im git in euer Dreambox SDK einfliessen.
+
Use the following command in your <code>opendreambox</code> directory to update the development environment. As a result, the changes of the git will be transfered into your local Dreambox SDK.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
make update
 
make update
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Aktuelles Image erstellen ===
+
=== Build an image ===
Startet die Imageerstellung für eure Wunschbox (z.B. DM 7080 HD) mit dem Befehl:
+
Start the building process with the following command for the desired Dreambox type (e.g. for the DM 7080 HD).:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
make image MACHINE=dm7080
 
make image MACHINE=dm7080
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== Pakete mit BitBake erstellen ==
+
== Build packages with BitBake ==
Mit den vorhandenen Recipes (Rezepten) im Dreambox-SDK könnt ihr mit dem [http://en.wikipedia.org/wiki/BitBake bitbake] Befehl Pakete (*.deb) erstellen. Zuerst muss mit folgendem Befehl die Umgebung für <code>bitbake</code> geschaffen werden. Wechselt in das  <code>opendreambox</code> Verzeichnis und gebt folgenden Befehl ein.
+
With the available recipes of the Dreambox SDK it's possible to use the [http://en.wikipedia.org/wiki/BitBake bitbake] command to create packages (*.deb). First of all, create the <code>bitbake</code> environment with following commands.
 +
Go to the <code>opendreambox</code> directory before entering the command.
 
<syntaxhighlight>
 
<syntaxhighlight>
 
source bitbake.env
 
source bitbake.env
 
</syntaxhighlight>
 
</syntaxhighlight>
Öffnet das <code>build</code> Verzeichnis von eurem Dreamboxtyp. Für die DM 7080 HD wäre der Befehl wie folgt.
+
Open the <code>build</code> directory of your Dreambox type. For the DM 7080 HD the command is:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
cd build/dm7080
 
cd build/dm7080
 
</syntaxhighlight>
 
</syntaxhighlight>
Das Erstellen von einem Paket erfolgt mit dem Befehl.
+
The build of a package is done like this:
 
<syntaxhighlight>
 
<syntaxhighlight>
bitbake $Paketname
+
bitbake $Package_name
 
</syntaxhighlight>
 
</syntaxhighlight>
Für das Programm [http://sourceforge.net/projects/atftp atftp] ist der Befehl:
+
For the program [http://sourceforge.net/projects/atftp atftp] the command is:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
bitbake atftp
 
bitbake atftp
 
</syntaxhighlight>
 
</syntaxhighlight>
Die erstellten Pakete sind nach erfolgreichem Bauen im folgenden Verzeichnis zu finden.
+
After the successful build, the package is available in the following directory:
 
<syntaxhighlight>
 
<syntaxhighlight>
 
/opendreambox/build/dm7080/tmp-xxx/deploy/deb
 
/opendreambox/build/dm7080/tmp-xxx/deploy/deb
 
</syntaxhighlight>
 
</syntaxhighlight>
  
=== Verfügbare Rezepte anzeigen ===
+
=== Show available recipes ===
Die verfügbaren Rezepte für das Bauen mittels <code>bitbake</code> können mit folgendem Befehl aufgelistet werden.  
+
The following command will display the available recipes for <code>bitbake</code>.  
 
<syntaxhighlight>
 
<syntaxhighlight>
 
bitbake -s
 
bitbake -s
 
</syntaxhighlight>
 
</syntaxhighlight>
Da die Liste relativ lang ist, könnt ihr das Suchergebnis einschränken:
+
As the list is quite long, you can limit the result:
 +
<syntaxhighlight>
 +
bitbake -s | grep $desired_package
 +
</syntaxhighlight>
 +
If the recipe for the wanted package is found, the package can be rebuild withe the command <code>"bitbake $package_name"</code>. If the package is not found, you should use a personal or modified recipe to build the package. Or you can use the [http://en.wikipedia.org/wiki/Cross_compiler Cross Compiler] (<code>cross-compile.env</code> Script), to compile the source code of a program / library.
 +
 
 +
=== Useful bitbake commands ===
 +
List all of the tasks defined for a given package_name.
 +
<syntaxhighlight>
 +
bitbake -c listtasks $package_name
 +
</syntaxhighlight>
 +
 
 +
Clean the work directory of a desired package.
 +
<syntaxhighlight>
 +
bitbake -c clean $package_name
 +
</syntaxhighlight>
 +
 
 +
Build a desired recipe.
 +
<syntaxhighlight>
 +
bitbake -b <pfad/zum/dem/recipe.bb>
 +
</syntaxhighlight>
 +
 
 +
Debug if files or variables are not found with the following command.
 
<syntaxhighlight>
 
<syntaxhighlight>
bitbake -s | grep $wunschpaket
+
bitbake -D -D -D
 
</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.
 
  
 
== Weblinks ==
 
== Weblinks ==
 
* [http://opendreambox.org/ opendreambox.org]
 
* [http://opendreambox.org/ opendreambox.org]
* [http://git.opendreambox.org/?p=opendreambox.git;a=blob_plain;f=doc/opendreambox.txt Dokumentation zu opendreambox]
+
* [http://git.opendreambox.org/?p=opendreambox.git;a=blob_plain;f=doc/opendreambox.txt Documentation about opendreambox]
 
* [http://git.opendreambox.org/?p=opendreambox.git;a=summary opendreambox git Repository]
 
* [http://git.opendreambox.org/?p=opendreambox.git;a=summary opendreambox git Repository]
 
* [http://www.openembedded.org/wiki/Main_Page OpenEmbedded]
 
* [http://www.openembedded.org/wiki/Main_Page OpenEmbedded]
* [http://docs.openembedded.org/usermanual/usermanual.html Openembedded Anleitung]
+
* [http://docs.openembedded.org/usermanual/usermanual.html Openembedded manual]
 
* [http://www.multitech.net/developer/products/multiconnect-ocg/development/writing-bitbake-recipes/ Writing BitBake Recipes]
 
* [http://www.multitech.net/developer/products/multiconnect-ocg/development/writing-bitbake-recipes/ Writing BitBake Recipes]
 
* [https://www.yoctoproject.org/docs/1.5.1/ref-manual/ref-manual.html The Yocto Project Reference Manual]
 
* [https://www.yoctoproject.org/docs/1.5.1/ref-manual/ref-manual.html The Yocto Project Reference Manual]
  
[[Kategorie:Anleitungen]]
+
[[Kategorie:Instructions (en)]]]]
 
[[Kategorie:Software]]
 
[[Kategorie:Software]]

Aktuelle Version vom 4. November 2016, 19:33 Uhr

Deutsch.png - in Deutsch English.png - in English
Ambox attention.png This article requires some in-depth experience with Dreambox / Linux and is for advanced users.

The article describes the configuration of the OE 2.2 development environment under Linux, to build images and programs for a Dreambox. Supported models are:

  • 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 At this moment the OE 2.2 can only be used on the DM 7080 HD / DM 820 HD / DM 52X. All other dreambox models are not supported by DMM. If you have a lot of experience, you might be able to get a self-build image running on other models.

Supported operating systems

For the setup of the development environment linux is mandatory. Theoretically it's possible different distros. But only some are able to build OpenDreambox. The following distros can handle this ;)

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

Install dependencies

The setup of the OE 2.2 development environment, and afterwards building the images and packages (deb) require some additional packages. The following sections describes the installation of the dependencies for the different Linux distros:

Debian / Ubuntu / Mint

Use the following command to install the dependencies:

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

If packages are missing, the build of the image will be terminated with an error message. E.g. if wget is not installed:

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

other distros

In Getting started of the Openembedded project the dependencies for other distros are described.

Create the development environment

Open the terminal and change the working directory, to the directory you want to use for the environment. The files of the git repository will be available in the directory opendreambox once the following command is executed.

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

Now you can enter the directory opendreambox with the following command.

cd opendreambox

Update the development environment

Use the following command to update the OE 2.2 development environment (Dreambox SDK). Have some patience and wait until the update is completed. At the end you will see [*] The Dreambox SDK is now up-to-date.

make update

git user information

Enter your email address and user name with following commands (if not done before for older OE version, e.g. OE 2.0).

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

Informations about the development environment

The following command will display useful informations concerning the development environment.

make help

Build an image

An image can be build for the following Dreamboxes.

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

Start the building process with the following command for the desired Dreambox type (e.g. for the DM 7080 HD). The download and the subsequent build of the image and packages can take a while. So please, be patient. The building process takes, depending on the resources, several hours and for every image approximately 38GB is needed.

make image MACHINE=dm7080

Images and packages

The images can be found in the following paths of the opendreambox environment.

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

Pakete (deb) sind im folgenden Verzeichnis zu finden.

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

Update the development environment

Use the following command in your opendreambox directory to update the development environment. As a result, the changes of the git will be transfered into your local Dreambox SDK.

make update

Build an image

Start the building process with the following command for the desired Dreambox type (e.g. for the DM 7080 HD).:

make image MACHINE=dm7080

Build packages with BitBake

With the available recipes of the Dreambox SDK it's possible to use the bitbake command to create packages (*.deb). First of all, create the bitbake environment with following commands. Go to the opendreambox directory before entering the command.

source bitbake.env

Open the build directory of your Dreambox type. For the DM 7080 HD the command is:

cd build/dm7080

The build of a package is done like this:

bitbake $Package_name

For the program atftp the command is:

bitbake atftp

After the successful build, the package is available in the following directory:

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

Show available recipes

The following command will display the available recipes for bitbake.

bitbake -s

As the list is quite long, you can limit the result:

bitbake -s | grep $desired_package

If the recipe for the wanted package is found, the package can be rebuild withe the command "bitbake $package_name". If the package is not found, you should use a personal or modified recipe to build the package. Or you can use the Cross Compiler (cross-compile.env Script), to compile the source code of a program / library.

Useful bitbake commands

List all of the tasks defined for a given package_name.

bitbake -c listtasks $package_name

Clean the work directory of a desired package.

bitbake -c clean $package_name

Build a desired recipe.

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

Debug if files or variables are not found with the following command.

bitbake -D -D -D

Weblinks