fanwise901 发表于 2014-11-28 17:18

使用v4l2开发驱动,编译提示vb2_dma_contig_init_ctx undefined

在centos7下开发驱动,提示如上问题,在drivers/media/v4l2-core/下也找不到videobuf2-dam-contig.c
在网上倒是可以搜到这个文件,由于是新手想问一下,这个文件是系统内核提供的么,还是需要另外下载
还有关于v4l2驱动开发方面能不能提供点资料,万分感谢

Tinnal 发表于 2014-12-02 00:01

回复 1# fanwise901


你的内核版本是多少?vb2_dma_contig_init_ctx 是3.x内核才提供的函数。你的内核可以太旧了,如果要用,要不升级内核,要不找回老的驱动。

fanwise901 发表于 2014-12-03 22:22

内核是3.10的,应该是支持的
想问一下这个videobuf2的dma功能需要打开么,这两天在找原因,看了一下发现make menuconfig里没有videobuf2的dma,查找了一下发现后面是-n。
是需要修改一些地方让它变成-y么
回复 2# Tinnal


   

Tinnal 发表于 2014-12-04 00:56

回复 3# fanwise901


3.10肯定是有的。可以看:
http://lxr.free-electrons.com/source/drivers/media/v4l2-core/videobuf2-dma-contig.c?v=3.10
同时发现你一个拼写错误,把DMA写成DAM。

这个功能从Makefile里可以看出,需要打开CONFIG_VIDEOBUF_DMA_CONTIG配置。
http://lxr.free-electrons.com/source/drivers/media/v4l2-core/Makefile?v=3.10

查看Kconfig, (http://lxr.free-electrons.com/source/drivers/media/v4l2-core/Kconfig?v=3.10 ), 发现VIDEOBUF_DMA_CONTIG选项依赖HAS_DMA选项。你需在把所有的选项都打开才行。

fanwise901 发表于 2014-12-04 11:11

回复 4# Tinnal


在make menuconfig中查找看到的结果如图


HAS_DMA是打开的,可VIDEOBUF2_DMA_CONFIG还是=n
是要把Selected by里面的也修改么

Tinnal 发表于 2014-12-04 21:50

回复 5# fanwise901


选不上吗?这种情况应该能选上呀。

fanwise901 发表于 2014-12-06 13:18

回复 6# Tinnal


    谢谢
    解决了,我把selected by里面的改成=y就可以了
页: [1]
查看完整版本: 使用v4l2开发驱动,编译提示vb2_dma_contig_init_ctx undefined