eviliori
驱动牛犊
驱动牛犊
  • 注册日期2008-01-07
  • 最后登录2010-04-14
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2618回复:3

请教一个linux下摄像头驱动的问题~

楼主#
更多 发布于:2010-04-13 21:34
最近在做linux下的摄像头驱动
我的摄像头的VID和PID为(0x0ac8, 0x3330),我也不知道是什么牌子的。。。
我使用的linux内核是2.6.29,里面有gspca 2.4.0的驱动,我想使用,可是又没有支持我这款摄像头
于是我修改了里面一个摄像头的VID和PID
将{USB_DEVICE(0x0ac8, 0x301b)}改为{USB_DEVICE(0x0ac8, 0x3330)},

之后加载驱动
#insmod gspca_main.ko
gspca: main v2.4.0 registered
# insmod gspca_zc3xx.ko
usbcore: registered new interface driver zc3xx
zc3xx: registered


插入摄像头后:
usb 2-1: reset high speed USB device using musb_hdrc and a2
usb 2-1.4: new high speed USB device using musb_hdrc and address 5
usb 2-1.4: device v0ac8 p3330 is not supported
usb 2-1.4: configuration #1 chosen from 1 choice
gspca: probing 0ac8:3330
zc3xx: probe sensor -> 00
zc3xx: Find Sensor HV7131B
gspca: probe ok
gspca: probing 0ac8:3330


这时候我运行我的视频捕获程序:
#./v4l2 -d /dev/video0
SUCCESS : open_device
gspca: no transfer endpoint found
Failed:VIDIOC_CROPCAP
SUCCESS : Init_device
Failed(MMAP):VIDIOC_STREAMON


其中gspca: no transfer endpoint found这句应该是驱动打印出来的
这个是在gspca.c中的static struct usb_host_endpoint *get_ep(struct gspca_dev *gspca_dev)中打印出来的

应用程序中,我能成功打开设备/dev/video0,并且能按照v4l2标准ioctl一些参数(基本都可以,除了这条VIDIOC_CROPCAP)
最大的问题是我想捕获视频的时候发送VIDIOC_STREAMON给驱动时,就返回失败了。。

这个应该是我的摄像头驱动没有正确的原因吧,请问应该如何修改?
eviliori
驱动牛犊
驱动牛犊
  • 注册日期2008-01-07
  • 最后登录2010-04-14
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-04-13 21:37
网上说,摄像头的DSP控制芯片是最重要的
我如何才能知道每款摄像头的DSP控制芯片型号?
网上能查吗?
总不能拆掉摄像头后才能看吧。。。。
eviliori
驱动牛犊
驱动牛犊
  • 注册日期2008-01-07
  • 最后登录2010-04-14
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2010-04-14 19:51
不好意思。。。这个问题换了摄像头后就正常了。。。
eviliori
驱动牛犊
驱动牛犊
  • 注册日期2008-01-07
  • 最后登录2010-04-14
  • 粉丝0
  • 关注0
  • 积分12分
  • 威望101点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2010-04-14 19:53
看了之前的一些帖子,在这个版面问问题几乎是不会得到解答的啊。。。。
游客

返回顶部