2.2 vivi虚拟视频驱动测试

学习目标:在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的设备节点可能会变化)
原文地址:https://www.cnblogs.com/lxl-lennie/p/10275421.html