Yocto が使用するカーネルを変更することにしました (学習演習として) が、Yocto が使用するカーネルがどこに保存されているかわかりません。レシピに保存されていることは理解していますが、どのレシピに保存されているかはわかりません。誰か知っていますか? 文字通り、いくつかのコマンド (以下にリスト) を入力しています。ご自分のマシンで自由に実行してください。
$ 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
答え1
Yocto が使用するカーネルがどこに保存されているかわかりません。
設定ファイルにはpoky/meta/conf/machine/include/qemu.inc
次の行があります
# Use a common kernel recipe for all QEMU machines
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
これは、パスの下のカーネルレシピを探すようにbitbakeに指示しますpoky/メタ/レシピ-カーネル/linux/
その道には2つのレシピがあります
- linux-yocto_4.1.bb
- linux-yocto_4.4.bb
設計上、bitbakeはlinux-yocto_4.4.bbつまり、4.4 カーネルはマシン qemux86 用にビルドされます。これは、bitbake が最高のレシピ バージョンを優先するように設計されているためです。
Yocto が使用するカーネルを変更することにしました (学習演習として)
この回答の冒頭で示した設定ファイルに、もう1行追加することができます。
PREFERRED_VERSION_linux-yocto = "4.1%"
この1行を追加すると、bitbakeはpoky/meta/recipes-kernel/linux/linux-yocto_4.1.bbレシピ、つまり qemux86 用の 4.1 カーネル。