OESTLinux

Aus TuxBoxWIKI
Wechseln zu: Navigation, Suche



Allgemeines

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 Buildsystem verwendet. Bei Yocto handelt es sich um eine Variante von OpenEmbedded. Ein Vorteil von Yocto gegenüber OpenEmbedded Core ist die 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, mit welchem Ihr das Image bauen wollt, benötigt. 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

Eine Liste für einige andere Distributionen sind beim 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 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 Dinge 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.

Feedds

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 Ihr kopiert die Files via rsync oder ähnlichem dort hin wo euer Webserver Sie 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

Das Neutrino wird noch nicht automatisch ins image integriert mann 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. Ich hoffe ich bekomme das Neutrino dann in den nächsten Tagen mit dem vollen Leistungsumfang und Startup Skript ans Laufen.

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

Yocto Reference Manual


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.