Ich habe beschlossen, den von Yocto verwendeten Kernel zu ändern (als Lernübung), aber ich weiß nicht, wo der von Yocto verwendete Kernel gespeichert ist. Ich verstehe, dass er in einem Rezept gespeichert ist, aber ich habe keine Ahnung, in welchem Rezept er gespeichert ist. Weiß das jemand? Ich tippe buchstäblich eine Handvoll Befehle ein (unten aufgeführt). Sie können das gerne auf Ihren Maschinen tun.
$ git clone http://git.yoctoproject.org/git/poky
$ cd poky
$ git checkout -b fido origin/fido
$ source oe-init-build-env
$bitbake core-image-minimal
$runqemu qemux86
Antwort1
ich weiß nicht, wo der von Yocto verwendete Kernel gespeichert ist.
Die Konfigurationsdatei poky/meta/conf/machine/include/qemu.inc
enthält die folgenden Zeilen
# Use a common kernel recipe for all QEMU machines
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
Dies weist bitbake an, nach Kernel-Rezepten unter dem Pfad zu suchenpoky/meta/rezepte-kernel/linux/
Auf diesem Weg werden Sie zwei Rezepte bemerken
- linux-yocto_4.1.bb
- linux-yocto_4.4.bb
Bitbake verwendetlinux-yocto_4.4.bb, d. h., der Kernel 4.4 wird für die Maschine qemux86 erstellt. Das liegt daran, dass Bitbake so konzipiert ist, dass es die höchste Rezeptversion bevorzugt.
Ich habe beschlossen, den von Yocto verwendeten Kernel zu ändern (als Lernübung).
In der Konfigurationsdatei, auf die ich am Anfang dieser Antwort verwiesen habe, können Sie eine weitere Zeile hinzufügen
PREFERRED_VERSION_linux-yocto = "4.1%"
Das Hinzufügen dieser Zeile bewirkt, dass bitbakepoky/meta/rezepte-kernel/linux/linux-yocto_4.1.bbRezept, also 4.1-Kernel für qemux86.