2016-11-01 1 views
1

Ich habe Yocto verwendet, um Linux-Builds für ein ARM-Board zu erstellen.Das Hinzufügen eines neuen Rezepts zu Yocto schlägt fehl während generate root fs

Ich hatte Cross Compiling Add-On-Anwendungen manuell. Jetzt sind wir an einem Ort, an dem wir uns einen schönen integrierten Build wünschen, also fange ich an, Yocto-Rezepte hinzuzufügen.

Ich habe mit dem ARM Build gekämpft (ein x86 Build mit dem gleichen Code scheint in Ordnung).

Selbst eine grundlegende ‚Hallo Welt‘ ziemlich viel geschnitten und von der Entwicklung manuellen Einfügen funktioniert nicht (http://www.yoctoproject.org/docs/current/dev-manual/dev-manual.html#new-recipe-writing-a-new-recipe)

Hier ist das Rezept:

SUMMARY = "Simple helloworld application" 
SECTION = "examples" 
LICENSE = "MIT" 
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302" 

RPROVIDES_${PN} = "helloworld" 

FILES_${PN} += "${bindir}" 

SRC_URI = "file://helloworld.c" 

S = "${WORKDIR}" 

do_compile() { 
     ${CC} helloworld.c -o helloworld ${LDFLAGS} 
} 

do_install() { 
     install -d ${D}${bindir} 
     install -m 0755 helloworld ${D}${bindir} 
} 

Hier wird der Fehler:

ERROR: helloworld not found in the base feeds (smarc_samx6i cortexa9t2hf-vfp-neon-mx6qdl cortexa9hf-vfp-neon-mx6qdl cortexa9t2hf-vfp-neon cortexa9t2hf-vfp cortexa9hf-vfp-neon cortexa9hf-vfp armv7at2hf-vfp-neon armv7ahf-vfp-neon armv7at2hf-vfp armv7ahf-vfp armv6thf-vfp armv6hf-vfp armv5tehf-vfp armv5ehf-vfp armv5thf-vfp armv5hf-vfp noarch any all). 
ERROR: Function failed: do_rootfs 

Irgendwelche Vorschläge, was diesen Fehler verursachen würde?

Das Paket baut richtig auf; Das Problem scheint isoliert zu sein, um es für die rootfs zu finden.

Danke!

EDIT: Ich habe eine Lösung, die scheint zu arbeiten, obwohl es nicht ideal ist, langfristig.

Durch Ändern des Paketnamens unter IMAGE_INSTALL von helloworld in helloworld-0.0.1 wird das Problem behoben. Natürlich würde ich lieber nicht die Version jedes Pakets in der Top-Level-Rezeptur codieren und andere Pakete benötigen das nicht, also gibt es hoffentlich eine andere Lösung.

BEARBEITEN 2: Das Umbenennen des Rezepts und das Entfernen der Versionszeichenfolge lösen das Problem ebenfalls. Dies scheint auch langfristig nicht ideal zu sein.

+0

Wo haben Sie Ihr Rezept gespeichert (welches Verzeichnis) und wie ist sein Dateiname? – h0ch5tr4355

+0

Ich habe einen "Meta-Test" -Standort in Quellen erstellt und einen "Rezept-Test" -Standort darunter. Es gibt eine layers.conf für den Meta-Test. – Dan

+0

Hast du 'meta-test' zu bblayers.conf hinzugefügt? – h0ch5tr4355

Antwort

0

OK, nach einigen weiteren Tests habe ich festgestellt, dass dies ein Problem mit dem Rezept ist.

Es hieß helloworld-0.0.1.bb (das gleiche Format mit den anderen Rezepten, die ich zusammengestellt hatte, um mich zu diesem einfachen Test zu fahren).

Wenn jemand anderes darauf trifft, wird das einfach durch ein '_' ersetzt.

1

1.Benennen Ihr Rezeptnamen zB hello-0.1.bb hello_0.1.bb

2.Add unter Leitung zuletzt nur:

FILES_${PN} = "${bindir}/*" 

Abvoe Linie hilft Ihnen, Ihre Binärkopie zu rootfs.

Verwandte Themen