学习目标:在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
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
make -C $(KERN_DIR) M=`pwd` modules
clean:
make -C $(KERN_DIR) M=`pwd` modules clean
rm -rf modules.order
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
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
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的设备节点可能会变化)