Yocto bitbake生成找不到稀疏

Yocto bitbake生成找不到稀疏,yocto,bitbake,Yocto,Bitbake,我正在尝试编译Yocto配方中的内核模块。但是,我总是遇到这样的错误/bin/sh:1:sparse:找不到。 如果我使用填充的SDK交叉编译该模块,那么它工作得非常好 不知怎么的,她找不到稀疏的。 注意:稀疏已下载 这是我的食谱 SUMMARY = "test Linux kernel module" LICENSE = "CLOSED" inherit module SRC_URI = "git://github.com/xyz/test_yocto.git;protocol=https

我正在尝试编译Yocto配方中的内核模块。但是,我总是遇到这样的错误/bin/sh:1:sparse:找不到。 如果我使用填充的SDK交叉编译该模块,那么它工作得非常好

不知怎么的,她找不到稀疏的。 注意:稀疏已下载

这是我的食谱

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,它将通过检查,它将正常工作


我在这里遗漏了什么?

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


您可以避免使用KBUILD\u CHECKSRC,这可能就是您想要的:KBUILD\u CHECKSRC听起来像是您的模块开发人员应该使用的东西。或者,您可以根据需要将稀疏本机添加到模块配方中,然后确保您使用的是提供该配方的层。

可能重复的“否”完全不是。稀疏是在我的构建机器上下载的。我可以用SDK构建模块,它使用sparse。但是,这不能在bitbake构建期间完成。非常感谢。我想它会使用我的构建机器上的稀疏。