No videodev module in kernel - how is V4L still working?

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: ). 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.

V4L2 might simply being built into the kernel, not as a module. Check for /dev/video* existing.

Ah okay! I didn’t realize some drivers could be implemented as part of the kernel instead of being a module. Is there a way to list drivers built into the kernel?

There’s not really an easy way to list (just) the drivers, the kernel sources for the running kernel contain a .config file were anything is listed, also features. You can also run ‘make menuconfig’ in the kernel source directory to get a menu to browse the options.

Thank you! You were completely right - in the .config file on the xavier it specifies that videodev is built into the kernel, whereas on my laptop it specifies it as a module.

Thank you for your help :)