【问题标题】:bitbake build can't find sparsebitbake 构建找不到稀疏的
【发布时间】:2019-10-17 16:53:10
【问题描述】:

我正在尝试在 Yocto 配方中编译内核模块。但是,我总是收到此错误/bin/sh: 1: sparse: not found。 如果我用填充的 SDK 交叉编译模块,它工作得很好。

不知何故,sh 找不到 sparse。 注:sparse已下载

这是我的食谱

SUMMARY = "test Linux kernel module"
LICENSE = "CLOSED"

inherit module

SRC_URI = "git://github.com/xyz/test_yocto.git;protocol=https"
SRCREV = "${AUTOREV}"
#SRCREV = "5c6224fee66d8e4eb167f4c74d42e5cfa479e9eb"

S = "${WORKDIR}/git"

# The inherit of module.bbclass will automatically name module packages with
# "kernel-module-" prefix as required by the oe-core build environment.

RPROVIDES_${PN} += "kernel-module-test"

这是我的制作文件:

obj-m := test.o

SRC := $(shell pwd)

all:
        $(MAKE) KBUILD_CHECKSRC=1 -C $(KERNEL_SRC) M=$(SRC)

modules_install:
        $(MAKE) -C $(KERNEL_SRC) M=$(SRC) modules_install

clean:
        rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
        rm -f Module.markers Module.symvers modules.order
        rm -rf .tmp_versions Modules.symvers

如果我删除将通过检查的KBUILD_CHECKSRC=1,它将正常工作。

我在这里错过了什么?

【问题讨论】:

标签: yocto bitbake


【解决方案1】:

我不是内核专家,但这似乎很清楚:当您定义KBUILD_CHECKSRC=1 时,模块构建使用一个名为“sparse”的外部工具。此工具当前不是内核模块的构建依赖项,因此构建失败。

您可以避免使用 KBUILD_CHECKSRC(这可能就是您想要的:KBUILD_CHECKSRC 听起来像是您的模块开发人员应该使用的东西)。或者,您可以将“sparse-native”添加到您的模块配方 DEPENDS 中,然后确保您使用的是提供该功能的层 (layers.openembedded.org says meta-sca has it)。

【讨论】:

  • 非常感谢。我认为它会使用我的构建机器中的 sparse。
猜你喜欢
  • 2019-04-11
  • 1970-01-01
  • 2021-09-22
  • 2019-08-05
  • 2016-02-13
  • 2017-02-17
  • 2017-03-31
  • 2012-06-20
  • 2017-03-26
相关资源
最近更新 更多