Jetson Nano Drivers

Hi everyone,

I have a question about drivers fro the Nano. I am testing drivers from Vision Components (CSI camera) and now I am also testing the EN715 Carrier Board from Avermedia.

I have tried to flash the drivers individually, and they work when used individually. However when I attempt to flash the carrier board drivers, then the camera drivers, the carrier board drivers get over-written.

Is there any documentation that could help me? Perhaps someone knows a good tip on how to flash multiple different drivers?

I will also be contacting the manufacturers, but perhaps someone in this community could help as well? :)

You may need to integrate those device tree and driver to one to get them both working.

An added comment for clarity: Device trees tend to be used by drivers to location hardware, and to pass arguments to drivers. Normally flash would use a default device tree. If your drivers used any kind of custom device tree to pass arguments or to find hardware, then flashing would lose that required information until the default device tree is modified to contain your device’s information.

Hi @linuxdev

Thanks for the clarification. I did notice that, for both drivers, the DTB folder, inside their respective Linux_for_Tegra Kernel folders are different.

Hopefully, merging these 2 would work? (I’ll find out soon) Although that’s just the device tree, and I’m not sure where the drivers are stored

I don’t know if simply merging will work. The parts of the device tree specific to any given hardware needs to be correct for that hardware, e.g., the base physical address must be correct, and multi function I/O needs to be set to the correct I/O function. Certainly if you see what is different, then it is a strong hint at how to edit, but I can’t guarantee a simple merge would work.

Yes, merging didn’t work. The issue, I think, is that the kernel image (and drivers) are pre-compiled for the Carrier board, so merging doesn’t look possible.

I will try with a different carrier board manufacturer, see what happens

Each carrier board manufacturer supplies a board support package, and that package is mostly for device tree. I would start with what the carrier board manufacturer supplies since every carrier board will need a new device tree.

The issue is that their drivers are pre-compiled versions that can just be flashed to the nano, which makes it difficult to change the kernel image and drivers to accommodate other drivers.

I hope my logic is correct here (I’m new to drivers)

Are we talking about drivers somewhere under:
/lib/modules/$(uname -r)/kernel/

…or are we talking about “.dtb” (device tree binary) files? If we are speaking of dtb files, then these can easily be reverse compiled, edited, and reinstalled.

If we are talking about binary-only modules in the module directory, then this can be problematic. If the kernel these were built for is close enough to the Jetson’s running kernel, you could possibly disable the version checking on a new Image, and try those modules with that Image. It could crash and burn, or it could work.