在linux下玩转usb摄像头
硬件平台:PC机一台 、usb摄像头
操作系统:Linux3.0.8
交叉编译环境:arm-none-Linux-gnueabi-gcc 4.5.1
调试步骤:
一、linux 内核解压
1.1使用linux-3.0.8-FS210_v8.tar.xz内核,将这个内核压缩包拷贝到虚拟机的linux系统上
1.2 执行 tar –xvf linux-3.0.8-FS210_v8.tar.xz,得到内核(用来产生镜像文件,烧进 s5pv210 开发板上)
1.3 解压之后,进入 linux-3.0.8-FS210_v8 内核,修改该目录下的 makefile,并配置相应的 make menuconfig,如下:
修改 Makefile
Make menuconfig
1.3.1 usb 驱动添加
Device Drivers --->
SCSI device support --->
<*> SCSI disk support
<*> SCSI generic support
<*> SCSI media changer support
[*] USB support --->
<*> USB Mass Storage support
1.3.2 添加驱动(video)
Device Drivers --->
<*> Multimedia support --->
<*> Video For Linux
[*] Video capture adapters --->
[*] V4L USB devices --->
<*> USB Video Class (UVC)
[*] UVC input events device support
1.4 执行 make zImage –j2,报如下错误:
修改这个文件
将
修改为
继续编译最后出现
1.5 拷贝镜像到相应的目录下
开发板通过 tftp,下载虚拟机上的镜像,所以执行
cp zImage /tftpboot/
二、抓拍代码的移植
2.1用 arm-none-linux-gnueabi-gcc,编译该文件
2.1.1 虚拟机上编译 arm-none-linux-gnueabi-gcc 1.c -o 1,
编译之前,需修改 应用程序.c文件中的设备节点,默认是/dev/video3。
2.1.2 拷贝可执行文件到开发板的根文件系统某目录下(本实验,使用 nfs服务,给板子提供文件系统)
比如 cp 1 /opt/rootfs/drv(/opt/rootfs为虚拟机提供给开发板
根文件系统,drv为我自己创建的目录)
2.1.3 开发板成功和虚拟机连上后,连接好摄像头,进入到用于抓拍的可执行文件的目录,执行./1,会在该目录下生成对应的图片,默认抓拍
12张。示例:
三、流媒体的移植
3.1jpeg 库的移植
jpeg 源码包通过下面这个网址下载http://www.ijg.org/files/jpegsrc.v8b.tar.g
解压源码包
tar xvf jpegsrc.v8b.tar.gz
配置源码 cd jpeg-8b
./configure --prefix=/home/linux/jpeg --host=arm -none-linux-gnueabi
(./configure 配置源代码树)
安装目录:
--prefix=PREFIX
体系无关文件的顶级安装目录 PREFIX,也就Apache的安装目录。
[/usr/local/apache2]
系统类型:
--host=HOST
指定 Apache HTTP 服务器将要运行的目标系统类型 HOST 。
[BUILD])
3.2编译
Make
3.3安装
make install拷贝库到根文件系统中
cp /home/linux/jpeg /lib/libjpeg.so.8 /opt/rootfs/lib
3.4 mjpg-stream的移植
3.4.1 mjpg-stream源码包通过下面这个网址下载
http://sourceforge.net/projects/mjpg-streamer/
解压源码
tar -xvf mjpg-streamer-r63.tar.gz
mkdir /home/linux/jpeg
3.4.2 修改源码
cd mjpg-streamer-r63
修改顶层 makefile 及 plugins 目录中的各级 makefile 将所有(注意这里需要修改 的内容) CC=gcc 修改为
修改 plugins/input_uvc/Makfile
修改
CFLAGS += -O2 -DLINUX -D_GNU_SOURCE-Wall -shared -fPIC
为
修改
$(CC) $(CFLAGS) -ljpeg -o $@ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
为
编译
(make clean)
make
mkdir /opt/rootfs/mjpg
cp *.so /opt/rootfs/mjpg
cp mjpg-streamer /opt/rootfs/bin
3.5 运行 mjpg_stream
mjpg_streamer -i “/mjpg/input_uvc.so –y” -o “/mjpg/output_http.so -w
192.168.7.156:8080”& (注意:这里是板子的 ip 192.168.7.156)
浏览器上执行:
http://192.168.7.156:8080/?action=snapshot (每次回车单张抓拍)
或者
http://192.168.7.156:8080/?action=stream (视频流)
或者打开 viewer.exe,输入 IP 和端口,点击 Connect 连接,可在下方看到视频流。
戳阅读原文:零基础总担心能不能行?2周见分晓!
在linux下玩转usb摄像头的更多相关文章
- RedHat Linux 下安装、测试摄像头
RedHat Linux 下安装.测试摄像头(全文见附件) 随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...
- Linux下玩转Dota2
Dota2是一款颇为风靡的即时战略类游戏,去年官方就支持Mac和Linux了,对于习惯Mac和linux平台的孩子们来说,简直感动的泪流满面. 当然,也简直是linux程序猿的福音啊啊! 与Win8. ...
- Linux笔记(固定USB摄像头硬件端口,绑定前后置摄像头)
在Android的系统会有前置摄像头和后置摄像头的定义,摄像头分为SOC类型的摄像头和USB这一类的摄像头,接下要分析就是USB摄像头这一类 . 一般在android或者linux系统中分析一个模块, ...
- 学习Linux下s3c2440的USB鼠标驱动笔记
1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)********************************** ...
- Linux下cutecom使用USB转串口线
http://www.cnblogs.com/pang123hui/archive/2011/05/29/2309888.html 在Linux下的串口调试一直使用minicom,虽说Linux的精髓 ...
- linux下如何使用USB存储设备
如何在Linux环境中使用USB接口的 存储 设备?这是各大电脑论坛上出现得比较多的一个问题,同此可见这也是摆在许多电脑玩家面前的一道难题. 本文就为您提供一套完美的解决方案,通过下面的方法,您仅可以 ...
- 64位linux下玩32位汇编编程
利用下假期,打算把linux下的汇编语言给熟悉下,结果是以32位为版本的,只能在办公室的机器上跑了个opensuse的32位版本,家里的suse挂了,无法输入中文.打算再安装下32位系统,今天找到了个 ...
- linux下玩转磁盘管理与挂载硬盘
前言 本文将带来linux下的磁盘管理中的硬盘挂载,Linux操作系统挂载硬盘需要了解的一些知识.这可能是迄今为止介绍的最最最实用的linux硬盘挂载的文章了,比较详细.由于工作原因,平时使用的比较多 ...
- linux下 玩转ptrace
译者序:在开发Hust Online Judge的过程中,查阅了不少资料,关于调试器技术的资料在网上是很少,即便是UNIX编程巨著<UNIX环境高级编程>中,相关内容也不多,直到我在 ht ...
随机推荐
- 网站前后台分离 图片 flash 视频 等文件的共享问题
在网上找了,没有说到点子上的,不详细 问了有经验的同事,要建立 文件服务器,就是一个IIS 下的新网站,网站是共享图片 文件使用的专用网站 后台上传的图片保存在 文件服务器即 文件共享专用的网站目录地 ...
- P4285 [SHOI2008]汉诺塔
题目描述 汉诺塔由三根柱子(分别用A.B.C表示)和n个大小互不相同的空心盘子组成.一开始n个盘子都摞在柱子A上,大的在下面,小的在上面,形成了一个塔状的锥形体. 对汉诺塔的一次合法的操作是指:从一根 ...
- 【CF Round 429 B. Godsend】
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- saltstack 实现haproxy+keepalived
1.目录结构规划如下 mkdir -p /srv/salt/prod/haproxy mkdir -p /srv/salt/prod/keepalived mkdir -p /srv/salt/pro ...
- Quartus2 通过Nativelink调用modelsim进行功能仿真(转载)
quartus2建立工程后,编译并检查语法通过后(功能仿真都不需要综合) tips:这样你的工程层次化也同时完成了. 打开Assignment -> settings, 找到Simulation ...
- 行为型设计模式之模板方法(Template Method)
结构 意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Te m p l a t e M e t h o d 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 适用性 一次性 ...
- 杭电oj2064、2067、2068、2073、2076-2078、2080、2083-2085
2064 汉诺塔III #include<stdio.h> int main(){ int n,i; _int64 s[]; while(~scanf("%d",&a ...
- 【一】ODB - C++ 访问数据库的利器--Hello World On Windows(Version-24)
本文以MySQL数据库为例,其他数据类似. 官方文档和下载 ODB官方首页 官方开发者说明书(开发教程) 安装下载首页(下载与安装教程Windows/Linux) Windows安装步骤(都是英 ...
- 【linux高级程序设计】(第十一章)System V进程间通信 1
System V, 曾经也被称为 AT&T System V,是Unix操作系统众多版本中的一支. 传统上,System V 被看作是两种UNIX"风味"之一(另一个是 B ...
- AsBcd的意思