学习目标:在linux终端安装xawtv,并测试vivi.ko驱动程序。

一、安装xawtv

1)ubuntu能上网情况下,使用命令:# sudo apt-get install xawtv

2)如果不能上网,需要先下载源码:xawtv-3.95.tar.gz: http://www.kraxel.org/releases/xawtv/
步骤:
在这个网站创建新的sources.list 地址:http://repogen.simplylinux.ch/
a. 选择国家
b. 选择相邻的ubuntu版本
c. 选择"Ubuntu Branches"
d. 生成sources.list
e. 把得到内容替换到/etc/apt/sources.list
f.  # sudo apt-get update
    # sudo apt-get install xawtv
 
二、USB摄像头测试
1.让ubuntu处于前台,插上USB摄像头,执行命令:# ls /dev/video* 可以看到生成了/dev/video0设备节点;
2.执行命令:# xawtv 可以看到视频画面
 
三、测试虚拟摄像头vivi
1. 确实ubuntu的内核版本,执行命令:# uname -a 
2. 下载2.6.31-14版本的内核,网址:www.kernel.org,解压后把drivers/media/video目录取出传到ubuntu的/work/project目录下
3.  修改目录下的Makefile
 1)首先查看内核目录 # ls /usr/src:
 则Makefile修改为:
  KERN_DIR = /usr/src/linux-headers-2.6.31-14-generic
  all:
          make -C $(KERN_DIR) M=`pwd` modules
  clean:
          make -C $(KERN_DIR) M=`pwd` modules clean
          rm -rf modules.order
  obj-m   += vivi.o
4. 编译:make
5. 加载驱动:# insmod vivi.ko
---------------------------------------------------------------------------------------------
出现问题:
使用命令,打印内核输出信息:# dmesg
提示缺少函数
使用Source Insight查看他们所在的源文件,然后将他们加入Makefile编译为模块:
obj-m   += vivi.o
obj-m   += videobuf-core.o
obj-m   += videobuf-vmalloc.o
重新编译并加载:
 insmod videobuf-core.ko
   insmod videobuf-vmalloc.ko
   insmod v4l2-common.ko
   insmod vivi.ko
---------------------------------------------------------------------------------------------
6. 在设备目录下可以看到新的设备节点video1:# ls /dev/video (这里video1为vivi虚拟出来的视频设备节点)
7. 使用xawtv命令,测试:xawtv -c /dev/video1
(注意video1的设备节点可能会变化)

2.2 vivi虚拟视频驱动测试的更多相关文章

  1. 彻底分析虚拟视频驱动vivi(三)

    在Ubuntu系统中接上usb摄像头设备时,系统会自动安装对应的usb设备驱动程序.我们现在要使用自己编译的vivi驱动,该怎么办呢? 1.先安装系统自带的vivi驱动和它所依赖的所有驱动:sudo ...

  2. V4L2学习(五)VIVI虚拟摄像头驱动

    概述 前面简单分析了内核中虚拟摄像头驱动 vivi 的框架与实现,本文参考 vivi 来写一个虚拟摄像头驱动,查询.设置视频格式相对简单,难点在于 vb2_buf 的处理过程. 数据采集流程分析 在我 ...

  3. 初识V4L2(三)-------分析vivi.c 虚拟视频驱动

    1.分配video_device结构体 2.设置 3.注册  video_register_device 分析vivi.c: vivi_init( )//入口函数 vivi_create_instan ...

  4. vivi虚拟摄像头驱动程序

    一.vivi虚拟摄像头驱动 基于V4L2(video for linux 2)摄像头驱动程序,我们减去不需要的ioctl_fops的函数,只增加ioctl函数增加的必要的摄像头流查询等函数: #inc ...

  5. V4L2(二)虚拟摄像头驱动vivi深入分析【转】

    转自:http://www.cnblogs.com/tureno/articles/6694463.html 转载于: http://blog.csdn.net/lizuobin2/article/d ...

  6. 通过虚拟驱动vivi分析摄像头驱动

    Linux摄像头驱动学习之:(二)通过虚拟驱动vivi分析摄像头驱动 一.通过指令 "strace -o xawtv.log xawtv" 得到以下调用信息: // 1~7都是在v ...

  7. 二十四、V4L2框架主要结构体分析和虚拟摄像头驱动编写

    一.V4L2框架主要结构体分析 V4L2(video for linux version 2),是内核中视频设备的驱动框架,为上层访问视频设备提供统一接口. V4L2整体框架如下图: 图中主要包括两层 ...

  8. 【转】基于V4L2的视频驱动开发

    编写基于V4L2视频驱动主要涉及到以下几个知识点:1> 摄像头方面的知识 要了解选用的摄像头的特性,包括访问控制方法.各种参数的配置方法.信号输出类型等.2> Camera解码器.控制器 ...

  9. 基于V4L2的视频驱动开发【转】

    转自:http://blog.chinaunix.net/uid-10747583-id-298573.html Tags:V4L2驱动框架.API.操作流程…… 原文地址:http://www.ee ...

随机推荐

  1. How to prepare system design questions in a tech interview?

    http://blog.baozitraining.org/2014/09/how-to-prepare-system-design-questions.html 如何准备面试中的系统设计问题一直都是 ...

  2. Windows 编译 MQTT C++ Client

    MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,有可能成为物联网的重要组成部分.该协议支持所有平台,几乎可 ...

  3. zt 我们要找出毒素的藏身处,尽快把它赶出身体

    在中医看来,我们体内有很多毒素,凡是不能及时排出体外.对我们的身体和精神会产生不良作用的物质都可以称为“毒”,例如瘀血.痰湿.寒气.食积.气郁. 上火.这些毒素堆积在五脏之内,就会加速五脏的衰老,然后 ...

  4. Entity Framework: 主从表的增删改

    1.根据主表添加从表数据 var dest = (from d in context.Destinations where d.Name == "Bali" select d).S ...

  5. Hibernate双向一对多、双向多对多关联关系中的映射文件怎么写

    这里以一对多关联关系为例.以Country类为一端,Competition类为多端. 一个国家可以有多个赛事,但是一个赛事只能属于一个国家. Country类 public class Country ...

  6. ubuntu环境安装谷歌驱动命令

    1.sudo apt-get install chromium-chromedriver. 2.直接下载:http://chromedriver.storage.googleapis.com/inde ...

  7. Swift3.0 调用C函数-_silen_name

    一般情况下Swit要想调用obj-c,c或c++代码必须通过obj-c以及桥接文件才可以办到,但是使用@_silgen_name,可以对于某些简单的代码,直接跳过桥接文件和.h头文件与C代码交互. 创 ...

  8. node express 跨域问题

    express = require('express'); var app = express(); //设置跨域访问 app.all('*', function(req, res, next) { ...

  9. 【[HNOI2005]狡猾的商人】

    加权并查集 由于给出信息的是一些一个区间的和为多少,我们显然并不好处理出每一个点应该为多少,这我们根本做不到 但是我们想一下,如果要求一个区间\([l,r]\)的和,那么我们是不是可以利用前缀和\(p ...

  10. PHP-------ajax返回值 返回JSON 数据

    ajax返回值  返回JSON  数据 ajax返回值 有text   JSON ajax返回值  返回JSON  数据 <title>无标题文档</title> <sc ...