(四) 虚拟摄像头vivi体验

虚拟摄像头vivi体验

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

源码下载#

Copy
# 查看内核版本 $ 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

下载代码后解压

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

修改Makefile#

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

Copy
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也可以看到无法加载

Copy
# 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

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

安装xawtv#

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

测试体验#

Copy
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 //运行摄像头
posted @   zongzi10010  阅读(1534)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示
CONTENTS