linux-3.0.8-LZ210-V1 移植摄像头: USB 摄像头 芯片:中星微ZC301P
来源:互联网 发布:开淘宝店如何交保证金 编辑:程序博客网 时间:2024/04/30 06:36
注意你为何使用本文件针对
内核版本:linux-3.0.8-LZ210-V1
移植摄像头: USB摄像头 芯片:中星微ZC301P
首先内核配置一些相关信息
一:添加驱动(video)
make menuconfig
Device Drivers --->
Scsi device support --->
* scsi disk support
* scsi generic support
* scsi media changer support
<*> Multimedia support --->
<*> Video For Linux
[*] Video capture adapters (NEW) --->
[*] V4L USB devices (NEW) --->
<*> USB Video Class (UVC)
[*] UVC input events device support (NEW)
<*> GSPCA based webcams --->
<*> ZC3XX USB Camera Driver
二:网络视频服务器移植
于平板摄像头采集上的数据为 YUV格式,而我们希望得到 JPEG的压缩图像,所以需
要 JPEG库的支持。
a) 下载 JPEG库
通过下面这个网址下载 JPEG源码:http://www.ijg.org/files/jpegsrc.v8b.tar.gz
b) 配置 JPEG源码
$ tar xvf jpegsrc.v8b.tar.gz
$ cd jpeg-8b
$./configure --prefix=/home/linux/home/lee/workdir/farsight/fspad/jpeg/jpeg-arm --host=arm-none-linux-gnueab
// --prefix为指定安装的目录
// --host为编译使用的交叉工具链
c) 编译和安装
$ make –j2 //编译
$ make install //安装到指定目录
d) 添加到文件系统中 把编译生成的库拷贝的我们
使用的文件系统中。
$ cd jpeg-arm
$ cp lib/* /source/rootfs/lib/ // /source/rootfs为文件系统的路
三:JPG-Streamer的移植
a) 下载 MJPG-Streamer源码
通过下面这个网址下载 MJPG-Streamer源码包:
http://sourceforge.net/projects/MJPG-streamer/
b) 配置 MJPG-Streamer源码:
i. 修改 Makefile文件
修改顶层 Makefile以及所有子层 Makefile文件中的编译工具项:
CC = gcc
// 修改为:
CC = arm-none-linux-gnueabi-gcc
ii. 再次修改 plugins/input_uvc/Makfile文件
第 16行添加需要使用 JPEG库头文件的路径:
16 CFLAGS += -I/home/linux/workdir/farsight/fspad/jpeg/jpeg-arm/include
FSPAD_702MJPG-Streamer视频流服务器移植
3
第 24行添加编译 input_uvc.so所使用的库文件的路径:
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
// 修改为:
$(CC) $(CFLAGS) –ljpeg -L/home/linux/workdir/farsight/fspad/jpeg/jpeg-arm/lib -o
$@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
iii. 修改 plugins/input_uvc/v4l2uvc.c
第 99行 staticintinit_v4l2(structvdIn*vd)函数内添加(99行附近}号后面位置加就行):
#if 1
struct v4l2_input inp;
inp.index = 0;
if (-1 == ioctl(vd->fd, VIDIOC_S_INPUT, &inp))
printf("VIDIOC_S_INPUT error\n");
#endif
第 195行 mmap函数参数中添加:
vd->buf.length, PROT_READ, MAP_SHARED, vd->fd,
// 修改为
vd->buf.length, PROT_READ | PROT_WRITE, MAP_SHARED, vd->fd,
注销 下面代码
/*
*setframerate
*/
structv4l2_streamparm*setfps;
setfps=(structv4l2_streamparm*)calloc(1,sizeof(structv4l2_streamparm));
memset(setfps,0,sizeof(structv4l2_streamparm));
setfps->type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
setfps->parm.capture.timeperframe.numerator=1;
setfps->parm.capture.timeperframe.denominator=vd->fps;
ret=ioctl(vd->fd,VIDIOC_S_PARM,setfps);
c) 编译 MJPG-Streamer源码
$ make clean
$ make –j2
d) 添加到文件系统中 把编译生成的应用和库拷贝的我们使
用的文件系统中。
$ cp *.so /source/rootfs/mjpg // /source/rootfs 为文件系统的路径
$ cp mjpg-streamer /source/rootfs/bin
四、 测试 MJPG-Streamer
b) 运行 MJPG-Streamer程序 切记不要打错
# mjpg_streamer -i "/mjpg/input_uvc.so" -o "/mjpg/output_http.so -w
开发板ip:8080" &
浏览器输入
http:// 开发板ip:8080/?action=stream (视频流)
如果出现:
MJPG-streamer [1563]: Using V4L2 device.: /dev/video3
i: Desired Resolution: 640 x 480
MJPG-streamer [1563]: Desired Resolution: 640 x 480
i: Frames Per Second.: 5
MJPG-streamer [1563]: Frames Per Second.: 5
i: Format............: MJPEG
MJPG-streamer [1563]: Format............: MJPEG
ERROR opening V4L interface: No such file or directory
Init v4L2 failed !! exit fatal
i: init_VideoIn failed
MJPG-streamer [1563]: init_VideoIn failed
说明:
MJPG-streamer [1563]: Using V4L2 device.: /dev/video3后边的/dev/video3视频设备路径指定出错。
解决方法:
第一步:拔掉摄像头 开启开发板 在putty输入vi /dev/video 连按两下tab键会有如下现象:
[root@lz210 /]# vi /dev/video
/dev/video0 /dev/video14 /dev/video21
/dev/video1 /dev/video2 /dev/video22
[root@lz210 /]# vi /dev/video
第二步:插上摄像头 开启开发板 在putty输入vi /dev/video 连按两下tab键会有如下现
[root@lz210 /]# vi /dev/video
/dev/video0 /dev/video14 /dev/video21 /dev/video3
/dev/video1 /dev/video2 /dev/video22
[root@lz210 /]# vi /dev/video
第三步:对比第一步与第二步,你会发现多出来一个 /dev/video3(视个人情况,我的是多出这个 对应上就行),这说明/dev/video3就是你的摄像头。
第四步:打开mjpg-streamer-r63内核源码
修改mjpg-streamer-r63/mjpg_streamer.c
vi mjpg_streamer.c
在普通模式下输入 /video0
修改:把/dev/video0
为:dev/video3
第四步:
修改 vi plugins/input_uvc/input_uvc.c
同理找到/dev/video0 把video0改成video3即可
第五步:编译 MJPG-Streamer源码
$ make clean
$ make –j2
$ cp *.so /source/rootfs/mjpg // /source/rootfs 为文件系统的路径
$ cp mjpg-streamer /source/rootfs/bin
回到:四、 测试 MJPG-Streamer
就解决问题了
- linux-3.0.8-LZ210-V1 移植摄像头: USB 摄像头 芯片:中星微ZC301P
- 中星微ZC301P摄像头驱动支持
- USB摄像头驱动的移植 linux
- linux USB 摄像头 驱动 移植,使用
- linux USB 摄像头 驱动 移植,使用
- usb摄像头移植
- linux使用USB摄像头
- LINUX USB 摄像头驱动
- Linux USB 摄像头驱动
- oks3c6410开发板 linux-3.0.1内核 ZC301P摄像头 构成视频监控系统时内核oops解决办法
- ARM9平台移植中星微ZC0301P的USB摄像头
- linux下开发USB摄像头
- LINUX 下USB摄像头设置
- linux USB摄像头高级编程
- linux usb 摄像头测试软件
- 中星微zc0301pl摄像头驱动移植
- linux gspca usb摄像头驱动添加对新型号的详细移植步骤
- 摄像头驱动程序 Arm-Linux摄像头驱动程序的移植
- Swift-AppDelegate简介
- 理智与情感
- python 数组的使用
- sqlalchemy elixir mysql has gone away
- android UiAutomator自定义输出方法时,需要方法重载的另一种解决方案
- linux-3.0.8-LZ210-V1 移植摄像头: USB 摄像头 芯片:中星微ZC301P
- Android - WebVeiw输入法收回顶部留空白
- FastCgi与PHP-fpm关系
- MySQL触发器中变量的使用
- 常用Ubuntu下软件安装脚本
- 设计模式分类(创建型模式、结构型模式、行为模式)
- Java反射关键字
- 左边为选项卡,右边为内容,当鼠标滚轮滚动到某一位置时,选项卡样式也相应做变化
- 期末课程设计--学生成绩管理系统及开发