(四) 虚拟摄像头vivi体验


title: 虚拟摄像头vivi体验
date: 2019/4/23 19:20:00
toc: true

虚拟摄像头vivi体验

vivid是虚拟的摄像头驱动.可以理解等同于UVC,只是说不需要USB总线驱动控制等

源码下载

# 查看内核版本
$ uname -a
Linux 100ask 4.13.0-36-generic #40~16.04.1-Ubuntu SMP Fri Feb 16 23:25:58 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

下载代码后解压

tar xzf linux-4.13.1.tar.gz
#新版本的linux下已经更名为vivid
linux-4.13.1/drivers/media/platform/vivid/

修改Makefile

修改Makefile,也就是加入vivid-cec.o,因为如果不加入的话,会提示缺少符号

KERN_DIR = /usr/src/linux-headers-4.13.0-36-generic
vivid-objs := vivid-core.o vivid-ctrls.o vivid-vid-common.o vivid-vbi-gen.o 
                vivid-vid-cap.o vivid-vid-out.o vivid-kthread-cap.o vivid-kthread-out.o 
                vivid-radio-rx.o vivid-radio-tx.o vivid-radio-common.o 
                vivid-rds-gen.o vivid-sdr-cap.o vivid-vbi-cap.o vivid-vbi-out.o 
                vivid-osd.o vivid-cec.o
all:
                make -C $(KERN_DIR) M=`pwd` modules
clean:
                make -C $(KERN_DIR) M=`pwd` modules clean
                        rm -rf modules.order

或者使用dmesg也可以看到无法加载

# make的警告
WARNING: "vivid_cec_bus_free_work" [/home/book/stu/ubuntu_src/linux-4.13.1/drivers/media/platform/vivid/vivid.ko] undefined!
WARNING: "vivid_cec_alloc_adap" [/home/book/stu/ubuntu_src/linux-4.13.1/drivers/media/platform/vivid/vivid.ko] undefined!

搜索下这个,可以找到,所以修改Makefile加入vivid-cec.o

$ grep vivid_cec_bus_free_work * -nR
vivid-cec.c:25:void vivid_cec_bus_free_work(struct vivid_dev *dev)

安装xawtv

#这里最新的ubuntu直接安装即可
sudo apt-get install xawtv

测试体验

sudo modprobe vivid     //安装自带vivid及依赖,这里先使用modprobr加载vivid,会将其依赖一并加载,然后再卸载vivid,最后加载上我们编译的vivid.ko
sudo rmmod vivid        //卸载自带的vivid
sudo insmod ./vivid.ko  //安装自己编译的vivid.ko

xawtv -h                //帮助信息
xawtv -c /dev/videoX    //指定设备
xawtv -noalsa           //关闭声卡启动
xawtv                   //运行摄像头

原文地址:https://www.cnblogs.com/zongzi10010/p/10764127.html