目录
1. 需求
2. 查看ubuntu 版本:
3. 下载内核版本为:3.13.0
4. 生成虚拟机里的vivi.ko
5. 测试
1. 需求
想学习V4L2 框架,但是没有实际的摄像头,怎么办?
- 可以用ubuntu 上安装xawtv应用程序
- 下载与ubuntu一样版本的linux内核,编译出vivi.ko
- 在unbuntu 上加载vivi.ko, 生成/dev/video0设备节点
- 用 sudo xawtv -c /dev/video0 启动虚拟的摄像头来进行分析
2. 查看ubuntu 版本:
book@book-virtual-machine:/work/mytmp/xawtv_test/video$ uname -a
Linux book-virtual-machine 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:51:20 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
book@book-virtual-machine:/work/mytmp/xawtv_test/video$
可以看到我的ubuntu用的内核版本为:3.13.0
3. 下载内核版本为:3.13.0
linux内核官网: https://www.kernel.org/
首先点击HTTP, 结果
出师不利啊。
山不转水转, 打开git
https://git.kernel.org/
直接搜索 stable
打开蓝色字体的这个
找到需要的版本
好了下载到ubuntu里去。
也可以直接去如下网站下载:
http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/kernel/
4. 生成虚拟机里的vivi.ko
- create -p /work/mytmp/xawtv_test/video
- cp -rfd /work/s3c2440_kernel/linux-3.4.2/drivers/media/video ./ //我一开始用已经存在的inux-3.4.2来编译,但是一直失败,只能用linux-3.13,但是linux-3.13 没有drivers/medio/video 目录,所以才有了下面两个步骤。
- cp -rfd /work/s3c2440_kernel/linux-3.13/drivers/media/v4l2-core/* ./
- cp -rfd /work/s3c2440_kernel/linux-3.13/drivers/media/platform/vivi.c ./
虚拟机头文件存放路径:KERN_DIR = /usr/src/linux-headers-3.13.0-32-generic/
修改Makefile:
book@book-virtual-machine:/work/mytmp/xawtv_test/video$ cat Makefile
KERN_DIR = /usr/src/linux-headers-3.13.0-32-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
book@book-virtual-machine:/work/mytmp/xawtv_test/video$
5. 测试
sudo apt-get xawtv
测试成功。
彩带就是这么的炫目。


![[camera][v4l2][第一话]: 用xawtv 在ubuntu 测试vivi驱动程序 [camera][v4l2][第一话]: 用xawtv 在ubuntu 测试vivi驱动程序](http://www.mshxw.com/aiimages/31/297616.png)
