从零写虚拟摄像头驱动
项目场景:
\项目2_摄像头_WIFI_3G_ALSA驱动_无线监控(64节,3节免费)\01_无线监控文档源码\01_课堂笔记及代码\第2课第1.1.1-1.1.8节_摄像头驱动\第2课第1.1.4节_摄像头驱动_从零写一个虚拟驱动\myvivi\1th
问题描述
提示:这里描述项目中遇到的问题: sudo insmod 上述代码遇到valid parameters问题
原因分析:
韦东山用的是2.x内核,而这里用的是4.x内核,v4l2框架有变化。
解决方案:
提示:追踪源代码
vivid-core.c
video_register_device
__video_register_device
/* the release callback MUST be present /
if (WARN_ON(!vdev->release))
return -EINVAL;
/ the v4l2_dev pointer MUST be present */
if (WARN_ON(!vdev->release))
return -EINVAL;
看到上述代码,表面需要定义vdev->release和vdev->release,则添加,
static struct v4l2_device v4l2_dev;
myvivi_device->v4l2_dev = &v4l2_dev;