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.