You can still access the UVC driver directly from userspace using a device file and "ioctl" system calls, without going through the V4L2 driver, and you can still access the underlying USB driver directly from userspace using it's device file and "ioctl"s.īeing a general framework that provides functionality common to a wide range of devices, V4L2 doesn't provide you with the all of the functionality that the UVC driver could provide (assuming that your device actually provides more UVC functionality than is required to support V4L2). V4L2 is one of the more complex examples because some camera devices require accessing large groups of sub-devices in several layers that control the camera and route the output of the camera among various components such as image processors. This Matryoshka model is very common in the Linux kernel driver tree. So, the V4L2 driver is a high-level driver that drives the UVC driver, that drives the USB driver that might be driving an even lower-level hardware driver. In the kernel, frameworks provide a blueprint for writing new lower level drivers that actually control the hardware, thus simplifying driver development. ![]()
0 Comments
Leave a Reply. |