编译内核模块时需要帮助启用配置



我正在使用3.10.x内核树。我的内核模块需要配置VIDEOBUF2。

这是在驱动程序/media/v4l2-core/Kconfig 中定义的:

# Used by drivers that need Videobuf2 modules
config VIDEOBUF2_CORE
    select DMA_SHARED_BUFFER
    tristate

所以我把'CONFIG_VIDEOBUF2_CORE=y'放在我的内核配置文件中,然后编译。从 Kconfig 它有CONFIG_VIDEOBUF2_CORE没有依赖关系,我认为将 CONFIG_VIDEOBUF2_CORE=y 添加到我的内核中配置应该可以工作。我正在修改正确的内核配置文件,因为我设置其他标志,如 CONFIG_VIDEO_DEV=y,这有效。

生成的 .config 不包含 'CONFIG_VIDEOBUF2_CORE=y'

编译失败了,一堆

undefined reference to `vb2_buffer_done'
undefined reference to `vb2_buffer_done'
undefined reference to `vb2_buffer_done'
undefined reference to `vb2_buffer_done'

如果有人可以帮助我,我真的很感激。

谢谢。

我不能直接评论这个主题,因为它需要 50 个声誉才能拥有此特权。你可以做:make ARCH = target_architecture CROSS_COMPILE = toolchain defconfig_file。此命令执行将在内核源代码的主目录中创建一个 .config 文件。此文件将包含目标 SOC 上外围设备的默认配置(我假设您具有与 defconfig 文件相关的知识)。现在,如果您想操作它并想向其添加设备支持,请执行:make menuconfig,您可以通过选择配置来添加设备支持,例如VIDEOBUF2_CORE在您的情况下,然后您的内核 soure 已准备好进行编译/交叉编译。PS:避免手动编辑.config文件。

最新更新