This service is available only in Japanese-language.

yocto BSPに含まれるカーネルそのもののバージョンをあげるには?

質問させていただきます。

とある yocto BSP で採用されている linux kernel のバージョンが 3.14.18 であったとして、これをたとえば 3.18 や 3.19 に引き上げたい場合はどのようにすればよいでしょうか?

別のQAにあります「ユーザ独自のカーネルのビルドをYoctoで行う方法」(https://yoctobbq.lineo.co.jp/?q=node/41)も拝見しましたが、これはどちらかというとカーネルの機能の取捨選択なのかな、とおもいまして。
yocto 本家(http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.19/refs/tags)をみますと、どうもBSPに適用するようなものでもないようで。

よろしくお願いします。

1.3.18のカーネルをフルセットでダウンロード(できればyoctoに転用できる形式が望ましい)
2.ダウンロードしたものを現在のバージョンのカーネルセットと同位置に配置
3.*.conf(バージョン指定しているもの)を書き換えて3.18に向ける
4.bitbake

このような感じでできると理想的ですね。

1. linux-xxx_3.14.bbを参考に3.18向けのbbファイルを作成する。(kernel.orgからgitで取得するイメージ)
2. conf/machine/xxxx.conf の中でPREFERRED_VERSION_linux-xxx ?= "3.18%"と指定
でお試しください。

レシピの確認として「bitbake-layers show-recipe」を実行してみました。すると、以下のように出力されていました。
linux-iwg18:
meta-fsl-arm-extra 3.14.38
meta-fsl-arm-extra 3.18.56

このような場合、3.18.56は認識されていると考えてよろしいでしょうか?

また、以下のような「(skipped)」というのは文字通り無視されたということでしょうか?
linux-yocto:
meta 3.18.56 (skipped)
meta 3.19 (skipped)

3.18.56 は build対象としてbitbakeは認識しています。
(skipped)と書かれているレシピは、bitbakeのbuild対象外となります。

その後、3.19として作業を継続しており、なんとかbuild対象として向いてくれるようにはなりました。
しかし、いざカーネルのビルドを実行しようとしますと

ERROR: Function failed: do_configure (log file is located at /home/○○/***-release-bsp/build_***/tmp/work/imx6ul_***-poky-linux-gnueabi/linux-imx/3.19-r0/temp/log.do_configure.31941)
ERROR: Logfile of failure stored in: /home/○○/***-release-bsp/build_***/tmp/work/imx6ul_***-poky-linux-gnueabi/linux-imx/3.19-r0/temp/log.do_configure.31941
Log data follows:
| DEBUG: Executing python function sysroot_cleansstate
| DEBUG: Python function sysroot_cleansstate finished
| DEBUG: Executing shell function do_configure
| WARNING: exit code 128 from a shell command.
| ERROR: Function failed: do_configure (log file is located at /home/○○/***-release-bsp/build_***/tmp/work/imx6ul_***-poky-linux-gnueabi/linux-imx/3.19-r0/temp/log.do_configure.31941)
ERROR: Task 3 (/home/○○/***-release-bsp/sources/meta-fsl-arm/recipes-kernel/linux/linux-imx_3.19.bb, do_configure) failed with exit code '1'
NOTE: Tasks Summary: Attempted 257 tasks of which 256 didn't need to be rerun and 1 failed.
No currently running tasks (257 of 258)

do_configureというものをとくに指定しているわけではないので、上記ワーニング原因がよくわかりません。
「WARNING: exit code 128 from a shell command.」となる主な要因(例でも)、もしくはこのようなワーニングがでてもビルドを続行できるような方法をご存じであればご教示いただきたく。

該当カーネルのレシピがどのような記述になっているかは不明ですが、do_configure をbbfileの中で明示的に指定しない場合は、
poky/meta/classes/ の base.bbclass や kernel.bbclass で定義されているtaskが実行されます。
(log file is located at /home/○○/***-release-bsp/build_***/tmp/work/imx6ul_***-poky-linux-gnueabi/linux-imx/3.19-r0/temp/log.do_configure.31941)
に記述されている内容をご確認ください。

※削除

do_configure() {
}

このような何もしないものを /home/○○/***-release-bsp/sources/meta-fsl-arm/recipes-kernel/linux/linux-imx_3.19.bb の中に書いてみましたが状況は変わらずでした。
なお、さきほどの /home/○○/***-release-bsp/build_***/tmp/work/imx6ul_***-poky-linux-gnueabi/linux-imx/3.19-r0/temp/log.do_configure.31941 の中身は
----
DEBUG: Executing python function sysroot_cleansstate
DEBUG: Python function sysroot_cleansstate finished
DEBUG: Executing shell function do_configure
ERROR: Function failed: do_configure (log file is located at /home/○○/***-release-bsp/build_***/tmp/work/imx6ul_***-poky-linux-gnueabi/linux-imx/3.19-r0/temp/log.do_configure.31941)
----
でした(この前の投稿「Log data follows:」の引用部分に同じ)。

実際にどのようにコマンド(スクリプト)が実行されているかは、ログファイルと同一のディレクトリに存在する、run.do_configure.xxxxx に記録されています。こちらのファイルを、3.14で実行した場合のものと比較して、足りない設定やファイルがないか、確認ください。

(続き)
ERROR: The recipe linux-libc-headers is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
/home/○○/***-release-bsp/build_***/tmp/deploy/rpm/cortexa7hf_vfp_neon/linux-libc-headers-dbg-3.19-r0.cortexa7hf_vfp_neon.rpm
/home/○○/***-release-bsp/build_***/tmp/deploy/rpm/cortexa7hf_vfp_neon/linux-libc-headers-dev-3.19-r0.cortexa7hf_vfp_neon.rpm
Please verify which recipe should provide the above files.
The build has stopped as continuing in this scenario WILL break things, if not now, possibly in the future (we've seen builds fail several months later). If the system knew how to recover from this automatically it would however there are several different scenarios which can result in this and we don't know which one this is. It may be you have switched providers of something like virtual/kernel (e.g. from linux-yocto to linux-yocto-dev), in that case you need to execute the clean task for both recipes and it will resolve this error. It may be you changed DISTRO_FEATURES from systemd to udev or vice versa. Cleaning those recipes should again resolve this error however switching DISTRO_FEATURES on an existing build directory is not supported, you should really clean out tmp and rebuild (reusing sstate should be safe). It could be the overlapping files detected are harmless in which case adding them to SSTATE_DUPWHITELIST may be the correct solution. It could also be your build is including two different conflicting versions of things (e.g. bluez 4 and bluez 5 and the correct solution for that would be to resolve the conflict. If in doubt, please ask on the mailing list, sharing the error and filelist above.
ERROR: If the above message is too much, the simpler version is you're advised to wipe out tmp and rebuild (reusing sstate is fine). That will likely fix things in most (but not all) cases.
ERROR: Function failed: sstate_task_postfunc
ERROR: Logfile of failure stored in: /home/○○/***-release-bsp/build_***/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.19-r0/temp/log.do_package_write_rpm.4210
ERROR: Task 741 (/home/○○/***-release-bsp/sources/poky/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.19.bb, do_package_write_rpm) failed with exit code '1'
--------
英文の理解度が低いので見当違いかもしれませんが、どうやらインストールしようとしているヘッダは既にあるといっているような…。rpmファイルの中身は
 (1)linux-libc-headers-dbg-3.19-r0.cortexa7hf_vfp_neon.rpm は 空
 (2)linux-libc-headers-dev-3.19-r0.cortexa7hf_vfp_neon.rpm にはヘッダが含まれている

キャッシュもクリア(bitbake core-image-minimal -c clean)してみましたが状況は変わらず。
ここでいう「provide(providers)」とは何を指しているのでしょうか?また、このような場合はどのような策を講じればよいでしょうか?

上記のdo_configureですが、いろいろ調べてみるとgitで失敗してました。SoCメーカサイトに該当ファイルがなく(そのせいでgitリポ作成されず)、その後do_configureではリポありの前提で動いていたという。
BSP(downloadsフォルダ内)にはソースコード.xzが含まれていたのでSRC_URIで指定し、かつdo_fetchを追加して独自にgitリポを作成するようにしてクリアできました。

その後、以下のエラー(log.do_package_write_rpm.****)が発生。
--------
DEBUG: Executing python function sstate_task_prefunc
DEBUG: Python function sstate_task_prefunc finished
DEBUG: Executing python function do_package_write_rpm
DEBUG: Executing python function read_subpackage_metadata
DEBUG: Python function read_subpackage_metadata finished
DEBUG: Executing python function do_package_rpm
DEBUG: Executing python function write_specfile
NOTE: Creating EMPTY RPM Package for linux-libc-headers-dbg
NOTE: Not creating empty RPM package for linux-libc-headers-staticdev
NOTE: Creating RPM package for linux-libc-headers-dev
NOTE: Not creating empty RPM package for linux-libc-headers-doc
NOTE: Not creating empty RPM package for linux-libc-headers-locale
NOTE: Not creating empty RPM package for linux-libc-headers
DEBUG: Python function write_specfile finished
DEBUG: Executing shell function BUILDSPEC
Building target platforms: cortexa7hf_vfp_neon-poky-linux-gnueabi
Processing files: linux-libc-headers-dbg-3.19-r0.cortexa7hf_vfp_neon
Processing files: linux-libc-headers-dev-3.19-r0.cortexa7hf_vfp_neon
Checking for unpackaged file(s): /home/ilips/iwg18-release-bsp/build_iwg18/tmp/sysroots/x86_64-linux/usr/bin/../lib/rpm/check-files /home/ilips/iwg18-release-bsp/build_iwg18/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.19-r0/package
Wrote: /home/ilips/iwg18-release-bsp/build_iwg18/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.19-r0/deploy-rpms/cortexa7hf_vfp_neon/linux-libc-headers-dbg-3.19-r0.cortexa7hf_vfp_neon.rpm
Wrote: /home/ilips/iwg18-release-bsp/build_iwg18/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.19-r0/deploy-rpms/cortexa7hf_vfp_neon/linux-libc-headers-dev-3.19-r0.cortexa7hf_vfp_neon.rpm
DEBUG: Shell function BUILDSPEC finished
DEBUG: Python function do_package_rpm finished
DEBUG: Python function do_package_write_rpm finished
DEBUG: Executing python function sstate_task_postfunc
DEBUG: Staging files from /home/ilips/iwg18-release-bsp/build_iwg18/tmp/work/cortexa7hf-vfp-neon-poky-linux-gnueabi/linux-libc-headers/3.19-r0/deploy-rpms to /home/ilips/iwg18-release-bsp/build_iwg18/tmp/deploy/rpm
(続きます)

なんとか、無事にv3.19のカーネルを適用することができました。質問をクローズしたいと思います。