关于UVC设备拥有两个/dev/video*节点的原因以及来历?

在ubuntu18.04/ubuntu16.04系统上,插入UVC设备,你会发现V4L2框架替它创建了两个video设备节点,分别是 /dev/video0, /dev/video1:

经过实际测试,可以通过/dev/video0获取图像,但是无法通过/dev/video1获取图像,具体的试验请看下面两篇博客:

V4L2子系统架构设计初探

美乐图科技IPC摄像头试玩儿

下面来分析一下Linux代码,说明/dev/video1节点的来历

首先,根据上面两篇博客,我们知道/dev/video1是通过uvc_meta_register这个函数调用路径注册的:

但是在linux-4.9内核里,是没有uvc_meta_register这个函数的

关于UVC设备拥有两个/dev/video*节点的原因以及来历?_第1张图片

 但是在最新的内核上,uvc_register_terms函数中增加了对uvc_meta_register函数的调用:

关于UVC设备拥有两个/dev/video*节点的原因以及来历?_第2张图片

 那么是什么时候增加的呢?根据git blame uvc_driver.c得到的信息,发现了这行代码的添加记录

 展开来看一下:

git show 088ead2552458

关于UVC设备拥有两个/dev/video*节点的原因以及来历?_第3张图片

 可以看到,这个改动是发生在2017年,但具体是哪个版本呢?

我们git describe 088ead2552458看一下

git describe 088ead2552458

git describe输出显示,这个修改发生在v4.15-rc6后的第397次提交,g为git的缩写,088ead255245为此commit id. 所以࿰

你可能感兴趣的:(Linux,多媒体,嵌入式系统,pytorch,python,linux)