Weil erneut die Frage aufkam, wie denn mit Yocto zu bauen sei, hier nochmal schnell eine Kurzanleitung (am Beispiel SPARK, das image / die Software läuft sowohl auf SPARK als auch auf SPARK7162) .
Ausführlicher beschrieben wird das alles auf https://www.yoctoproject.org/documentation
Vor man anfängt sollte man folgendes bereitlegen:
- Einen schnellen Rechner (ich mache das auf einem alten Core2 Duo E8500 und das dauert schon immer ein wenig)
- Plattenplatz. So 50GB sollte schon frei sein. Man kann das etwas verringern mit "rm_work" etc, aber wenn einem mittendrin die Platte volläuft ist das nicht so praktisch
- Eine schnelle Platte. SSD oder SSD-backed bcache oder dm-cache macht es auf jeden Fall nicht langsamer
Nun gehts los, erst mal alles auschecken:
Code: Alles auswählen
git clone http://git.yoctoproject.org/git/poky
cd poky
git checkout -b dizzy origin/dizzy
git clone https://github.com/seife/meta-stlinux.git
git clone https://github.com/seife/meta-neutrino-mp.git
Das environment aufsetzen mit
Code: Alles auswählen
. oe-init-build-env build-spark
Wem's schon aufgefallen ist: ich nehme noch den (inzwischen alten) dizzy Branch (yocto 1.7), weil ich das meta-stlinux noch an die Änderungen der neueren Versionen anpassen (und testen) musss.
Jetzt muß die Konfiguration angepasst werden (nur beim ersten Mal):
- in conf/bblayers.conf müssen die beiden layer meta-stlinux und meta-neutrino-mp in BBLAYERS eingetragen werden
- in conf/local.conf muss MACHINE gesetzt werden
Code: Alles auswählen
MACHINE = "spark"
PACKAGE_CLASSES = "package_ipk"
EXTRA_IMAGE_FEATURES += "package-management"
BINARY_STSLAVE_FW_PATH = "/local/seife/src/Archive/SPARK-FW"
BINARY_STSLAVE_FW_PATH ist nur für SPARK, der sagt, wo die video.elf und audio.elf liegen. Achtung, die müssen dort drin in einem Unterverzeichnis "spark" liegen, also im Beispiel oben in "/local/seife/src/Archive/SPARK-FW/spark/". Der default ist "/data/stslave_fw", also kann man sie auch einfach nach /data/stslave_fw/spark legen und die Variable weg lassen.
Nun gehts los.
Wer vorab alles runterladen will, der macht:
Code: Alles auswählen
bitbake neutrino-image -c fetchall
Ansonsten kann man das image bauen:
Code: Alles auswählen
bitbake neutrino-image
Code: Alles auswählen
bitbake neutrino-mp
Was beim Bauen rauskommt landet in tmp/deploy/:
- tmp/deploy/ipk/ Pakete, dieses Verzeichnis kann z.B. per http exportiert werden und direkt als Paketquelle auf der box importiert werden, dann kann man auf der box mit "opkg update; opkg upgrade" ein update durchführen. Nie wieder flashen
- tmp/deploy/images/ Images zum Flashen und zum Booten per USB
- tmp/deploy/sdk/ Wenn es gebaut wurde, liegt dort das SDK
Edits:
20160129 Wiki-Link nachgetragen.