This service is available only in Japanese-language.

ドライバ開発環境の構築

NXPのi.MX8m Mini EVKボードで開発準備を進めています。

bitbake core-image-minimal -c populate_sdk
で、アプリケーション用のSDKを作り、"hello world" を コンソール表示する
アプリケーションは作れることを確認しました。

次にカーネルモジュールを作成する環境を作りたいのですが
同様な方法では作成できないのでしょうか?
bitbake meta-toolchain
で、SDKを作り、"hello world"とprintkするkoファイルを作りたかったのですが
linux/init.hが見つからないといわれてしまいました。
SDK先のincludeディレクトリを-Iで指定しても同じ結果でした。

何が間違っているのでしょうか?
(そもそも、開発手法として間違っていて、
 カーネルモジュールはレシピを書いて開発するものですか?)

レシピを使用したカーネルソースツリー外でカーネルモジュールを作成するレシピは、
sources/poky/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb 
に在ります。
こちらを参考にレシピ化を行っても良いのですが、SDKのコンパイラを使用して構築を行う場合は
bitbake -b ../sources/poky/meta-skeleton/recipes-kernel/hello-mod/hello-mod_0.1.bb
を実行した際のbuildのログ tmp/work/imx8mqevk-poky-linux/hello-mod/0.1-r0/temp/log.do_compile
の中を確認することで、どのようにモジュールのコンパイルを行っているか解析できると思います。

ご返信ありがとうございます。
教えていただいた通り、sources/poky/meta-skeleton/をコピーしてカーネルモジュールを作成し
動作確認できました。
これが標準的な開発手法なのであれば、この方法で開発するようにいたします。
ありがとうございました。

-- やったこと --
1) sources/poky/meta-skeletonを、sources/poky/meta-targetboardにコピー。
2) sources/poky/meta-targetboard/conf/layer.confの'skeleton'を'targetboard’に置換
3) recipes-core, recipes-multilib, recipes-skeletonを削除
4) build/conf/bblayers.confの最下行に
  BBLAYERS += " ${BSPDIR}/sources/poky/meta-targetboard "を追加
5) bitbake hello-mod
上記で、build/tmp/work/imx8mmevk-poky-linux/hello-mod/0.1-r0/にhello.koが生成されました。
暫定的にターゲットボードにSCPでコピーして正常動作確認できました。