This service is available only in Japanese-language.

SDKを用いたdriverの開発環境構築について

現在、以下のコマンドを用いて生成したSDKを用いて開発を行っています。
bitbake -c populate_sdk [ターゲット名]

アプリケーションのビルドに関しては、このSDKさえあればビルド可能です。
現在新規driverをkernelとは別に作成しています。
driverのビルドに関しては、SDKのみの用意ではビルドできず、
kernelをbitbakeした上で、makefileに以下のように記載しビルドしています。
KERNELSRCDIR = ../../build-openstlinuxweston-xxx/tmp-glibc/work-shared/xxx/kernel-build-artifacts

現在driverのビルドに関しても、SDKのみで行う方法がないかと考えているのですが、そのようなことは可能でしょうか。

SDKを構築する際にkernel src は既に work-shared に展開済となっているため
別途kernel-srcをtarで固めておき、ドライバーを開発する際は、SDKとtarで固めた
ソースを展開して使用しています。

SDKの中にkernelソースを含める方法ですが、
TOOLCHAIN_TARGET_TASK_append = " kernel-devsrc"
を追加することで、sdkインストール時のsysroot/[TARGET]/usr/src/linux
以下にファイルが展開されますが、現状MakefileとKconfig のみ
入っており、必要なソース(*.[ch])は入ってきませんですね。
他に指定を追加して、SDKにカーネルソースが含まれることが判れば
このスレッドにてお知らせします。

1. IMAGE_INSTALL_appen = " kernel-devsrc"
  を追加して、-c populate_sdk を実行する。
2. 生成されたSDKをインストールする。
3. インストールしたSDKの環境設定ファイルを読み込む。
4. インストールしたSDKのsysroot/[TARGET]/usr/src/kernel に移動する
5. 一次的にソースツリーのownerをUSERに変更する
  sudo chpwn -R $USER .
6.  make scripts を実行する。
  fatal error: openssl/bio.h: No such file or directory といったエラーが出る場合は
  sudo apt install libssl-dev (ubuntuの場合)を実行して、opensslの開発パッケージを
  ホスト側に追加する
7. ソースツリーのownerをrootに戻す
  sudo chpwn -R root .

ご連絡いただきましたように、IMAGE_INSTALL_append = " kernel_devsrc"を追記しビルドを試みたのですが、
Missing for unbuildable dependency chain was: ['kernel_devsrc']と表示されビルドできません。

ひとまず最初にご連絡いただきました、srcもまた保持する方法にて対応しようと思いますが、
何か追加で情報ございましたらまたご連絡いただけますと幸いです。

参考:こちらの方法はopenstlinux-5.4-dunfell-mp1-20-06-24に適用しようとしています。

kernel_devsrc ではなく、kernel-devsrc となります。
別環境で実施した場合、IMAGEにも /usr/src/kernel が生成されるため、 SDK作成時のみ指定を行った方が
良さそうですね。

こちらの誤記載により、失礼いたしました。
ご連絡いただきました方法にてdriverビルドが可能なことを確認いたしました。
ご回答いただき、ありがとうございました。

ご連絡頂いた方法でドライバをビルドしていたのですが、以下のようなエラーが表示されました。
In file included from ./include/asm-generic/int-ll64.h:11,
from ./arch/arm/include/uapi/asm/types.h:5,
from ./include/uapi/linux/types.h:5,
from ./include/linux/types.h:6,
from ./include/linux/list.h:5,
from ./include/linux/module.h:9,
from (省略 記載したソースコード)
./include/uapi/asm-generic/int-ll64.h:12:10: fatal error: asm/bitsperlong.h: No such file or directory
12 | #include <asm/bitsperlong.h>
該当のSDK同梱のincludeフォルダを参照しますと、確かにasmフォルダが存在しません。
なお、現在makefileにてKERNEL_SRCとして、以下パスを指定しています。
KERNEL_SRC= /opt/st/stm32mp1-xxx/3.1-snapshot/sysroots/cortexa7t2hf-neon-vfpv4-ostl-linux-gnueabi/usr/src/kernel

本点対応する方法はございますでしょうか。

Yocto環境にて作成した、kernel-build-artifactsに存在するasm/bitsperlong.h の実体がどこにあるのか
探ることで、対応が可能になるかと。

Out-of-treeのドライバをビルドしていますが、当方では
[kernel_devsrc]込みでビルド&インストールしたSDKを使って

sysroots/[TARGET]/lib/modules/*/build
または
sysroots/[TARGET]/src/kernel

いずれにパスを通す場合でも

# make scripts
# make prepare

を事前に実施しておくことでビルドできるようになりました。

たまたま見つけたこちらのサイトを参考にしました。
https://mickey-happygolucky.hatenablog.com/entry/2019/02/13/112619

Linux Kernel Development Manual 内の Working with Out-of-Tree Modules のセクション
https://docs.yoctoproject.org/3.1.16/kernel-dev/kernel-dev-common.html#b...
では、make scripts までしか紹介されていないですね。
下記サイトでは、make prepare まで紹介されていました。
https://stackoverflow.com/questions/60923890/how-to-build-linux-kernel-m...

有益な情報提供ありがとうございました。