Hi! I’m trying to understand more about the best options for working with a GMSL camera. I’ve been looking a lot into Video4Linux and it’s my understanding the V4L uses a kernel module called videodev, which is used by other kernel modules which follow the V4L framework (ex: uvcvideo). This appears to be the case on my laptop. Running lsmod on my laptop (Ubuntu 16.04):
Module Size Used by uvcvideo 86016 0 videobuf2_vmalloc 16384 1 uvcvideo videobuf2_memops 16384 1 videobuf2_vmalloc videobuf2_v4l2 24576 1 uvcvideo videobuf2_core 40960 2 videobuf2_v4l2,uvcvideo videodev 188416 3 videobuf2_core,videobuf2_v4l2,uvcvideo media 40960 2 videodev,uvcvideo ...
However, on the Xavier:
Module Size Used by bnep 16562 2 fuse 103841 5 zram 26166 8 uvcvideo 88565 1 overlay 48691 0 binfmt_misc 13103 1 nvgpu 1569917 38 bluedroid_pm 13912 0 ip_tables 19441 0 x_tables 28951 1 ip_tables
I’m very confused, because I thought the V4L framework was built around the videodev kernel module, but V4L applications still work on the Xavier without it (such as the v4l-utils capture example: https://github.com/gjasny/v4l-utils/blob/master/contrib/test/capture-example.c ). I was wondering if maybe nvgpu takes over the role of videodev? Nothing appears to be used by uvcvideo the way videodev is on my laptop, however.
Forgive me - I’m rather new to drivers and working with cameras, and I sense that maybe I’m lacking some generic knowledge somewhere. I’ve done a lot of Googling, but maybe I’m searching the wrong thing? Hoping someone here can help me.