qemux86 マシンで使用されるカーネルレシピを変更する

qemux86 マシンで使用されるカーネルレシピを変更する

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 カーネル。

関連情報