Build images and compile programs with OE 2.2: Unterschied zwischen den Versionen
Zeile 17: | Zeile 17: | ||
{{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 images will only run on the '''DM 7080 HD''', and not on the other listed Dreamboxes!}} | ||
− | == | + | == 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] | * Debian 7.6 "Wheezy" [i386, amd64] | ||
* Ubuntu 14.04.1 LTS "Trusty Tahr" [amd64] | * Ubuntu 14.04.1 LTS "Trusty Tahr" [amd64] |
Version vom 20. September 2014, 15:47 Uhr
- in Deutsch | - in English |
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 800 HD SE
- DM 800 HD SE V2
- DM 7020 HD
- DM 7020 HD V2
- DM 7080 HD
- DM 8000 HD PVR
At this moment the images will only run on the DM 7080 HD, and not on the other listed Dreamboxes! |
Inhaltsverzeichnis
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]
- 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:
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
Die erstellten Images funktionieren im Moment nur auf der DM 7080 HD und nicht auf den anderen erwähnten Dreamboxen! |
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.