硬件平台: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. linux 添加usb摄像头,在linux下玩转usb摄像头

    版权声明:本文为博主原创文章,未经博主允许不得转载. 硬件平台:PC机一台 .usb摄像头 操作系统:Linux3.0.8 交叉编译环境:arm-none-Linux-gnueabi-gcc 4.5. ...

  2. Linux系统下自动搜索USB摄像头地址及设备信息

    Linux系统下自动搜索USB摄像头地址及设备信息 在进行到多个USB摄像头开发时,会涉及到获取摄像头地址及设备信息问题. 一般USB摄像头的设备信息是固定的,我们基于设备信息,就可以在软件开发时进行 ...

  3. linux系统USB摄像头反应慢,Linux下OpenCV打开USB接口的UVC摄像头及索引号是202的原因...

    一般来说,USB的UVC摄像头在Linux平台下通过V4L驱动来使用.OpenCV打开USB的UVC摄像头一般也通过V4L驱动来打开.打开方法网上都有,一般就是通过VideoCapture的open( ...

  4. 20200213ubuntu20.04下的笔记本USB摄像头的相关资料

    20200213ubuntu20.04下的笔记本USB摄像头的相关资料 rootroot@rootroot-HP-Laptop-14s-dp0xxx:~$  rootroot@rootroot-HP- ...

  5. 【原创】IP摄像头技术纵览(一)---linux 内核编译,USB摄像头设备识别

    IP摄像头技术纵览(一)- linux 内核编译,USB摄像头设备识别 开始正文之前先来认识一下我的开发环境: 系统:ubuntu 10.04 开发板:AT91SAM9260 + Linux-2.6. ...

  6. Linux下,查看USB设备信息

    Linux下,查看USB设备信息 首先需要将usbfs挂载一下,然后才能查看. $ mount -t usbfs none /proc/bus/usb $ cat  /proc/bus/usb/dev ...

  7. Linux下玩转Dota2

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

  8. linux midi端口,在Linux下玩转MIDI

    曾经我非常热衷于MIDI音乐,原因是一直没有机会正儿八经的学习一种我喜欢的乐器,于是在电脑上用HappyEO和Cakewalk制作一些音乐(或者说噪音?)便成为了生活中的一个重要部分.但是最近相当长的 ...

  9. linux怎么用命令打开wine,Linux系统运维:10分钟教你如何使用Wine在Linux下玩魔兽世界...

    本文主要向大家介绍了Linux系统运维的如何使用Wine在Linux下玩魔兽世界,通过具体的步骤向大家展现,希望对大家学习Linux系统运维有所帮助. 目标:在 Linux 中运行魔兽世界 发行版:适 ...

最新文章

  1. 远看像乱序执行,近看是内存屏障的 BUG 是如何解决的?
  2. flutter 调用原生安卓插件_Flutter 如何调用Android和iOS原生代码
  3. Oracle12c异常关闭后启动PDBORCL(ORA-01033)
  4. Ascamp;Chr Converter v1.0.vbs
  5. vue + element-ui 聊天_Vue 插槽详解
  6. eclipse32位python版下载_python之(3)Python Eclipse+PyDec下载和安装教程(超级详细)...
  7. 小米推出物联网软件平台Xiaomi Vela;库克被指隐瞒iPhone中国需求下滑;Ubuntu Touch新版发布|极客头条
  8. HDU1274 展开字符串【文本处理】
  9. SQL SERVER 2000日期处理(转)
  10. 程序员最想得到的十大证件,你最想得到哪个?
  11. spoj COT COT2
  12. clock()、time()、clock_gettime()和gettimeofday()函数的用法和区别【转】
  13. 程序员必备的几款文档编辑器
  14. 南理工计算机科学与工程学院,周俊龙 - 南京理工大学 - 计算机科学与工程学院...
  15. 公司地址变更,税务变更,公司搬家了怎么变更企业信息
  16. C++学习——g++对成员函数的undefined reference 未定义引用,但只有在编译release时才会出现。
  17. AutoCAD.NET API2018二次开发第十九章
  18. 智能制造、工业互联网、数字化转型哪家强?请收好这份榜单!
  19. 基于超级电容Supercapacitor和蓄电池的充放电控制系统simulink仿真
  20. wgcna jimmy github

热门文章

  1. Windows CE授权费用
  2. centos 8 卸载anaconda_CentOS 7.8 (2003) 发布,附地址
  3. mysql随机显示记录_MySQL随机读取表中记录
  4. 色彩空间DCI XYZ转RGB
  5. 机器人学习--F1TENTH弗吉尼亚大学无人驾驶课程
  6. 使用Anaconda完全替代官方Python
  7. #define宏定义中的#,##,@#,\
  8. rust(34)-Rust and WebAssembly(2)
  9. 【Python】在模仿中精进数据可视化09:近期基金涨幅排行可视化
  10. 【CV】综述:基于深度学习的视觉跟踪方法进展