This Linux module implements a simplified virtual V4L2 compatible camera device driver with raw framebuffer input.
After running make
, you should be able to generate the following files:
vcam.ko
- Linux kernel module;vcam-util
- Sample tility to configure virtual camera device(s);
Before loading this kernel module, you have to satisfy its dependency:
$ sudo modprobe videobuf2_vmalloc videobuf2_v4l2
The module can be loaded to Linux kernel by runnning the command:
$ sudo insmod vcam.ko
Expectedly, two device nodes will be created in /dev
:
- videoX - V4L2 device;
- vcamctl - Control device for virtual camera(s), used by control utility
vcam-util
;
In /proc
directory, device file fbX
will be created.
The device if initialy configured to process 640x480 RGB24 image format.
By writing 640x480 RGB24 raw frame data to /proc/fbX
file the resulting
video stream will appear on corresponding /dev/videoX
V4L2 device(s).
Run vcam-util --help
for more information about how to configure, add or
remove virtual camera devices.
e.g. list all available virtual camera device(s):
$ sudo ./vcam-util -l
You should get:
Available virtual V4L2 compatible devices:
1. vcamfb0(640,480,rgb24) -> /dev/video0
Install v4l-utils
for retrieving more information:
$ sudo apt install v4l-utils
You can use this command to check if the driver is ok:
$ sudo v4l2-compliance -d /dev/videoX -f
It will return a bunch of test lines, with 1 failed and 0 warnings at the end.
You can check if all configured formats and emulated controls are ok with this command:
$ sudo v4l2-ctl -d /dev/videoX --all
You will get information as following:
Driver Info:
Driver name : vcam
Card type : vcam
Bus info : platform: virtual
Driver version: 4.15.18
Capabilities : 0x85200001
Video Capture
Read/Write
Streaming
Extended Pix Format
Device Capabilities
vcam
is released under the MIT License. Use of this source code is governed by
a MIT License that can be found in the LICENSE file.