usb摄像头驱动移植第一步总结
- 格式:doc
- 大小:1.25 MB
- 文档页数:4
机顶盒加装摄像头方法机顶盒加装摄像头的方法有很多种,根据不同型号和品牌的机顶盒,选择最适合的方法来加装摄像头。
下面将分别介绍两种常见的方法。
一、通过USB接口连接摄像头1. 准备工作:首先需要准备一台带有USB接口的机顶盒和一个兼容的摄像头。
确保机顶盒的固件版本支持USB摄像头。
2. 连接:将摄像头的USB接口连接到机顶盒的USB接口上。
根据机顶盒的界面设置,选择对应的输入源为USB摄像头。
3. 安装驱动程序:有些机顶盒需要安装驱动程序才能正常使用摄像头。
连接好摄像头后,根据机顶盒的提示进行驱动程序的安装。
4. 调试:安装好摄像头和驱动程序后,进入机顶盒的设置界面,找到摄像头设置选项。
按照提示进行摄像头的校准和调试。
一般来说,可以调整摄像头的亮度、对比度、饱和度等参数。
5. 使用:完成以上步骤后,摄像头就可以正常工作了。
在机顶盒的界面上,可以看到摄像头的画面。
可以通过遥控器或者键盘来进行摄像头的控制,如调整焦距、切换拍摄模式等。
二、通过HDMI接口连接摄像头1. 准备工作:同样需要准备一台拥有HDMI接口的机顶盒和一个兼容的摄像头。
确保机顶盒的固件版本支持HDMI摄像头。
2. 连接:将摄像头的HDMI接口连接到机顶盒的HDMI接口上。
根据机顶盒的界面设置,选择对应的输入源为HDMI摄像头。
3. 安装驱动程序:有些机顶盒需要安装驱动程序才能正常使用摄像头。
连接好摄像头后,根据机顶盒的提示进行驱动程序的安装。
4. 调试:安装好摄像头和驱动程序后,进入机顶盒的设置界面,找到摄像头设置选项。
按照提示进行摄像头的校准和调试。
一般来说,可以调整摄像头的亮度、对比度、饱和度等参数。
5. 使用:完成以上步骤后,摄像头就可以正常工作了。
在机顶盒的界面上,可以看到摄像头的画面。
可以通过遥控器或者键盘来进行摄像头的控制,如调整焦距、切换拍摄模式等。
无论是通过USB接口还是HDMI接口连接摄像头,需要注意以下几点:1. 确保机顶盒的固件版本支持连接摄像头,并且有相应的设置选项。
USB光电头驱动安装说明
珠海天聆通讯技术有限公司USB光电头(包括TL-OPUSB-IEC和TL-OPUSB-DLT)在第一次使用时需按以下步骤安装驱动。
安装步骤如下:
一.打开驱动文件夹,双击图标
二.双击图标后显示如下图,再点击“Next”。
三.点击“Next”后显示如下图,然后选择“I accept the tems of the license agreement”
再点击“Next”。
四.点击“Next”后显示如下图,然后点击“Browse”选择您安装的存储路径,选择好存储
路径后,点击"Next"。
五.点击“Next”后显示如下图,再点击“Install”.
六.点击“Install”后显示如下图,选择“Launch the CP210x VCP Driver Installer”然后点击“Finish”。
七.点击“Finish”后显示如下图,点击“Install”
八.点击“Install”后显示如下图,点击"是"选择重新启动计算机,重新启动计算机后驱动安装完成。
USB高清摄像头方案简介USB高清摄像头方案是一种基于USB接口的摄像头解决方案,可以通过USB接口连接到计算机或其他设备,提供高清图像和视频捕捉功能。
USB摄像头方案广泛应用于视频会议、在线教育、安防监控、电子游戏等领域。
本文将介绍USB高清摄像头方案的基本原理、硬件配置和软件开发要点,以帮助读者了解和使用USB高清摄像头方案。
基本原理USB高清摄像头方案的基本原理是通过摄像头模块采集图像数据,然后将数据传输到计算机或其他设备。
以下是USB高清摄像头方案的基本工作流程:1.摄像头采集图像数据:摄像头模块使用光学元件和图像传感器来采集环境中的图像数据。
摄像头模块通常包括镜头、光圈、快门等组件,用于实现对图像的调节和控制。
2.图像压缩和编码:采集到的图像数据通常比较庞大,需要进行压缩和编码以减小数据量。
常用的图像压缩和编码算法包括JPEG、H.264等。
B传输:压缩和编码后的图像数据通过USB接口传输到计算机或其他设备。
USB接口提供了高速数据传输能力,可以满足高清摄像头方案的数据传输需求。
4.数据解码和处理:计算机或其他设备接收到图像数据后,需要进行解码和处理。
解码将压缩和编码后的数据转换回原始图像数据,然后可以进行后续的图像处理和应用开发。
硬件配置USB高清摄像头方案的硬件配置包括摄像头模块、驱动电路和USB接口电路。
摄像头模块摄像头模块是实现图像采集功能的关键组件。
摄像头模块的选型应根据实际需求考虑分辨率、像素大小、光圈、焦距、帧率等参数。
常用的摄像头模块包括CMOS和CCD摄像头模块,其中CMOS摄像头模块具有低功耗、低成本和高速度的优势,被广泛应用于USB高清摄像头方案中。
驱动电路驱动电路用于控制和驱动摄像头模块。
驱动电路通常包括信号放大电路、滤波电路、时钟电路、电源管理电路等。
驱动电路的设计需要考虑摄像头模块的接口和特性,以确保良好的图像质量和稳定性。
USB接口电路USB接口电路用于将图像数据传输到计算机或其他设备。
摄像头移植过程详解一、移植环境:1、主机:Ubuntu 10.10发行版2、目标机:FS_S5PC100平台3、交叉编译工具:arm-none-linux-gnueabi.tar.bz2(解压后文件名为:arm-2010.09)4、摄像头模块:OV96505、Linux文件系统:rootfs_nfs.tar.xz(解压后文件名为:rootfs)6、内核:linux-3.0-fs4412_V3参考资料:基于2.6.35内核的OV9650摄像头驱动移植位置:/link?url=06uZmL4CLYtqqihIObtg1lywmgflOb9SZ3BvsPJomIWi2qWJxtpldR pB8BE06SmGnBlABua_IqiZIdxVWKKa_q&wd=&eqid=9eef387c000029710000000355bf0a68 (调试过程中没有用到,主要看老师给的文档)二、工具及内核配置1、工具链的配置将“工具” “Linux”目录中的“toolchain-4.4.6-farsight.tar”文件拷贝到工作目录中。
如图:注意:工作目录可以自行创建,这里以/home/linux/work/4412为例子:tar xvf toolchain-4.4.6-farsight.tar环境变量的添加sudo vi /etc/bash.bashrc在最后面添加以下命令export PATH=$PATH:/home/linux/work/4412/toolchain-4.4.6/bin/(注意改为你的目录地址)2、编译bootloader源码将\Cortex-A9\镜像源码目录中的uboot-fs4412_v2.tar拷贝到工作目录中,如图:执行命令:tar xvf uboot-fs4412_v2.tar.xz解压后会出现uboot-fs4412_v2目录,进入/uboot-fs4412_v2/u-boot-2010.03目录cd /uboot-fs4412_v2/u-boot-2010.03修改Makefilevi Makefile找到如下图所示代码:修改为:注意:工具链为工程提供的见1、工具链的配置保存退出后执行脚本build_uboot.sh./build_uboot.sh编译结果如下图所示下图中的u-boot-fs4412.bin即是我们所需要的uboot文件3、编译linux内核源码将\Cortex-A9\镜像源码目录中的linux-3.0-fs4412_v3.tar.xz拷贝到工作目录中(/home/linux/work/4412)执行以下命令解压linux源码xz -d linux-3.0-fs4412_v3.tar.xz解压完后,linux-3.0-fs4412_v3.tar.xz解压变成linux-3.0-fs4412_v3.tar压缩包再执行以下命令解压linux-3.0-fs4412_v3.tar压缩包再执行以下命令解压linux-3.0-fs4412_v3.tar压缩包tar xvf linux-3.0-fs4412_v3.tar解压后如图:进入linux内核目录cd linux-3.0-fs4412_V3修改Makefilevi Makefile修改198行中代码198 CROSS_COMPILE?= /home/linux/toolchain/toolchain-4.4.6/bin/arm-cortex_a8-linux-gnueabi-改为:CROSS_COMPILE ?= arm-cortex_a8-linux-gnueabi-注:在编译前查看make menuconfig 对照下图选项,有两项没有一项没有加*。
1通过SMB服务将SDK-H264/server目录拷贝到项目目录下
2解压内核到当前目录
命令#cd /home/guoqian/project/h264/server/kernel
#tar zxvf linux.2.6.29.tar.gz
解压完成后的文件为linux2.6.29
3清理中间文件、配置文件命令#cd linux-2.6.29
#make distclean
4选择参考配置文件
命令#cp config-h264 .config
5配置内核
#make menucofing ARCH=arm CROSS_COMPILE=arm-linux-
要使内核支持USB摄像头驱动,内核必须选上以下配置选项Device drivers→multimedia devices→
Video capture adapters→V4L USB devices→
最后保存退出。
配置文件config-h264已配置了上述选项
6编译内核
命令#make ulmage ARCH=arm CROSS_COMPILE=arm-linux-
编译完成后生成的内核映像ulmage位于arch/arm/boot/目录下。
7将ulmage拷贝到tftp服务目录/tftpboot
命令#cp arch/arm/boot/ulmage /tftpboot/ulmage-h264
至此USB摄像头驱动移植的工作就完成了。
USB驱动移植教程USB驱动移植教程一.USB驱动框架在Linux系统中,提供了主机侧和设备侧视角的USB驱动框架,这里,仅仅讲解主机侧角度看到的USB驱动框架。
从主机侧的角度而言,需要编写的USB驱动程序包括主机控制器驱动和设备驱动两类。
USB主机控制器驱动程序控制插入其中的USB设备,而USB设备驱动程序控制该设备如何作为设备与主机通信。
在USB主机控制器驱动和USB设备驱动之间还有一层叫USB核心层。
USB核心负责USB驱动管理和协议处理工作,它通过定义一些数据结构、宏和功能函数,向上为USB设备驱动提供编程接口,向下为USB主机控制器驱动提供编程接口;通过全局变量维护整个系统的USB设备信息,完成设备热插拔控制、总线数据传输控制等。
说了那么多,无图无真相啊~~Linux USB主机侧驱动总体框架二.USB驱动移植步骤1.S5PV210主机控制驱动的移植USB主机控制器有3种规范,UHCI(Universal Host Controller Interface),这种规范主要是Intel、Via芯片公司提供支持PC主板的;OHCI(Open Host Controller Interface),这种规范是微软提出来的,主要应用在非PC系统上的嵌入式领域上的USB芯片;EHCI(Enhanced Host Controller Interface),这种后来为提高USB速度而提出的规范,它支持最高速度为480Mbps。
在《S5PV210_UM_REV1.1》手册上搜索OHCI关键词,会发现下面一段话这表明S5PV210这款CPU支持一个USB主机接口,同时支持EHCI和OHCI这两种规范,支持USB1.1和USB2.0规范,支持最高的外设传输速率为480Mbps。
注意了,它并不支持USB3.0规范的USB设备,所以做测试的时候,千万不要拿USB3.0规范的USB设备去测试。
2.1移植ohci-s5p驱动打开内核目录:driversusbhost,发现Linux系统提供了大量的主机控制器驱动,找遍所有平台,都没有找到ohci-s5p.c源码。
第一步,打开i9000的USB调试
步骤:手机桌面——设定——应用程式——开发——勾选USB调试,如图01:
第二步,使用数据线连接电脑与手机
第三步,打开设备管理器,电脑桌面——计算机——鼠标右键,选中管理——设备管理器
第四步,找到其他设备,会发现带有黄色叹号的Samsung_android 设备,如图02
第五步,选中Samsung_android 设备,鼠标右键——更新驱动——浏览计算机以查找驱动,选中刚下载的i9000驱动包,如图03
第六步,当第一次驱动安装完成后,在其他设备里会出现两个带黄色叹号的设备,如图04
第七步,重复第一次的驱动安装方法,依次更新这两个带有黄色叹号的设备,还是选中i9000驱动包,如图05
第八步,当这两个带黄色叹号的设备正确安装驱动后,在其他设备里就不会出现了,此时展开ADB Interface,会发现Samsung android adb 已经正常连接,至此,i9000驱动安装完毕。
压缩包里有驱动附件和详细的图片安装过程。
这段时间成功的开发了中星微301H摄像头的wince驱动和视频采集程序。
中星微摄像头出来的数据为JPEG格式,我们将其直接读出,交给应用程序来解码,就可以显示图像。
中间的过程我们可以参考Linux GSPCA的驱动,将其移植到wince中就可以了。
中间的关键是要理解Linux的驱动,知道摄像头的初始化,取得一幅完整的图像。
幸好我以前开发过Linux USB的主和从设备,Wince USB的主和从设备的驱动,虽然如此,我还是花了一些时间,主要是要稳定,可靠。
下面是我参考的一些资料,非常有用。
USB摄像头的数据采集的一般流程为传感器接口――>图像信号处理-->图像压缩-->USB传输。
一般USB摄像头对采集图像都作了压缩(内置JPEG硬件压缩),压缩是为了提高图像传输效率,也就是动态分配USB带宽技术,使DSP采集的图像可以在USB1.0上传输效率提高,现在能够使640*480帧率高达30帧/秒。
至于传输协议,目前几乎所有的厂商使用自己的图像传输协议。
将来USB摄像头会有统一的标准。
要将USB摄像头和嵌入式系统相连时可能的,但是最好嵌入式系统使用Linux来做操作系统。
这样可以找到开发源代码的驱动,然后再针对自己的要求作二次开发。
JPEG的文件格式JPEG 的文件格式JPEG文件大体上可以分成以下两个部分:标记码(Tag)加压缩数据。
先介绍标记码部分。
标记码部分给出了JPEG图象的所有信息(有点类似于BMP中的头信息,但要复杂的多),如图象的宽、高、Huffman表、量化表等等。
标记码有很多,但绝大多数的JPEG文件只包含几种。
注意JPEG/JFIF 文件格式使用Motorola 格式,而不是Intel格式,就是说,如果是一个字的话, 高字节在前, 低字节在后.JPG文件是由一个个段(segments)构成的. 每个段长度<=65535.每个段从一个标记字开始.标记字都是0xff打头的,以非0字节和0xFF 结束.例如"FFDA","FFC4","FFC0".每个标记有它特定意义,这是由第2字节指明的.例如,SOS(StartOf Scan= "FFDA")指明了你应该开始解码.另一个标记DQT(Define Quantization Table = 0xFFDB)就是说它后面有64字节的quantization表在处理JPG文件时,如果你碰到一个0xFF,而它后面的字节不是0,并且这个字节没有意义.那么你遇到的0xFF字节必须被忽略.(一些JPG 里,常用用0xFF做某些填充用途)如果你在做huffman编码时碰巧产生了一个0xFF,那么就用0xFF 0x00代替.就是说在jpeg图形解码时碰到FF00就把它当作FF处理.另外在huffman编码区域结束时,碰到几个bit没有用的时候,应该用1 去填充.然后后面跟FF.下面是必须处理的标记SOF0 = Start Of Frame 0 = FFC0SOS = Start Of Scan = FFDAAPP0 = it"s the marker used to identify a JPG file which uses the JFIF specification = FFE0COM = Comment = FFFEDNL = Define Number of Lines = FFDCDRI = Define Restart Interval = FFDDDQT = Define Quantization Table = FFDBDHT = Define Huffman Table = FFC4段的类型:SOF0: Start Of Frame 0:~~~~~~~~~~~~~~~~~~~~~~~- $ff, $c0 (SOF0)- 长度(高字节, 低字节), 8+components*3- 数据精度(1 byte) 每个样本位数, 通常是8 (大多数软件不支持12 和16)- 图片高度(高字节, 低字节), 如果不支持DNL 就必须>0- 图片宽度(高字节, 低字节), 如果不支持DNL 就必须>0- components 数量(1 byte), 灰度图是1, YCbCr/YIQ 彩色图是3, CMYK 彩色图是4- 每个component: 3 bytes- component id (1 = Y, 2 = Cb, 3 = Cr, 4 = I, 5 = Q)- 采样系数(bit 0-3 vert., 4-7 hor.)- quantization table 号DRI: Define Restart Interval:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~- $ff, $dd (DRI)- 长度(高字节, 低字节), 必须是4- MCU 块的单元中的重新开始间隔(高字节, 低字节),意思是说, 每n 个MCU 块就有一个RSTn 标记.第一个标记是RST0, 然后是RST1 等, RST7 后再从RST0 重复DQT: Define Quantization Table:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~- $ff, $db (DQT)- 长度(高字节, 低字节)- QT 信息(1 byte):bit 0..3: QT 号(0..3, 否则错误)bit 4..7: QT 精度, 0 = 8 bit, 否则16 bit- n 字节的QT, n = 64*(精度+1)备注:- 一个单独的DQT 段可以包含多个QT, 每个都有自己的信息字节- 当精度=1 (16 bit), 每个字都是高位在前低位在后DAC: Define Arithmetic Table:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~法律原因, 现在的软件不支持arithmetic 编码.不能生产使用arithmetic 编码的JPEG 文件DHT: Define Huffman Table:~~~~~~~~~~~~~~~~~~~~~~~~~~- $ff, $c4 (DHT)- 长度(高字节, 低字节)- HT 信息(1 byte):bit 0..3: HT 号(0..3, 否则错误)bit 4 : HT 类型, 0 = DC table, 1 = AC tablebit 5..7: 必须是0- 16 bytes: 长度是1..16 代码的符号数. 这16 个数的和应该<=256- n bytes: 一个包含了按递增次序代码长度排列的符号表(n = 代码总数)备注:- 一个单独的DHT 段可以包含多个HT, 每个都有自己的信息字节COM: 注释:~~~~~~~~~~- $ff, $fe (COM)- 注释长度(高字节, 低字节) = L+2- 注释为长度为L 的字符流SOS: Start Of Scan:~~~~~~~~~~~~~~~~~~~- $ff, $da (SOS)- 长度(高字节, 低字节), 必须是6+2*(扫描行内组件的数量)- 扫描行内组件的数量(1 byte), 必须>= 1 , <=4 (否则是错的) 通常是3 - 每个组件: 2 bytes- component id (1 = Y, 2 = Cb, 3 = Cr, 4 = I, 5 = Q), 见SOF0- 使用的Huffman 表:- bit 0..3: AC table (0..3)- bit 4..7: DC table (0..3)- 忽略3 bytes (???)。
【usb摄像头驱动的移植】常见的usb摄像头有两种格式:YUV,GSPCA 格式YUV格式:不经压缩的视频GSPCA格式:视频经过了压缩1.如果摄像头是YUV格式:通用的移植步骤是:make menuconfigDevice Drivers ---><*> Multimedia support --->[*] Cameras/video grabbers support[*] Media USB Adapters --->< *> USB Video Class (UVC) (NEW)2.视频通过一张一张图片连续播放得到视频信息,每秒播放24帧图像会得到视频信息3.添加摄像头驱动(GSPCA)1.将摄像头插入到pc电脑,让pc电脑去识别摄像头。
将得到的详细的硬件信息是:V(vendor)ID: 0AC8 PID:303B2.在内核的源码中搜索VID或者PID.grep "303b" * ./* -nR搜索结果:drivers/media/usb/gspca/zc3xx.c:6986: {USB_DEVICE(0x0ac8, 0x303b)},425 config USB_GSPCA_ZC3XX426 tristate "ZC3XX USB Camera Driver"427 depends on VIDEO_V4L2 && USB_GSPCA说明要添加USB_GSPCA_ZC3XX VIDEO_V4L2 USB_GSPCA3.在菜单中用/ 搜索USB_GSPCA搜索结果:Symbol: USB_GSPCA [=n]││Type : tristate│Prompt: GSPCA based webcams│Location:│-> Device Drivers│(1) -> Multimedia support (MEDIA_SUPPORT [=n])│-> Media USB Adapters (MEDIA_USB_SUPPORT [=n])│Defined at drivers/media/usb/gspca/Kconfig:1│Depends on: USB [=y] && MEDIA_SUPPORT [=n] && MEDIA_USB_SUPPORT [=n]4.根据搜索结果找到对应的驱动在菜单中选中添加:make menuconfig-> Device Drivers │<*> Multimedia support --->[*] Cameras/video grabbers support │[*] Media USB Adapters ---><*> GSPCA based webcams --->< *> ZC3XX USB Camera Driver (NEW)5.make uImage.在开发板上:会有如下提示信息:[root@farsight ]# [ 33.740000] gspca_zc3xx 1-3.1:1.0: URB error -71, resubmitting[ 33.765000] gspca_zc3xx 1-3.1:1.0: URB error -71, resubmittinggspca_zc3xx 1-3.1:1.0: URB error -71, resubmitting[ 33.815000] gspca_zc3xx 1-3.1:1.0: URB error -71, resubmitting[ 33.820000] usb 1-3.1: USB disconnect, device number 3[root@farsight ]# ls /dev/video0ls: /dev/video0: No such file or directory[root@farsight ]# [ 41.450000] usb 1-3.1: new full-speed USB device number 4 using exynos-ehci[ 41.565000] gspca_main: gspca_zc3xx-2.14.0 probing 0ac8:303b[ 42.555000] input: gspca_zc3xx as /devices/12580000.ehci/usb1/1-3/1-3.1/input/input2 [ 42.900000] random: nonblocking pool is initialized驱动添加成功后产生/dev/video0:[root@farsight ]# ls /dev/video0/dev/video0说明驱动添加正确【如果想查看视频信息】查看视频的软件:mjpg_streamer软件在运行的时候需要依赖于图片库,所以在移植视频的源码之前,先移植图片库1.移植jpeg图片库的源码1) 下载jpeg图片库的源码。
浅谈WinCE平台USB摄像头驱动开发流程由于良好的性能、低廉的价格和灵活方便的特性,USB 摄像头正被广泛的集成到嵌入式系统中。
例如,通过USB 摄像头WinCE系统可以很方便地得到实时图像,这对某些要求实时图象监控的嵌入式系统是一个很不错的选择.但是由于嵌入式硬件平台的多样性,以及WinCE对USB设备驱动开发只提供了底层支持,再加上许多摄像头厂商尚未提供WinCE 下的USB摄像头驱动,这对初级开发人员在开发WinCE USB摄像头程序时是一个难点。
前段时间,公司委派我负责一个嵌入式项目,项目要求是在WinCE平台上集成USB摄像头驱动和视频采集程序。
这个项目的关键是要集成USB摄像头驱动,并高效的把摄像头设备进行初始化以取得一幅完整的图像。
幸好我以前开发过WinCEUSB的主从设备的驱动程序。
但虽然如此,我还是花了一些时间来调整系统的稳定性和可靠性。
在这里我分享在这次项目实践中得到的经验和教训,希望大家能少走弯路。
一. 什么是USB设备驱动程序开发?随着USB设备的普及,USB设备驱动开发在嵌入式系统变得越来越重要了.为了支持不同类型的硬件可以连接到WinCE平台上,微软提供了具有定制接口的流接口驱动程序模型.WinCE的USB外围设备一般是使用流接口驱动程序。
流接口驱动程序是指通过系统提供的文件系统API与应用程序交互;WinCE内核系统会通过设备管理器来完成对流接口驱动程序的加载、卸载等管理工作;而流接口驱动程序则会通过调用USBD模块提供的接口函数实现与底层USB设备通信。
因此,在进行USB设备驱动程序开发之前,我们必须先了解USB设备驱动的结构和分类。
(1)主机与USB摄像头的通讯结构USB摄像头驱动程序主要是利用系统提供的底层接口配置设备和摄像头设备进行通讯.因此,WinCE的USB摄像头驱动分为两层:USB Client设备驱动程序和底层的WinCE 函数实现层。
而底层的函数层本身又由两部分组成,即通用串行总线驱动程序(USBD)模块和较低层的主控制器驱动程序(HCD)模块.HCD负责最底层的处理,USBD模块实现较高的USBD函数接口.因此,USB摄像头驱动主要是利用USBD接口函数和外围USB摄像头打交道。
本文由我司收集整编,推荐下载,如有疑问,请与我司联系z301摄像头的驱动移植2012/06/14 2184 下面说一下使用的2.6.28内核里的驱动文件编译的过程 首先make menuconfig,主要需要选的配置项如下: Device Drivers - Multimedia devices- * video for linux [*]video capture adapters- [*]V4l USB devices - * USB video class (UVC) [*] UVC input events device support * GSPCA based webcams - * ZC3XX USB Camera Driver 做好如上配置后就make,产生zImage,烧入板子,启动 插入usb摄像头,产生提示信息: drivers/usb/media/gspcav1-20071224/gspca_core.c: USB GSPCA camera found.(ZC3XX) configuration #1 chosen from 1 choice gspca:probing 0ac8:304b zc3xx:probe 2wr ov vga 0x7648 zc3xx:probe 3wr vga 1 0x4001 zc3xx:probe sensor - 7648 zc3xx:Find Sensor OV7648 gspca:probe ok 至此说明系统发现usb设备,并且自动将驱动文件加入内核,设备可以使用了 输入命令mdev -s 更新设备节点,ls /dev 查看设备节点,应该看见设备节点video0 ,输入命令cat video0 2.img,将摄像头数据输出到2.img文件中,将该数据。
中星微30X最新驱动安装注意事项一、驱动不容易安装的原因1、当前市面上流行的中星微摄像头驱动版本很多, 许多用户在安装卸载驱动过程中残留有垃圾文件在系统注册表里面, 造成后面的驱动更新过程中安装困难;2、当前市面上存在着一种克隆操作系统, 里面集成了中星微旧版并同过了WHQL的驱动, 当用户安装新买的摄像头或更新最新驱动后, 摄像头无法正常工作;二、解决方案请广大用户不断的在我司网站( ) 和各经销商处获得最新的驱动, 现我司将此文档和最新驱动同时发布给广大用户。
如果在安装过程中还会出现问题, 请按以下步骤和工具软件进行操作。
针对以上第一种现象方法一、自动卸载方法步骤一、点击开始菜单中对应驱动的Uninstall卸载, ( 有可能Uninstall 的功能已经破坏, 那么能够经过安装新驱动进行反安装, 系统会首先将旧驱动卸载掉, 同样也能够达到目的。
)步骤二、在新的驱动安装前选择附件中以下相对应的可执行文件:FOR_XP_ME_98.EXE 用于Windows XP/ME/98FOR_Win2K.EXE 用于Windows( 注意: 该工具要求系统的默认路径是C盘才有效, 在Windows ME/98操作系统下如出现错误对话框, 表示系统已经干净了, 该工具不会对已经安装的驱动产生危害)步骤三、安装新的驱动方法二、手动卸载方法步骤一、在我的电脑-工具-文件夹选项-查看中将隐藏文件和文件夹选择为”选择所有文件和文件夹”如图所示:然后到C:\Windows\inf文件夹中将所有的OEM文件( 如oem0.inf, oem0.pnf; oem1.inf, oem1.pnf…) 剪切并转移到另外的目录中保存或者手动删除掉该摄像头对应的oem文件步骤二、完成上面的步骤后, 插入USB摄像头, 这时电脑会发现新硬件并弹出安装驱动的信息, 选择取消, 然后用鼠标右键点击我的电脑, 选择属性, 在弹出系统属性界面中, 进入系统属性-硬件-设备管理器将带有感叹号的PC CAMERA按鼠标右键卸载, 如下图所示:步骤三、拔除摄像头, 开始安装新的驱动。
一、安装驱动,打开光盘里的“记录仪USB驱动”,打开“SETUP.EXE”,点击“安装”,提示安装成功即可关闭,一台电脑只需
安装一次。
如果提示安装失败请关闭所有杀毒软件,先点击“卸载”再点击“安装”,如图:
二、软件使用:连接记录仪,参数设置,历史记录导出。
1、连接记录仪,把光盘里的“THtool-V1.2.1.exe”文件复制到电脑桌面并打开,用USB线连接记录仪,会自动查找串口
号,点击“连接”,通讯状态:“正常”为连接成功。
通讯状态:“接收超时”为连接失败,请按照“第三”查看记录仪的串口号,软件上选择该串口号,并且确保仪表的波特率与软件的一致(默认19200)。
2、参数设置,首次使用要设置相关参数,主要设置:校准时间、记录间隔、温湿度上限下限告警值、开记录。
3、历史记录导出,按步骤读取完后会自动生成Excel文件。
已读过的记录数据想要再次读取或者只想读取最近多少天的数据(按记录间隔算一下就知道了),可以在“未读条数”
输入预读的条数,点“重设未读”便可。
“日查询读取”可以指定读取某天的记录,“时间段读取”可以指定读取某个时间段的记录。
三、如果电脑存在多个串口,自动查找不到串口号,按下面步骤查看,右击“我的电脑”→单击“管理”→单击“设备管理器”
→单击“端口”便可查看。
四、清除记录,软件连接成功后,点清除记录,提示输入密码,密码为“4660”。
一般不用清除记录,存满后会自动覆盖。
Kernel version :2.6.22.6
Crosstool :arm-softfloat-linux-gnu-gcc-3.4.5
Board :FS2410
System :ubuntu 8.10
Source :spcaview-20061208.tar.gz SDL-1.2.13.rar servfox-R1_1_3.rar gspcav1-20071224.tar.gz
整理:LXP
一、移植gspcav1-20071224
FS2410开发板上移植的是Linux-2.6.22.6内核,USB及CS8900A均能工作,由于linux-2.6.22.6/drivers/usb 目录下没有media 目录,故移植步骤如下:
[linux@farsight usb]$ pwd
/work/kernel/linux-2.6.22.6/drivers/usb
[linux@farsight usb]$ vi Kconfig
添加
source "drivers/usb/media/Kconfig"
[linux@weijing usb]$ vi Makefile
添加
obj-$(CONFIG_USB_SPCA5XX) += media/
[linux@weijing media]$ pwd
/work/kernel/linux-2.6.22.6/drivers/usb/media
[linux@weijing media]$ vi Kconfig
#
# USB Multimedia device configuration
#
comment "USB Multimedia devices"
depends on USB
config USB_SPCA5XX
tristate "USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras"
depends on USB && VIDEO_DEV
[linux@weijing media]$ vi Makefile
#
# Makefile for USB Media drivers
#
obj-$(CONFIG_USB_SPCA5XX) += gspcav1-20071224/
[linux@weijing gspcav1-20071224]$ pwd
/work/kernel/linux-2.6.22.6/drivers/usb/media/gspcav1-20071224
[linux@weijing gspcav1-20071224]$ vi Makefile
gspca-objs := gspca_core.o decoder/gspcadecoder.o
obj-$(CONFIG_USB_SPCA5XX) += gspca.o
clean:
rm -f *.[oas] .*.flags *.ko .*.cmd .*.d .*.tmp *.mod.c
rm -rf .tmp_versions
(1)Multimedia devices --->
(*)Video For Linux
(2)USB support --->
(*)Support for Host-side USB
--- USB Host Controller Drivers
(*) OHCI HCD support
(3)--- USB Multimedia devices
[M] USB SPCA5XX Sunplus/Vimicro/Sonix jpeg Cameras
注意:这里这一项只能动态加载,不能静态编译进内核,否则会出现如下错误:
….undefined referance to ‘__this_modules’;
另外:编译内核出现这种错误….undefined referance to ‘__this_modules’;
则原因可能是:有些模块只能以[M]方式加载,不能以(*)形式加载。
内核编译完成之后,把~/linux-2.6.22.6/drivers/usb/media/gspcav1-20071224/下的gspca.ko文件cp到/source/rootfs中去。
(注:/source/rootfs是板子的根文件系统,这里采用动态下载的调试方式)
下载Servfox-R1_1_3解压进入其目录,将其中的Makefile.arm修改为Makefile,并修改Makefile里面的CC为arm-softfloat-linux-gnu-gcc,因为默认的是加载的动态库,因此还需
要修改Makefile中的SERVFLAGS为SERVFLAGS= -O2 –DLINUX $(W ARNINGS) –static,其中-static是我们添加的内容,make之后生成servfox。
加载驱动后可以运行servfox –g –d /dev/video0 –s 320x240 –w 7070 运行servfox
# ./servfox -d /dev/video0 -g -s 640x480 -w 7070
servfox version: 1.1.3 date: 11:12:2005 (C) mxhaard@magic.fr
wrong spca5xx device
Waiting .... for connection. CTrl_c to stop !!!!
Got connection from 192.168.1.222
spcaview源码包解压,进入解压后的目录,make后会报错,一般需要安装
SDL库,去网上下载后安装SDL库,在PC 机上安装SDL库:
解压:tar xvf SDL-1.2.13.tar.tar
配置:./configure
编译:make
安装:sudo make install
spcaview解压目录修改Makefile中的修改Makefile中的SDLLIBS =$(shell sdl-config --libs) 和SDLFLAGS = $(shell sdl-config --cflags),这两句主要是指定了SDL库的库路径和编译选项。
Make之后生成spcaview,在客户端运行spcaview –w 服务器ip:服务器端口号。
就可以采集图像了,
[root@farsight spcaview-20061208]# ./spcaview -g -w 192.168.1.17
Spcaview version: 1.1.7 date: 06:11:2006 (C) mxhaard@magic.fr
ERROR Set default port to 7070
using Server 192.168.1.17 Port 7070
bright 32768 contrast 32768
已经被编译进内核)
insmod gspca.ko (这是摄像头驱动)
2创建设备节点
mknod /dev/video0 c 81 0
这一步一般不用做,在insmod gspca.ko时,会自动创建该节点
3采集图像
#./servfox -d /dev/video0 -s 320x240 -w 7070
–w 192.168.1.186:7070
-g参数一定要加,否则会出现段错误
PC机上用Windows下的网页测试(如果开发板里装了BOA服务器):
spcaview后,还会产生<http-java-applet>,此是WEB客户端,将此客户端上传到开发板上的WEB文件夹中,则在浏览器输入http://192.168.1.186/index-sample.html则可看到摄像头采集来的图片了。
web SERVER是移植boa,移植方法略。