Enabling OV5693 V4L2 driver in L4T 24.1

Hello,

We are trying to run an object tracking application using opencv on L4T 24.1 with ov5693 sensor. It uses V4L2 framework. We were able to run it on 23.2 (using tegra_camera.ko and ov5693_v4l2.ko). After moving to 24.1, we are hitting a lot of roadblocks. We could stream videos using nvgstcapture application, though. But it uses V4L2 non-compliant driver nvhost_vi.

At first, the issue was that we couldn’t see any tegra_camera.ko, nvhost_vi.ko ,ov5693_v4l2.ko which were the modules of interest when working with 23.2. But after applying some changes to the config file according to the below link ,the modules were built.

https://devtalk.nvidia.com/default/topic/946840/jetson-tx1/soc_camera-driver-in-l4t-r24-1/

However, we couldn’t remove nvhost_vi using ‘sudo rmmod nvhost_vi’. ‘dmesg’ showed some stack dump (seemingly a segfault). Hence tegra_camera cannot be inserted without properly removing nvhost_vi.

Then we disabled nvhost_vi module in kernel configuration so that it is not compiled/loaded. Then we inserted tegra_camera after booting up.

The issue now is that /dev/video0 is not created. And when analyzing further found that ov5693_v4l2 registration as i2c device has failed (Failed to register i2c client ov5693_v4l2 at 0x36 (-16)).

Could you please give us any suggestions on how ov5693_v4l2 can be enabled?

Thanks in advance

Krishh

We are now able to stream video using v4l2 by applying the following change.
We have to disable ov5693_c@36 in the following file.
file : kernel/arch/arm64/boot/dts/tegra210-platforms/tegra210-jetson-cv-camera-modules.dtsi

i2c@546c0000 {
e3326_cam0: ov5693_c@36 {
—status = “okay”;
+++status = “disabled”;
};

Krishh,

The ov5693 is enabled by default in our dts file. If you’d like to add your specific sensors, please disable it explicitly.

you could also refer to this topic for more details on r24.1,
https://devtalk.nvidia.com/default/topic/937624/jetson-tx1/enabling-v4l2-driver-in-r24-1-by-building-kernel-from-source-code/1

Hi
I am using jetson tx2 module with a 28.1.0 version and host version is 16.04 LTS
I have been trying to locate i2c_read and i2c_write calls in ov5693.c to disable i2c opeations
could you please help in finding i2c_read and i2c_write functions in the ov5693.c

Hi nagendra.bl,

Please file a new topic in TX2 board - https://devtalk.nvidia.com/default/board/188/jetson-tx2/

Thanks