Warum kann nicht bitbake finden und installieren meines scripts?
Ich bin versucht, zu schreiben eine einfache bitbake-Rezept, die Installation einige Skripte in eine Ziel-Root-Datei-System. Ich muss etwas fehlen, da fühle ich mich wie ich diese einrichten richtig, aber ich erhalte ständig eine Fehlermeldung:
ERROR: Function failed: do_install (see /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493 for further information)
ERROR: Logfile of failure stored in: /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493
Log data follows:
| DEBUG: Executing shell function do_install
| install: cannot stat `uim2svc.sh': No such file or directory
| ERROR: Function failed: do_install (see /home/mike/ULF/ulf/build-ulf/out/work/armv7ahf-vfp-neon-linux-gnueabihf/ttt/1.0-r0/temp/log.do_install.493 for further information)
ERROR: Task 2 (/home/mike/ULF/ulf/oe-ghmi/recipes/images/ttt.bb, do_install) failed with exit code '1'
Nun habe ich gelesen das bitbake Dokumentation auf dem lokalen Datei-fetcher und er sagt:
Diesem Submodul behandelt URLs beginnen mit " file://. Der Dateiname, den Sie angeben, mit in die URL kann entweder eine absolute oder relative Pfad zu einer Datei. Wenn der Dateiname relativ ist, wird der Inhalt der variable " FILESPATH verwendet wird, in der gleichen Weise PFAD wird verwendet, um ausführbare Dateien.
So, ich habe den Namen der Datei, in meinem SRC_URI
, das Skript in der lokalen files
Verzeichnis, und ich habe aus der Ausgabe aus dem Aufbau und der Pfad zu meinem Skript-Verzeichnis... also warum bin ich immer diese Fehlermeldung noch? Jemand Ideen was ich tun könnte falsch?
Hier mein voll bitbake-Rezept (ttt.bb):
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
SRC_URI = "file://uim2svc.sh"
do_install() {
install -d ${IMAGE_ROOTFS}/etc
install -d -m 0755 ${IMAGE_ROOTFS}/etc/init.d
install -m 0755 uim2svc.sh ${IMAGE_ROOTFS}/etc/init.d/
}
Und hier ist der Baum (beginnend bei /home/mike/ULF/ulf), die zeigt, wo die Dateien sind:
oe-ghmi/
├── classes
├── conf
├── recipes
│ └── images
│ ├── files
│ │ └── uim2svc.sh
│ ├── global-hmi-image.bb
│ ├── ttt.bb
Und die (gekürzte) Ausgabe von bitbake -e ttt
:
FILESPATH="...:/home/mike/ULF/ulf/oe-ghmi/recipes/images/files/armv7a:/home/mike/ULF/ulf/oe-ghmi/recipes/images/files/ghmi:/home/mike/ULF/ulf/oe-ghmi/recipes/images/files/"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der OpenEmbedded-Handbuch, Abschnitt 9.13:
So, Ihr Skript erkannt wird von bitbake und eingesetzt in
${WORKDIR}
. Die Methodedo_install()
sollte die Referenz der Datei relativ zum${WORKDIR}
.Es gibt ein Beispiel in der Anleitung in Abschnitt 9.13.2. Datei: für patches und zusätzliche Dateien:
und den code zeigt, wie dies zu tun:
Wahrscheinlich ist es auch erwähnenswert, dass die Dateien nicht direkt kopiert, um
${IMAGE_ROOTFS}
, aber zu ${D} statt. Aus Abschnitt7.4 Tasks
:Einmal fertig
do_install
-, Verzeichnis -${D}
gepackt und dann installiert in den letzten ROOTFS Verzeichnis${IMAGE_ROOTFS}
durchrootfs_ipkg
Klasse (aufgerufen durch das Rezept für das Bild, das Sie erstellen). Aus Abschnitt9.10 rootfs_ipkg class
:Unter die Aufgaben:
Vom
${IMAGE_ROOTFS}
die endgültige filesystem ist schließlich erstellt.müssen Sie die folgende Zeile oberhalb der ""SRC_URI" wie diese
FILESEXTRAPATHS_prepend := "${THISDIR}:"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58"
FILESEXTRAPATHS_prepend := "${THISDIR}:"
SRC_URI = "file://uim2svc.sh"
dem bitbake suchen, die dir gleichen Namen von Rezept Namen, thats, warum es tust WORKDIR kopieren
jetzt sind Sie hinzufügen FILESEXTRAPATHS Linie, dann sucht es von dir Weg, dein REZEPT.