天嵌 ARM开发社区

 找回密码
 注册
查看: 3794|回复: 5

zc0301摄像头的问题

[复制链接]
lizhijie86su 发表于 2010-3-17 09:04:59 | 显示全部楼层 |阅读模式
又遇到了问题:

我现在用了内核自带的zc0301驱动,内核运行成功,也加载驱动模块成功。另外,usb驱动也配置进内核了。可是/dev/目录下就是没有video或video0设备。我该如何判断摄像头已经在工作了呢?

内核dmesg的信息:
usb 1-1: new full speed USB device using s3c2410-ohci and address 2
usb 1-1: configuration #1 chosen from 1 choice
yaffs_read_super: isCheckpointed 0
VFS: Mounted root (yaffs filesystem) on device 31:2.
Freeing init memory: 120K
dm9000 dm9000.0: WARNING: no IRQ resource flags set.
eth0: link down
zc0301: V4L2 driver for ZC0301[P] Image Processor and Control Chip v1:1.10
usbcore: registered new interface driver zc0301
亚瑟王 发表于 2010-3-17 10:56:51 | 显示全部楼层
在/dev/下的设备名是“v4l/video0”
回复

使用道具 举报

 楼主| lizhijie86su 发表于 2010-3-17 12:34:44 | 显示全部楼层
也没有/dev/v4l/video0呃,就是不知道如何判断摄像头已经在工作了?根据内核信息,驱动模块已加载成功。

参考其他帖子,有说手动建立设备节点:mknod /dev/video0 c 81 0
我用其他的测试程序(基于v4l2)根本打不开这个设备。看了测试程序的源码,打开设备部分为:
fd = open (dev_name, O_RDWR  | O_NONBLOCK, 0);
        if (-1 == fd) {
                fprintf (stderr, "Cannot open '%s': %d, %s\n",
                         dev_name, errno, strerror (errno));
                exit (EXIT_FAILURE);
        }
参考了文档:
When the O_NONBLOCK flag is given, the read() function and the VIDIOC_DQBUF ioctl will return the EAGAIN error code when no data is available or no buffer is in the driver outgoing queue, otherwise these functions block until data becomes available. All V4L2 drivers exchanging data with applications must support the O_NONBLOCK flag.

我猜测这个我创建的设备文件里面没有视频流数据,可能摄像头没有工作起来。

可是驱动已加载成功,我要怎样才能让摄像头工作起来呢?照理说如果设备工作起来了,它会自动在/dev/目录下创建设备节点。
请教亚瑟王了。
回复

使用道具 举报

亚瑟王 发表于 2010-3-17 15:48:22 | 显示全部楼层
建议你再看一下天嵌科技提供的Linux移植手册关于usb摄像头的章节。usb摄像头的设备节点是自动建立的。如果你找不到设备节点:两个可能,1没有接物理设备(也就是摄像头);2驱动不对。
回复

使用道具 举报

liusheng 发表于 2010-3-25 15:03:14 | 显示全部楼层
我也遇到了这个问题。我用了两个VIMICRO芯片的摄像头都不行
两个摄像头的信息如下:

A。品牌未知,是个小企鹅。
设备名称: VIMICRO USB PC Camera (ZC030X)

PNP设备ID: VID = 0AC8 PID = 301B
设备序列号: 5&&29333F81&&0&&2
  设备版本: (设备未返回此信息)

  设备类型: 标准USB设备 - USB2.0全速 (USB1.1)

芯片制造商: VIMICRO(中星微)
  芯片型号: ZC0301

产品制造商: VIMICRO
  产品型号: USB PC Camera (ZC030X) #3


B。牌子是anc S650pro
  设备名称: VIMICRO USB PC Camera (ZC030X)

PNP设备ID: VID = 0AC8 PID = 303B
设备序列号: 5&&29333F81&&0&&2
  设备版本: (设备未返回此信息)

  设备类型: 标准USB设备 - USB2.0全速 (USB1.1)

芯片制造商: VIMICRO(中星微)
  芯片型号: ZC0303

产品制造商: VIMICRO
  产品型号: USB PC Camera (ZC030X) #5

使用的驱动是也是zc0301 是通过加载模块的方式加载的
如下:

[root@SYLAR nfs]# insmod  camera/camera_module/zc0301.ko
zc0301: V4L2 driver for ZC0301[P] Image Processor and Control Chip v1:1.10
usbcore: registered new interface driver zc0301

没有出现 /dev/video0  经查看 /dev/v4l/video0是 在系统启动的时候ln出来的。
也是会出现Cannot open 的问题
感觉是因为驱动没有和摄像头匹配,如果匹配了应该会出现/dev/video0的。
但是芯片都是匹配的啊,为何无法识别,目前还未解决。研究中
回复

使用道具 举报

亚瑟王 发表于 2010-3-26 11:00:34 | 显示全部楼层
我这里现在没有摄像头了,下午买几个回来测试一下。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号-2 )

GMT+8, 2025-6-19 01:50 , Processed in 2.039742 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表