【问题标题】:Need help in enable configuration when compile Kernel module编译内核模块时需要帮助启用配置
【发布时间】:2023-03-14 12:28:01
【问题描述】:

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

在drivers/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'

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

谢谢。

【问题讨论】:

  • 正如你所说的“.config 不包含 CONFIG_VIDEOBUF2_CORE=y'”,显然编译会失败。你能提供你正在遵循的编译步骤吗?这些步骤中必须缺少某些点,否则 .config 应该包含该标签。
  • 这也取决于 MEDIA_SUPPORT。请首先使用 menuconfig 启用它。搜索 menuconfig 上的依赖选项
  • 我有 MEDIA_SUPPORT,我在生成的 .config 中看到 CONFIG_MEDIA_SUPPORT=y。我不知道如何使用菜单配置。我正在做'make myconfig'和make。我只需要在 myconfig 中添加新配置。
  • “我不知道如何使用 menuconfig。” -- 试试make menuconfig。不鼓励手动编辑 .config 文件。

标签: linux-kernel linux-device-driver


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2022-08-13
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    相关资源
    最近更新 更多