usb摄像头驱动移植第一步总结

合集下载

机顶盒加装摄像头方法

机顶盒加装摄像头方法

机顶盒加装摄像头方法机顶盒加装摄像头的方法有很多种,根据不同型号和品牌的机顶盒,选择最适合的方法来加装摄像头。

下面将分别介绍两种常见的方法。

一、通过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 摄像头驱动和应用实验

2.3 视频捕获函数与其捕获线程
int CCameraCode::StartStreaming (HDC hdc, RECT *prect, WORD wFormat, WORD wFrame, DWORD dwInterval) { PTHREADSTRUCT pThd = (PTHREADSTRUCT)LocalAlloc (LPTR, sizeof (THREADSTRUCT)); if (!pThd) return ERROR_NOT_ENOUGH_MEMORY; // Load parameter passing struct pThd->wFormat = wFormat; pThd->wFrame = wFrame; pThd->rect = *prect; pThd->dwInterval = dwInterval; pThd->hdc = hdc; pThd->pCamercode =this;
2
USB 设备的识别过程,包括 USB 总线枚举过程、设备类配置过程等。而 USB 的通信过 程,则按层次依次分为信号层、协议层和数据传输层进行。下面分别对上述过程进行描述。 数据传输层 接 协议层 USB 主机 信号层 USB 总线接口 端 点 口
逻辑通信
物理通信
图 2 USB 通信的逻辑结构
a) USB 设备的识别过程: 总线枚举过程: 当一个新的 USB 设备接入集线器(HUB)的某个端口上,集线器就会通过“状态改变管 道”向 USB 主机(USB Host)报告新的设备的接入。主机询问集线器确认新设备的接入后, 等待一段时间后,向端口发出复位命令并使能该端口。 在端口复位完毕后,该端口就有效了,此时 USB 设备出于默认状态,地址为 0。接着主 机给设备分别一个唯一的地址,设备进入有地址状态。 主机从设备中读取所有配置描述符,并且根据读取的配置描述符为设备指定一个配置。 这样设备就可以得到所需要的电量和其他资源,设备已经准备就绪。 设备类配置: 总线枚举完毕后,从设备的角度讲,它已经可以正常工作了,但是主机尚未为该设备的 不同接口分配具体的客户端驱动程序。 因此此时主机端协议软件找到设备中每个接口所需要 的驱动程序,然后驱动程序从接口的选择设置中选出最合适的,为接口中端点创建管道。 如此完成所有接口的配置,设备的配置过程就彻底完成了。USB 设备就像非 USB 设备一 样传输数据了。 USB 通信原理 USB 的通信就是指 USB 设备与 USB 主机之间的通信。物理上,总线上的设备通过一条物 理连线和主机通信,所有的设备共享这个物理链路。逻辑上,主机给每个设备提供了一条逻 辑的连接,每个设备都有这样一条点对点的连接。 为了细化 USB 的通信机制,协议开发者采用了分层的概念。USB 通信逻辑上分成三层: 信号层、协议层和数据传输层。 信号层用来传输位信息流的信息,在这里传输的数据称为包(Packet) ;协议层用来实 现包字节流的信息,它们在信号层被编码成 NRZI 位信息传送出去,这里的包信息流称为事 务处理(Transaction) ;数据传输层用来实现在功能接口间传输有一定意义的信息, 这些信 息在协议层被打包为包格式,这里的信息流称为传输(Transfer) 。下面分析各个层次进行 数据传输I CCameraCode::ReadFrameThread (PVOID pArg) { int rc = 0; BOOL f; DWORD dwBytes; THREADSTRUCT Thd; FORMATPROPS fmtData; int nFrameCnt = 0; DWORD dwTick = 0; DWORD dwErr = 0; if (!pArg) return -1; // Copy over params Thd = *(PTHREADSTRUCT)pArg; CCameraCode *pCameracode=(CCameraCode*)Thd.pCamercode; LocalFree (pArg); rc = pCameracode->GetFormatInformation (Thd.wFormat, Thd.wFrame, &fmtData); if (rc) return rc; // Initialize the conversion library rc =pCameracode->pMjpe2bmp-> InitDisplayFrame (NULL); RECT rect; if ((Thd.rect.right == 0) && (Thd.rect.bottom == 0)) SetRect (&rect, Thd.rect.left, Thd.rect.top, Thd.rect.left + fmtData.dwWidth, Thd.rect.top + fmtData.dwHeight); else rect = Thd.rect; // Parameters needed to start a stream STARTVIDSTRUCT svStruct; dwBytes = 0; svStruct.cbSize = sizeof (STARTVIDSTRUCT); svStruct.wFormatIndex = Thd.wFormat; svStruct.wFrameIndex = Thd.wFrame; svStruct.dwInterval = Thd.dwInterval; svStruct.dwNumBuffs = NUMBUFFS; svStruct.dwPreBuffSize = PREBUFFSIZE; svStruct.dwPostBuffSize = 0; // Start the video stream f = DeviceIoControl ( pCameracode->hCam, IOCTL_CAMERA_DEVICE_STARTVIDEOSTREAM, (LPVOID)&svStruct, sizeof (STARTVIDSTRUCT), 0, 0, &dwBytes, NULL); if (f) { GETFRAMESTRUCT gfsIn;

USB光电头驱动安装说明

USB光电头驱动安装说明

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高清摄像头方案。

基本原理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 对照下图选项,有两项没有一项没有加*。

USB摄像头驱动移植

USB摄像头驱动移植

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驱动移植教程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源码。

基于linux2.6.35内核的usb云台摄像头zc301驱动移植

基于linux2.6.35内核的usb云台摄像头zc301驱动移植
__video_do_ioctl:VIDIOCSRIGHT =400e763c app:4010763c __video_do_ioctl:VIDIOCSLEFT =400e763d app:4010763d __video_do_ioctl:VIDIOCSUP =400e763e __video_do_ioctl:VIDIOCSDOWN =400e763f 是15-24为有问题,参数大小传送失败
宏定义要做修改 /*For usb-camera rotation */ #define VIDIOCSRIGHT _IOW('v',60, int) /* right */ #define VIDIOCSLEFT _IOW('v',61, int) /* left */ #define VIDIOCSUP _IOW('v',62, int) /* up */ #define VIDIOCSDOWN _IOW('v',63, int) /* down */
bit31~bit30 2位为 “区别读写” 区,作用是区分是读取命令还是写入命令。 bit29~bit15 14位为 "数据大小" 区,表示 ioctl() 中的 arg 变量传送的内存大小。 Bit14~bit08 8位为 “魔数"(也称为"幻数")区,这个值用以与其它设备驱动程序的 ioctl 命令进行区别。 bit07~bit00 8位为 "区别序号" 区,是区分命令的命令顺序序号。

void zc3xx_rotate_left(struct gspca_dev *gspca_dev) { reg_w(gspca_dev->dev, 0x000f,0x003b); reg_w(gspca_dev->dev,0x0007,0x003a); reg_w(gspca_dev->dev,0x0008,0x0038); reg_w(gspca_dev->dev,0x0008,0x003a); reg_w(gspca_dev->dev,0x0007,0x0038); reg_w(gspca_dev->dev,0x0007,0x003a); reg_w(gspca_dev->dev,0x0000,0x0038); #if 0 zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x0f),0x3b,NULL,0); zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x07),0x3a,NULL,0); zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x08),0x38,NULL,0); zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x08),0x3a,NULL,0); zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x07),0x38,NULL,0); zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x07),0x3a,NULL,0); zc3xxRegWrite(gspca_dev->dev,0xa0,CLAMP(0x00),0x38,NULL,0); #endif } 在gapca.h里面增加云台控制函数声明 void zc3xx_rotate_left(struct gspca_dev *gspca_dev); void zc3xx_rotate_up(struct gspca_dev *gspca_dev); void zc3xx_rotate_down(struct gspca_dev *gspca_dev); void zc3xx_rotate_right(struct gspca_dev *gspca_dev); 在Videodev2.h文件中添加如下代码: /*For usb-camera rotation */ #define VIDIOCSRIGHT _IOW('v',60, struct video_picture) /* right */ #define VIDIOCSLEFT _IOW('v',61, struct video_picture) /* left */ #define VIDIOCSUP _IOW('v',62, struct video_picture) /* up */ #define VIDIOCSDOWN _IOW('v',63, struct video_picture) /* down */ 注意: 在cgi的控制程序中也应该加如上红定义: 在后再根据编译中出现的问题不断修改,一般问题不会很大了!按着错误改就能成功!!!!!!! 问题: 出现内核的宏定义与应用程序宏定义数值不一样? 在内核打印结果

usb驱动安装详细教程

usb驱动安装详细教程

第一步,打开i9000的USB调试
步骤:手机桌面——设定——应用程式——开发——勾选USB调试,如图01:
第二步,使用数据线连接电脑与手机
第三步,打开设备管理器,电脑桌面——计算机——鼠标右键,选中管理——设备管理器
第四步,找到其他设备,会发现带有黄色叹号的Samsung_android 设备,如图02
第五步,选中Samsung_android 设备,鼠标右键——更新驱动——浏览计算机以查找驱动,选中刚下载的i9000驱动包,如图03
第六步,当第一次驱动安装完成后,在其他设备里会出现两个带黄色叹号的设备,如图04
第七步,重复第一次的驱动安装方法,依次更新这两个带有黄色叹号的设备,还是选中i9000驱动包,如图05
第八步,当这两个带黄色叹号的设备正确安装驱动后,在其他设备里就不会出现了,此时展开ADB Interface,会发现Samsung android adb 已经正常连接,至此,i9000驱动安装完毕。

压缩包里有驱动附件和详细的图片安装过程。

+如何开发wince usb 摄像头的驱动(转)

+如何开发wince usb 摄像头的驱动(转)

这段时间成功的开发了中星微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摄像头驱动的移植并在网页上查看视频信息

【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摄像头驱动开发流程

浅谈WinCE平台USB摄像头驱动开发流程

浅谈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摄像头打交道。

【IT专家】z301摄像头的驱动移植

【IT专家】z301摄像头的驱动移植

本文由我司收集整编,推荐下载,如有疑问,请与我司联系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文件中,将该数据。

中星微X最新驱动安装注意事项样本

中星微X最新驱动安装注意事项样本

中星微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按鼠标右键卸载, 如下图所示:步骤三、拔除摄像头, 开始安装新的驱动。

基于Video4Linux 的USB摄像头

基于Video4Linux 的USB摄像头

块 videodev.o 没有加。 没有加。 3. 出现错误: ov511.o:couldn’t find the kernel version this modules 出现错误: was compiled for。这是试图插入一个不是可装入模块的目标文件。 这是试图插入一个不是可装入模块的目标文件。因为在内核配置 阶段, 阶段,是 把 ov511 模块静态加到内核中的, 模块静态加到内核中的,虽然看起来和可装入模块的文件名 ov511.o 完 全一样, 全一样,但是不能用 insmod 命令加入。 命令加入。 4.如果出现 Ov511.o:unresolved symbol video********,那就<M> 选中 video for linux, 用 新 生 成 的内 核 启 动系 统 , 再 insmod videodev.o,insmod ov511.o 就可以啦。 就可以啦。 1.2 zc301 驱动 摄像头的驱动是从 http://mxhaard.free.fr/下的针对 embeded 环境, 环境, 有专门的 patch,我用的是 usb-2.4.31LE06.patch。 (1)把它放到/HHARM9-EDU/kernel/driver/usb 下,解压, 解压,打补丁。 打补丁。 就会在此目录下看到 spca5xx 文件夹了。 文件夹了。可能会有一些错误, 可能会有一些错误,我的错 误是在 Makefile 和 config.in 文件中, 根据它的提示, 进行相应的修改 文件中, 根据它的提示, 即可。 即可。Patch 时会将修改方法写到 Makefile.rej 和 config.in.rej 文件 中,把这两个文件里的内容加到 Makefile 和 config.in
中就行了。 中就行了。 (2)编译内核, 编译内核,进入/HHARM9-EDU/kernel,make menuconfig。 我采用和上面介绍的 ov511 驱动的方法一样, (M)选中 驱动的方法一样,动态加载。 态加载。 SPCA5XX 这一项 ( 3 ) make dep ; make zImage ; make modules 。就会在 /HHARM9-EDU/kernel/driver/usb/spca5xx 中生成 spca5xx.o,spcadecoder.o,spca_core.o 啦。这就是我们要的驱动。 这就是我们要的驱动。 ( 4 ) 用 新 内 核 启 动 , insmod 这 三 个 .o 文 件 ( 可 以 不 用 加 载 spcadecoder.o) ,摄像头就加载成功啦 ,摄像头就加载成功啦。 摄像头就加载成功啦。

记录仪 USB 驱动使用说明说明书

记录仪 USB 驱动使用说明说明书

一、安装驱动,打开光盘里的“记录仪USB驱动”,打开“SETUP.EXE”,点击“安装”,提示安装成功即可关闭,一台电脑只需
安装一次。

如果提示安装失败请关闭所有杀毒软件,先点击“卸载”再点击“安装”,如图:
二、软件使用:连接记录仪,参数设置,历史记录导出。

1、连接记录仪,把光盘里的“THtool-V1.2.1.exe”文件复制到电脑桌面并打开,用USB线连接记录仪,会自动查找串口
号,点击“连接”,通讯状态:“正常”为连接成功。

通讯状态:“接收超时”为连接失败,请按照“第三”查看记录仪的串口号,软件上选择该串口号,并且确保仪表的波特率与软件的一致(默认19200)。

2、参数设置,首次使用要设置相关参数,主要设置:校准时间、记录间隔、温湿度上限下限告警值、开记录。

3、历史记录导出,按步骤读取完后会自动生成Excel文件。

已读过的记录数据想要再次读取或者只想读取最近多少天的数据(按记录间隔算一下就知道了),可以在“未读条数”
输入预读的条数,点“重设未读”便可。

“日查询读取”可以指定读取某天的记录,“时间段读取”可以指定读取某个时间段的记录。

三、如果电脑存在多个串口,自动查找不到串口号,按下面步骤查看,右击“我的电脑”→单击“管理”→单击“设备管理器”
→单击“端口”便可查看。

四、清除记录,软件连接成功后,点清除记录,提示输入密码,密码为“4660”。

一般不用清除记录,存满后会自动覆盖。

USB驱动安装,电脑摄像头及拨号上网使用说明

USB驱动安装,电脑摄像头及拨号上网使用说明

----------------------- 页面 13-----------------------
选择“手动设置我的连接”,点击“下一步”:
选择“用拨号调制解调器连接”,点击“下一步”:
13
双击“PC Camera”,弹出如下提示框:
5
----------------------- 页面 6-----------------------
点击“重新安装驱动程序”:
选择“否,暂时不”,点击“下一步”
三、上网设置说明
在“网络连接”中,选择并点击“创建一个新连接”,
点击“下一步”:
选择“连接到Internet”,点击“下一步”:
12
----------------------- 页面 5-----------------------
二、电脑摄像头功能使用
在按照步骤一完成USB 驱动安装后,在手机端选择“系统设置-电脑摄像头”启动电脑摄像
头功能,此时在PC 端的设备管理器中会看到以下界面:
----------------------- 页面 15-----------------------
选择该连接为“任何人使用”或“只是我使用”,点击“下一步”:
输入用户名“CARD”,密码“CARD”和确认密码“CARD”,点击“下一步”:
15
单击“下一步”,
单击“仍然继续”,
9
----------------------- 页面 10-----------------------
----------------------- 页面 14-----------------------
输入internet服务器的名称,点击“下一步”:

从零开始用vc驱动usb摄像头

从零开始用vc驱动usb摄像头

最近要做关于图像处理方面的,需要对摄像头采集视频信号,网上找的资料太林乱,自己整理了一下,希望对初学者有所帮助安装DirectX 9 .0b SDK这个现在还是比较难搞到的,可以到微软官网上去下载。

自从DirectX 9.0c sdk 后,DirectShow SDK不再包含在DirectX SDK中,而是以Extras的形式发布,后来集成了一部分SDK到Windows SDK中,也就是说后来的环境(比如vs2005、vs2008环境下)比较难配置,极有可能不稳定,产生这样那样的错误。

初学者可能看到如此难搞的环境配置就望而却步了,不利于学习。

所以还是在VC6.0或者VC++2003环境下配置DirectX 9.0 SDK。

以下是几个包含DirectShow SDK的DirectX SDK的下载地址①DirectX 9.0 SDK:/browse.aspx/.Public/Dir ectX%209.0%20SDK②DirectX 9.0b SDK:/browse.aspx/.Public/Dir ectX%209.0b%20SDK③DirectX 9 sum_2004(2004年夏天更新的版本):/browse.aspx/.Public/Dir ectX%209.0%20SDK%5E_sum2004本人用的是第二个安装好后进入C:\DXSDK\Samples\C++\DirectShow\BaseClasses目录,把这个工程在Debug和Release下编译后,将生成的STRMBASE.lib和strmbasd.lib复制到C:\DXSDK\Lib下面。

(Debug和Release这两种方式的设置vc 6.0为build;set active configuration 选择debug或release)3.将DirectX SDK的Include和Lib目录配置到VC的系统目录中去,并且放在标准的VC目录之前,以保证编译器能够拿到最新版本的源文件。

usb摄像头驱动移植第一步总结

usb摄像头驱动移植第一步总结

Kernel version :2.6.22.6Crosstool :arm-softfloat-linux-gnu-gcc-3.4.5Board :FS2410System :ubuntu 8.10Source :spcaview-20061208.tar.gz SDL-1.2.13.rar servfox-R1_1_3.rar gspcav1-20071224.tar.gz整理:LXP一、移植gspcav1-20071224FS2410开发板上移植的是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 USBconfig USB_SPCA5XXtristate "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 Makefilegspca-objs := gspca_core.o decoder/gspcadecoder.oobj-$(CONFIG_USB_SPCA5XX) += gspca.oclean:rm -f *.[oas] .*.flags *.ko .*.cmd .*.d .*.tmp *.mod.crm -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]方式加载,不能以(*)形式加载。

电脑摄像头怎么安装驱动

电脑摄像头怎么安装驱动

电脑摄像头怎么安装驱动电脑摄像头驱动怎么安装呢?安装驱动之前首先得知道摄像头的安装方法吧。

下面是店铺为大家介绍摄像头的驱动和安装方法,欢迎大家阅读。

摄像头的驱动安装方法第一:首先不要插摄像头,要先安装驱动程序,用安装光盘中的"驱动程序",如安装过就不要再装了,没有安装光盘,可以从网上下载,下载后解压到一个文件夹,看下一步。

第二:把摄像头插上,提示"找到新硬件,接着出现安装向导,按照提示安装即可,插上摄像头没动静,请将鼠标移到电脑桌面上"我的电脑",按右键选"管理",再选"设备管理器"找里边有没有"未知设备",选下面的"USB DEVICE"双击左键,选择重新安装驱动程序即可.3lian素材第三:前两步没安装好摄像头的话,请插上摄像头,将鼠标移到电脑桌面上"我的电脑",按右键选"管理",再选"设备管理器"找里边有没有"图像处理设备",下面有带感叹号!的"USB PC CAMERA""双击左键,选择重新安装驱动程序即可.第四:A,如前三项都没安装好,就要麻烦些了,请先看下"设备管理器"下的"通用串行总线控制器",看有没有一个"UNKNEW DEVICE",再次拔插一下换个USB接口,一样的现象就是摄像头有问题了,请找经销商处理.B,以上都没处理的话就是程序乱了,现象就是你安装驱动程序时感觉一下就装完了,这时候只能通过手动去删除程序了.程序在下面几个文件夹里:1. C:PROGRAM FILESVIMICROVM301B或VM303B 删除2.C:PROGRAM FILESInstallShield Installation Information{CE3B8E96-B0AF-4871- 9178- 1519B58E3A9或{41E496B5-47F4-11D6-9BBB-00E0987BB2CD} 删除.*注意此为隐藏文件夹,请在上面一排菜单上选"工具"下的"文件夹选项",再选"查看" 下的"显示隐藏文件和文件夹"字体下载3.C:WINDOWSINFOEM*.*(OEM开头的文件都要删掉);4.C:WINDOWSSYSTEM32DRIVERSUSBVM31B或USBVM33B 删除;5.C:WINDOWSTWAIN_32VM301B或VM0303全都删除;执行完上面的删除程序后,你重新安装程序,这次一定会装好的,虽然对现代高科技产品有点心烦。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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,移植方法略。

相关文档
最新文档