MIPI CSI-2 cameras for TX2 for outdoor object detection

No, we use sdkmanager installed JetPack

https://docs.nvidia.com/sdk-manager/install-with-sdkm-drive/index.html

Sorry, I mean installing JetPack using sdkmanager. So in order to build the kernel for DTB and modules, an x86 host PC running on Ubuntu 16.04/18.04 is required, am I understanding this correctly? However, in the kernel customization documentation, it didn’t really mention a host PC is required. Could you clearify this?

Thanks

Yes, sdkmanager need running on Ubutntu 16.04/18.04
Also if you have X86 host I would suggest compile the kernel DTB by it.

1 Like

Hi ShaneCCC,

I was able to turn on video stream with RPi V2 camera module on Jetson nano using GStreamer. The process was easy since the default package of the nano supports imx219 sensor. I wonder if it also requires GStreamer in order for 6 cameras to work on Jetson TX2?

Only need implement the dtb for 6 cameras only.

1 Like

I found this post that is very similar to what I am trying to achieve, but in a different L4T version. Since the Linux_for_Tegra directory generated from sdkmanager has modification restrictions, I should customize the kernel following the kernel customization on the programming guide, then build the dts and dtb under the proper directories, like the module and platform directory under the public_source directory, to configure the kernel. Once that is done, I should modify the sensors driver header file and C source code before testing the drivers with cameras.
Does this process sound right to you?

For RPi V2 camera you just need to modify the dts and build the dtb for 6 cameras support.

That clears some of my questions. As I mentioned before, the dts files under Linux_for_Tegra that were generated by sdkmanger have restrictions on them so I wouldn’t be able to modify and save them. In this case, should I extract the public_source zipped file and modify the device tree source code under the new Linux_for_Tegra directory?

Yes, you need to compile the dtb from source. Have a check L4T document for the kernel customized.

Hi Shane,

I extracted the public_sources.tbz2 as well as the kernel_src.tbz2. I was able to find the .dtsi file for imx219 sensor based on this post, but I couldn’t locate the .dts file for imx219 sensor. Do you know if there is a source code for that in the source? I found that there are lots of .dts source code under the quill directory, (…/t18x/quill), is the imx219 sensor .dts source code possibly also in this directory as well? If it is, do you know which filename I should look at?

I think once I find the .dts file as well as modify the device tree files, I will be able to compile it to dtb.

Thanks.

You can reference to …/hardware/nvidia/platform/t18x/common/kernel-dts/t18x-common-modules/tegra186-camera-e3322-a00.dtsi to implement yours.

I found this tegra186-camera-e3322-a00.dtsi file as I mentioned in the last post. I was wondering if there is also a .dts file that includes this tegra186-camera-e3322-a00.dtsi at the beginning of the code? When I compile the DTS to DTB, should I compile .dts or .dtsi?

No matter DTS or DTSI they are the same. You need pick what you need to compile it to DTB for your specific device.
Please check the programing guide to remove the plugin manager to avoid confuse your device tree applying.

@ShaneCCC I tried to compile the source device tree, tegra186-camera-e3322-a00.dtsi, using the following command:

dtc -I dts -O dtb -o tegra186-camera-e3322-a00.dtb tegra186-camera-e3322-a00.dtsi

and got the error:
Error: tegra186-camera-e3322-a00.dtsi:19.1-2 syntax error
FATAL ERROR: Unable to parse input tree.
I saw there are also some posts about this error but I am still not quite sure what I am doing wrong here. Would you be able to provide some directions on this?

For those dts/dtsi from source code need compile by host PC. Have a check below document for building kernel Image and DTB.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#

Hi ShaneCCC,

So I installed the toolchain and built the kernel from the source on the host PC. I tried to compile the source code tegra186-camera-e3322-a00.dtsi on the host pc but still got the same error:
Error: tegra186-camera-e3322-a00.dtsi:19.1-2 syntax error
FATAL ERROR: Unable to parse input tree.
Do you know any solution to this?

Besides that, I also have couple questions:

  1. Once I compiled the dts to dtb, if I flash the new device tree to TX2 with the flashing to a specific partition method when TX2 is under recovery mode, will it wipe the entire system out or just replace the old device tree?
  2. When removing the plugin manager, is it done by registering a new device, adding the new dts to the plugin manager dts, which is described under Using the Main Platform Device Tree File section? Should I do that on the host PC or the TX2?
  3. Am I on the right track?
    It would be really helpful if you could clarify these questions as I am a little lost.

Thanks

How do you build the DTB? Please follow the document to build it.

  1. sudo ./flash -r -k kernel-dtb jetson_tx2_xxx mmcblk0p1 for update the DTB partition.
  2. Do it on PC

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.