作者:甘老师,华清远见嵌入式学院讲师。
一、从软件层面上来跟踪摄像头应用程序所涉及的系统调用
首先可以分析虚拟摄像头驱动vivi.c所涉及的系统调用
测试虚拟摄像头vivi:
1. 确定ubuntu的内核版本
uname -a
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
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
然后make一下
接下来轮到安装虚拟摄像头驱动了,因为安装vivi.ko的时候要涉及到很多的依赖,也就是要先加载其他的一些模块,才能正常的加载vivi.ko
在这里我们执行下面的命令
sudo modprobe vivi
sudo rmmod vivi
sudo insmod ./vivi.ko
这个时候在/dev下生成对应的设备文件,假如现在的设备文件是/dev/video0