neutrino-MP bauen mit Yocto/OpenEmbedded, Kurzanleitung
Verfasst: Dienstag 26. Januar 2016, 16:16
Sehr schön erklärt (auch am Beispiel SPARK) hat doc das im Wiki: http://wiki.tuxbox.org/wiki/index ... fe-stlinux
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:
Nun gehts los, erst mal alles auschecken:
Wenn man nicht für SPARK bauen will, dann stat meta-stlinux halt meta-coolstream oder meta-raspberrypi auschecken.
Das environment aufsetzen mitDabei landet man automatisch im Verzeichnis build-spark, was erzeugt und mit ein paar templates bestückt wird. Wenn man später eine neue shell aufmacht, wieder aus dem poky-Verzeichnis mit ". oe-init-build-env build-spark" dort rein wechseln, der Pfad wird erweitert und Umgebungsvariablen gesetzt.
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):MACHINE ist klar, das wählt die Architektur aus. PACKAGE_CLASSES sagt, daß ipkg/opkg als Paketmanagement benutzt werden soll (default wäre RPM) und EXTRA_IMAGE_FEATURES sort dafür, daß der Paketmanager auch tatsächlich im Image drin ist.
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:das lädt dann so etwas 1,4GB runter und speichert alles im Unterverzeichnis "downloads/" (kann in conf/local.conf angepasst werden).
Ansonsten kann man das image bauen:oder wer nur ein neutrino-paket bauen will:Beim ersten mal dauert das etwas (einige Stunden), weil alle Dependencies, die Toolchain etc. erst mal gebaut werden müssen. Später geht das schneller.
Was beim Bauen rauskommt landet in tmp/deploy/:
Edits:
20160129 Wiki-Link nachgetragen.
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.