OESTLinux
Inhaltsverzeichnis
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
- Die Spark-Boxen mit Sti7111 CPU
- Die Spark-Boxen mit Sti7162 CPU befinden sich in Vorbereitung
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
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 NeutrinoHD 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
Grundlagen - Installation - Debug-Mode - Hardware - CDK/Development
LCars - Neutrino - Enigma - Plugins - Spiele - Software - Tools - Howto - FAQ - Images
Hauptseite - News - Alle Artikel - Bewertungen - Gewünschte Seiten - Index - Neue Artikel - Impressum - Team
Hilfeportal - Seite bearbeiten - Bilder - Links - Tabellen - Textgestaltung