JZ2440 摄像头驱动2_虚拟驱动vivi的测试

1、结合应用程序分析涉及到的调用

(1)如怎么得到里面的数据、怎么控制摄像头的亮度等信息。

(2)现在PC机上做实验

在ubuntu上安装一个应用程序的测试程序xawtv

安装xawtv:sudo apt-get install xawtv

apt-get主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。

如果无法上网


(3)下面不能ping通,需要加上路由(设置默认网关命令)


(4)重新安装sudo apt-get install xawtv

出现下面文件无法找到,到这个网站上确实找不到这个文件。我们用的ubuntu9.10


在这个网站创建新的sources.list
http://repogen.simplylinux.ch/
1. 选择国家
2.选择相邻的ubuntu版本
3. 选择"Ubuntu Branches"
4. 生成sources.list
5. 把得到内容替换到/etc/apt/sources.list
6. sudo apt-get update(更新完后就能安装xawtv)
   sudo apt-get install xawtv   (安装xawtv)

2、测试

(1)让虚拟机位于前台,接上USB摄像头。


(2)用dmesg命令查看内核打印信息,执行xawtv


出现以下内容


(3)点击右键出现以下菜单,下面左右移动可以设置亮度,


3、测试虚拟摄像头vivi(需要编译驱动程序)

(1)确实ubuntu的内核版本
执行uname -a命令(uname -a :显示系统名、节点名称、操作系统的发行版号、操作系统版本、运行系统的机器 ID 号)

Linux book-desktop 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux
(2) 去www.kernel.org下载同版本(相近版本)的内核


   解压后把drivers/media/video目录取出
   修改它的Makefile为:


KERN_DIR = /usr/src/linux-headers-2.6.31-14-generic  //指定内核目录(在PC上的linux内核


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  //我们需要编译生成的驱动文件
obj-m   += videobuf-core.o
obj-m   += videobuf-vmalloc.o
obj-m   += v4l2-common.o
   
(3) make


编译出vivi.ko

安装驱动但出现某些问题(有一些函数不知道)


用dmesg命令查看发现一大堆 函数未定义,看看这些函数在哪个文件定义


修改Makefile添加我们需要编译进去的驱动,这些是vivi.c的依赖文件

obj-m   += videobuf-core.o
obj-m   += videobuf-vmalloc.o
obj-m   += v4l2-common.o

安装驱动,查看设备节点,/dev/video是所接的usb摄像头,/dev/vodeo1是vivi.c虚拟出来的设备节点


(4)查看xawtv的使用,默认打开的是/dev/video0,现在要打开/dev/video1,可以用-c参数,后面指定相应的设备。


使用如下 -c指定


(5)安装驱动

 sudo modprobe vivi  
   sudo rmmod vivi
   sudo insmod ./vivi.ko

(5)查看设备节点

 ls /dev/video*
(6)执行命令

xawtv -c /dev/videoX

猜你喜欢

转载自blog.csdn.net/weixin_38807927/article/details/87871565