硬件平台: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摄像头的更多相关文章

  1. RedHat Linux 下安装、测试摄像头

    RedHat Linux 下安装.测试摄像头(全文见附件)     随着视频电话的迅速发展我相信大家一定有过在Windows 下安装摄像头的经历,然而大多数 都不支持Linux .我现以罗技摄像头为例 ...

  2. Linux下玩转Dota2

    Dota2是一款颇为风靡的即时战略类游戏,去年官方就支持Mac和Linux了,对于习惯Mac和linux平台的孩子们来说,简直感动的泪流满面. 当然,也简直是linux程序猿的福音啊啊! 与Win8. ...

  3. Linux笔记(固定USB摄像头硬件端口,绑定前后置摄像头)

    在Android的系统会有前置摄像头和后置摄像头的定义,摄像头分为SOC类型的摄像头和USB这一类的摄像头,接下要分析就是USB摄像头这一类 . 一般在android或者linux系统中分析一个模块, ...

  4. 学习Linux下s3c2440的USB鼠标驱动笔记

    1.ARM-Linux下USB驱动程序开发1.1.1.linux下USB配置:*********(MassStorage:存储设备)********************************** ...

  5. Linux下cutecom使用USB转串口线

    http://www.cnblogs.com/pang123hui/archive/2011/05/29/2309888.html 在Linux下的串口调试一直使用minicom,虽说Linux的精髓 ...

  6. linux下如何使用USB存储设备

    如何在Linux环境中使用USB接口的 存储 设备?这是各大电脑论坛上出现得比较多的一个问题,同此可见这也是摆在许多电脑玩家面前的一道难题. 本文就为您提供一套完美的解决方案,通过下面的方法,您仅可以 ...

  7. 64位linux下玩32位汇编编程

    利用下假期,打算把linux下的汇编语言给熟悉下,结果是以32位为版本的,只能在办公室的机器上跑了个opensuse的32位版本,家里的suse挂了,无法输入中文.打算再安装下32位系统,今天找到了个 ...

  8. linux下玩转磁盘管理与挂载硬盘

    前言 本文将带来linux下的磁盘管理中的硬盘挂载,Linux操作系统挂载硬盘需要了解的一些知识.这可能是迄今为止介绍的最最最实用的linux硬盘挂载的文章了,比较详细.由于工作原因,平时使用的比较多 ...

  9. linux下 玩转ptrace

    译者序:在开发Hust Online Judge的过程中,查阅了不少资料,关于调试器技术的资料在网上是很少,即便是UNIX编程巨著<UNIX环境高级编程>中,相关内容也不多,直到我在 ht ...

随机推荐

  1. 【bzoj1047】[HAOI2007]理想的正方形 二维RMQ

    题目描述 有一个a*b的整数组成的矩阵,现请你从中找出一个n*n的正方形区域,使得该区域所有数中的最大值和最小值的差最小. 输入 第一行为3个整数,分别表示a,b,n的值第二行至第a+1行每行为b个非 ...

  2. [洛谷P2613]【模板】有理数取余

    题目大意:给你$a,b(a,b\leqslant10^{10001})$,求出$\dfrac a b\equiv1\pmod{19260817}$,无解输出 Angry! 题解:在读入的时候取模,若$ ...

  3. HTML,CSS,font-family:中文字体的英文名称【转载】

    转自:http://www.9958.pw/post/html_font-family 宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft ...

  4. 笔记软件:三强篇EverNote、Mybase、Surfulater

    通过上一篇<寻找最好的笔记软件:海选篇>的综合分析,作者发现有3种软件具有较明显的优势,可谓“笔记软件三强”.它们是:EverNote.Mybase 和 Surfulater.此三者相同之 ...

  5. linux之expr命令

    expr命令可以实现数值运算.数值或字符串比较.字符串匹配.字符串提取.字符串长度计算等功能.它还具有几个特殊功能,判断变量或参数是否为整数.是否为空.是否为0等. 先看expr命令的info文档in ...

  6. MATLAB7 + sqlitejdbc-v056.jar 访问数据库

    以下代码出错: conn=database('data.db','','','org.sqlite.JDBC','jdbc:sqlite:C:/MATLAB7/work/del_man_voice_f ...

  7. linux 内存查看方法:meminfo\maps\smaps\status 文件解析

    linux 下面查看内存有多种渠道,比如通过命令 ps ,top,free 等,比如通过/proc系统,一般需要比较详细和精确地知道整机内存/某个进程内存的使用情况,最好通过/proc 系统,下面介绍 ...

  8. 嵌入式Linux支持LCD console【转】

    转自:http://blog.sina.com.cn/s/blog_664c545f0100v9zl.html 转载:http://www.mculee.cn/post/48.html [1]LCD ...

  9. ZOJ 3820:Building Fire Stations(树的直径 Grade C)

    题意: n个点的树,边长全为1,求找出两个点,使得树上离这两个点距离最远的那个点,到这两个点(中某个点就行)的距离最小. 思路: 求树直径,找中点,删除中间那条边(如果直径上点数为奇数,则删任何一侧都 ...

  10. Python基础-迭代器&生成器&装饰器

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 我现在有个需求,看 ...