学习目标:在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. 安装或删除Skype for business server组件的时候,报错"错误: 找不到 SQL 服务"

    安装或删除Skype for business server组件的时候,到了安装所有并置数据库的时候,报错“错误: 找不到 SQL 服务.确保计算机 skype.centos.com 中安装了 SQL ...

  2. python接口自动化4-绕过验证码登录(cookie) (转载)

    前言 有些登录的接口会有验证码:短信验证码,图形验证码等,这种登录的话验证码参数可以从后台获取的(或者查数据库最直接). 获取不到也没关系,可以通过添加cookie的方式绕过验证码. 一.抓登录coo ...

  3. laravel5.5 自定义验证规则——手机验证RULE

    相信很多小伙伴和我一样烦恼,laravel没有自带手机号的验证,每次验证手机号都要写正则这类的规则,每次都是repeat yourself!违背了编码的一个原则,就是Don't repeat your ...

  4. lnmp环境下nginx配置‘负载均衡’

    NGINX负载均衡分发请求的几种方式: 1.轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除.2.weight 指定轮询几率,weight和访问比率成正比 ...

  5. g++: error: unrecognized command line option ‘-std=C++11’

    一个小程序,在编译的时候出错,原来使用的编译命令是 g++ -std=C++11 array.cpp -o array.exe g++: error: unrecognized command lin ...

  6. July 03rd 2017 Week 27th Monday

    Even if you are on the right track, you will get run over if you just sit there. 即使你处于正确的轨道上,但如果你只是坐 ...

  7. XAMPP中Apache因为端口原因不能启动的解决方法

    在开启XAMPP的Apache时报出如下错误信息: 9:08:14 PM [Apache] Error: Apache shutdown unexpectedly.9:08:14 PM [Apache ...

  8. (转)浅谈PostgreSQL的索引

    1. 索引的特性 1.1 加快条件的检索的特性 当表数据量越来越大时查询速度会下降,在表的条件字段上使用索引,快速定位到可能满足条件的记录,不需要遍历所有记录. create table t(id i ...

  9. Angular4.0--创建类实例

    src/app/hero.ts文件: export class Hero { constructor( public id: number, public name: string) { } } sr ...

  10. INFORMATICA 操作流程