bitbake 构建找不到稀疏
bitbake build can't find sparse
我正在尝试编译 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"
这是我的 make 文件:
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_CHECKSRC=1
时,模块构建使用名为 'sparse' 的外部工具。此工具当前不是内核模块的构建依赖项,因此构建失败。
您可以避免使用 KBUILD_CHECKSRC(这可能是您想要的:KBUILD_CHECKSRC 听起来像是您的模块开发人员应该使用的东西)。或者,您可以将 "sparse-native" 添加到您的模块配方取决于,然后确保您使用的层提供了 (layers.openembedded.org says meta-sca has it)。
我正在尝试编译 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"
这是我的 make 文件:
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_CHECKSRC=1
时,模块构建使用名为 'sparse' 的外部工具。此工具当前不是内核模块的构建依赖项,因此构建失败。
您可以避免使用 KBUILD_CHECKSRC(这可能是您想要的:KBUILD_CHECKSRC 听起来像是您的模块开发人员应该使用的东西)。或者,您可以将 "sparse-native" 添加到您的模块配方取决于,然后确保您使用的层提供了 (layers.openembedded.org says meta-sca has it)。