2014-01-10 53 views
0

我正在使用3.10.x内核树。我的内核模块需要配置VIDEOBUF2。编译内核模块时需要启用配置帮助

即在驱动程序/媒体/用v412核心/的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' 

我很感激,如果有人能帮助我与此有关。

谢谢。

+0

正如你所说的“.config不包含CONFIG_VIDEOBUF2_CORE = y'”,显然编译将会失败。你能提供你正在遵循的编译步骤吗?这些步骤中必须缺少一些点,否则.config应包含该标签。 – pratik

+0

也取决于MEDIA_SUPPORT。请先使用menuconfig .search for for options选项启用menuconfig – user2760375

+0

我有MEDIA_SUPPORT,并且在生成的.config文件中看到CONFIG_MEDIA_SUPPORT = y。我不知道如何使用menuconfig。我正在做'make myconfig'并且make。我只需要将新配置添加到myconfig。 – michael

回答

0

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