Custom camera module with two 4-lane cameras

I developed a camera module for the Jetson TX2, following the Jetson_TX2_Series_Camera_Module_Hardware_Design_Guide.pdf and have assembled it. I am currently trying to get the cameras setup so that the Jetson TX2 can recognize them. I have been trying to follow the NVIDIA Jetson Linux Driver Package Developer Guide at https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fintroduction.html%23, but I am really confused as to where to start.

From what I understand I need to set up a driver and install it in the kernal for the TX2 and then flash the TX2 with the new drivers. I am currently using two 8MP cameras from supertekmodule: https://www.supertekmodule.com/product-item/8mp-sensor-camera-modules/. I have installed an I2C Mux with EEPROM for each camera.

What are the steps for getting the cameras setup? I have never created a driver before and I don’t know where to start and I’ve never edited a kernal.

Any help would be greatly appreciated.

Bryant,

Nvidia supplies numerous driver examples and driver programming guide.

The driver source code is located in kernel/nvidia/drivers/media/i2c.

D3’s BSP package may be a good reference for you as well.

Regards,
Greg

Hi Greg,

Thank you for the source references. I looked into the portion about programming drivers, but I was lost contextually. The very beginning refers to a board support package. I’m not very sure what they mean by that.

“1.Locate or create a tegra-camera-platform device tree node in the kernel source tree at:
/hardware/nvidia/platform/t19x/common/kernel-dts/t19x-common-modules/tegra194-camera-imx185-a00.dtsi
Where is the directory where you installed the board support package.”

Also I’m looking for the driver source code location and I’m not quite understanding where that is located exactly. Is that in the L4T Release Package or is it somewhere else?

You can download the source code from the Jetson Download Center.

Alternatively there is a script in the host-side L4T that will fetch the code using Nvidia’s public git repositories named source_sync.sh. Assuming you’ve installed to the default locations when running SDK Manager locate and then run source_sync.sh.

find ~/nvidia -name source_sync.sh

If you run that script you can download all of the kernel and device tree code and have it setup in the layout Nvidia expects.

Regards,
Greg

Thank you Greg,

That gives me a much better start then what I’ve been having.

Happy to help! Happy coding!