OESTLinux

Aus TuxBoxWIKI
Version vom 15. März 2015, 15:46 Uhr von Dbt (Diskussion | Beiträge) (Linksyntax gefixt)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche


Review-KandidatDieser Artikel befindet sich derzeit im Reviewprozess. Hilf mit, ihn zu verbessern! Falls du bei weiteren Artikeln helfen willst, findest du hier eine Auswahl offener Artikel.

Das Projekt Magpie beschäftigt sich damit, mit Hilfe der STLinux Patches und Tools sowie den TDT Treibern ein Buildsystem und diverse Images für die SH4 basierten Boxen bereitzustellen. Aktuell werden die folgenden Boxen unterstützt:

Als Basissystem wird das Yocto Buildsystem verwendet. Bei Yocto handelt es sich um eine Variante von OpenEmbedded. Ein Vorteil von Yocto gegenüber OpenEmbedded Core ist eine etwas bessere Dokumentation.



The Hitchhickers Guide to Project-Magpie

Stop hand.png HINWEIS: Die folgenden Beispiele sind lediglich Vorschläge und müssen möglicherweise je nach lokalen Gegebenheiten noch angepasst werden!

Bevor es losgeht, werden noch ein paar Pakete auf dem Rechner benötigt, mit dem ein Image gebaut werden soll. Für Ubuntu sind das die folgenden Pakete

 $ sudo apt-get install gawk wget git-core diffstat unzip texinfo build-essential chrpath libsdl1.2-dev xterm

Listen für einige andere Distributionen sind beim The Yocto Project Quick Start Guide zu finden


Damit das Aufsetzen etwas einfacher wird, habe ich die Angström setup-scripts angepasst. https://github.com/project-magpie/setup-scripts

 git clone https://github.com/project-magpie/setup-scripts.git
 cd setup-scripts/
 MACHINE=spark ./oebb.sh config spark
 ./oebb.sh update

Dadurch werden die benötigten Git Repositories ausgecheckt und die richtigen Branches selektiert. Damit könnte man jetzt schon ein Image bauen. Bevor es aber losgeht, noch ein kurzer Blick in die Konfiguration.

conf/local.conf


Tuning für Multicore CPUs

Ein großer Vorteil der OpenEmbedded Buildumgebung ist es, Vorgänge parallel auszuführen.

#
# Parallelism Options
#
# These two options control how much parallelism BitBake should use. The first 
# option determines how many tasks bitbake should run in parallel:
#
BB_NUMBER_THREADS = "4"
# 
# The second option controls how many processes make should run in parallel when
# running compile tasks:
#
PARALLEL_MAKE = "-j 4"
#
# For a quad-core machine, BB_NUMBER_THREADS = "4", PARALLEL_MAKE = "-j 4" would
# be appropriate for example.


Feeds

Bei einem FEED handelt es sich um einen Webserver welcher OPKG Pakete bereitstellt. Mittels dieser kann das System aktualisiert und erweitert werden. OpenEmbedded erstellt konsequent für alle Komponenten ein OPKG Paket. Will mann seine Box mittels eines lokalen Feeds aktuell halten, empfehle ich die folgende Variable. Damit werden im Image die entsprechenden opkg Konfigurationen erstellt. Damit der Feed funktioniert, muss das folgende Verzeichnis via http freigegeben sein build/tmp-magpie/deploy/ipk/ Oder man kopiert die Files via rsync oder ähnlichem dort hin wo euer Webserver die Pakete auch findet.

# inject FEED URL into the image
FEED_URIS += " \
                  all##http://quantum/gm990-feed/all \
                  ${MACHINE}##http://quantum/gm990-feed/${MACHINE} \
                  ${TUNE_PKGARCH}##http://quantum/gm990-feed/${TUNE_PKGARCH} \
"


Closed Source Binär Firmwarepakete

Nun muss nur noch festgelegt werden wo die audio.elf und video.elf zu finden sind. Bei diesen Dateien handelt es sich um die Firmwaredateien für die Coprozessoren der CPU.

# Please add your video.elf and audio.elf into a subfolder of this folder
# the subfolder is named by the machine you are building for. 
# for example spark.
# /data/stslave_fw/spark/video.elf
# /data/stslave_fw/spark/audio.elf
BINARY_STSLAVE_FW_PATH = "/data/stslave_fw"

Der Rest sollte soweit ganz gut passen und diesen lassen wir vorerst unberührt. Jetzt weiß das Bitbake was es zu tun hat. Damit man Bitbake nutzen kann, müssen noch ein paar Variablen gesetzt werden.

 source ~/.oe/environment-project-magpie

Das "Sourcen" der Umgebungsvariablen muss einmal pro Shell gemacht werden. Nicht vor jedem Build. Yocto baut alle Pakete aus den Sourcen, deshalb empfiehlt sich erstmal alle Pakete downzuladen

 bitbake -cfetchall vulture-image


Imagebau

Sobald alle Sourcen auf der Platte sind, kann es losgehen. Je nach CPU und Systemgeschwindigkeit dauert das unter Umständen eine ganze Weile. Jetzt ist der richtige Zeitpunkt das Referenz-Manual anzuschauen.

 bitbake  vulture-image

Das ist auch ein erster Test, ob alles richtig konfiguriert wurde.

Den Feed aktuell halten

Will man die erstellten Pakete über den Feed installieren so muss man den Paketindex aktualisieren

 bitbake  package-index

Anschliessend können die Pakete mittels rsync mit dem Webserver synchronisiert werden.


Neutrino-MP

Neutrino-MP wird noch nicht automatisch ins Image integriert. Man kann es aber leicht über einen lokalen Feed nachinstallieren oder man ändert die Image-Konfiguration.

sources/meta-magpie/recipes-core/images/vulture-image.bb

Es muss nur Neutrino-MP zur Variablen IMAGE_INSTALL hinzugefügt werden. Dies ist momentan noch nicht mit vollem Leistungsumfang und Startup-Script lauffähig, aber uber den Status kann man sich Tuxbox-Board informieren und wird hier entsprechend aktualsiert werden.


Booten von USB

Möchte man das ganze dann von USB booten, alle anderen Varianten gehen vermutlich nicht ;-), kann man den USB-Stick wie folgt betanken. Unter der Voraussetzung, dass /dev/sdb der USB-Stick ist. Dieser sollte mindestens 256MB groß sein.

 sudo dd if=build/tmp-magpie/deploy/images/vulture-image-spark7162.spark71xx-usbimg of=/dev/sdb

Links