Yocto:如何将自定义头文件添加到 sdk sysroot

问题描述 投票:0回答:1

我在内核源代码中创建了一个名为 soc-v4l2-controls.h 的自定义头文件,它位于 include/uapi/linux 文件夹中。

我想要实现的是将这个头文件包含在SDK sysroot中。我使用以下命令构建 SDK,但在 sysroot 中找不到自定义头文件,特别是在目录 /opt/.../sysroots/cortexa53-poky-linux/usr/include/linux/ 中。

bitbake core-image-soc -c populate_sdk

关于这个问题我有两个问题:

  1. 即使我将虚拟内核的 PREFERRED_PROVIDER 设置为我的内核配方,内核源代码中的自定义头文件不包含在 sysroot 中是否正常?在 core-image-soc.bb 文件中,我指定了以下行:
PREFERRED_PROVIDER_virtual/kernel = "linux-soc"
  1. Yocto 文档 (https://docs.yoctoproject.org/5.0.5/sdk-manual/appendix-customizing-standard.html#adding-individual-packages-to-the-standard-sdk) 提到变量 TOOLCHAIN_TARGET_TASK 可用于在 SDK 中包含库或标头。但是,没有关于如何正确使用该变量的具体示例。在我的情况下如何使用 TOOLCHAIN_TARGET_TASK 来包含我的自定义标头?

谢谢您的帮助!

linux sdk kernel yocto toolchain
1个回答
0
投票

如果您的

soc-v4l2-controls.h
已正确添加到 Linux 配方的内核源代码中,并且您开始在 已安装的 Yocto 配方列表中使用 kernel-devsrc,它将与 sysroot 中的完整内核源代码一起部署。

如果您想在

soc-v4l2-controls.h

 中为任何用户空间内容提供 
usr/include/...
,则必须在自定义 .bbappend 配方文件中为其创建手动安装任务。

© www.soinside.com 2019 - 2024. All rights reserved.