alliedvision / linux_nvidia_jetson

Allied Vision CSI-2 camera driver for NVIDIA Jetson Systems.
104 stars 41 forks source link

Separate kernel module #11

Open windelbouwman opened 3 years ago

windelbouwman commented 3 years ago

Hi,

I had a look at this driver, and for us it is not really usable. We have a different L4T version for the Xavier. While in theory we could switch to this kernel, this is not desirable, and might lead to future problems, since another sensor might require using their kernel, leading to a situation where only one sensor can be used at a time.

A solution to the above problem would be to restructure this camera driver into an external kernel module. This would mean that the sensor driver can be compiled as a kernel module for different kernels. One would require the kernel sourcecode for the specific board, and then download the allied vision kernel module sourcecode and build the kernel module specific for their kernel. This would solve the issue of keeping up with the xavier linux kernel each time a L4T release is made. It would also solve the issue of having to support 4 different git repositories with modifed kernels for each board.

Is this something you could provide?

Regards, Windel

jseinturier commented 3 years ago

Hello,

We are actually using a production XAVIER AGX (https://www.siliconhighwaydirect.com/product-p/900-82888-0040-000.htm) with a motherboard Connect Tech - Rogue Carrier (AGX101) (https://www.siliconhighwaydirect.com/product-p/agx101.htm) and we are facin the problem that the provided AVT Kernel is not compatible with this configuration.

It seems that the AVT drivers can only set up with XAVIER dev kit that is recommended by NVIDIA to not be used in production environment (https://developer.nvidia.com/embedded/faq)

So at this time, it is impossible to use AVT Alvium drivers in production environment.

The best solution should be to provide AVT ALVIUM kernel module instead of a complete kernel.

BernardoLuck commented 3 years ago

Hello,

Connect Tech has a special adapter board for our cameras: https://connecttech.com/product/allied-vision-mipi-camera-board/ and for this adapter board, Connect Tech offers a drivers for our cameras, you can find it in the link above under "Downloads"

Regards,

Bernardo Luck Villanueva // Applications Engineer

Allied Vision Technologies GmbH Klaus-Groth-Str. 1, 22926 Ahrensburg, Germany T // +49 (4102) 6688-270 F // +49 (4102) 6688-269 Managing Directors: Alexander van der Lof, Hanno Schulz | Registration Office: AG Jena HRB 208962 | Headquarters: Taschenweg 2a, 07646 Stadtroda, Germany

windelbouwman commented 3 years ago

Is there any chance of an update for this issue?

Here are some ideas of how this driver should ideally be packaged:

Using DKMS would enable to distribute the driver as a deb package, which would make sense, since many jetson boards are shipped with ubuntu as default.

The desired workflow for this driver would be (for me):

This type of packaging ensures that the driver is seperate from the kernel, and that a nvidia kernel update does not disrupt the proper operation of the camera.

BernardoLuck commented 3 years ago

Hello WIndel,

thank you for you idea. In general you are correct, this would be a nice method to install the driver(using "apt install"). However, there is an issue here, let me explain: We can add the CCI(camera control interface) as you mentioned, however the video data is a problem. The video data has to pass through the Nvidia VI, which we cannot modify. Nvidia would need to add our driver solution into their L4T.

Now, with the next version of our driver, you will be able to load our drivers on a modular way with our script, but using "apt install" is not be possible, maybe in the future.

Regards,

Bernardo Luck Villanueva // Applications Engineer

Allied Vision Technologies GmbH Klaus-Groth-Str. 1, 22926 Ahrensburg, Germany T // +49 (4102) 6688-270 F // +49 (4102) 6688-269 Managing Directors: Alexander van der Lof, Hanno Schulz | Registration Office: AG Jena HRB 208962 | Headquarters: Taschenweg 2a, 07646 Stadtroda, Germany

windelbouwman commented 3 years ago

Hi Bernardo,

Okay, this sounds promising! When will the next version of the driver be released?

Regards, Windel

windelbouwman commented 3 years ago

Another idea might be to create .deb archives as a deployment method. At this point, the deploy tarball contains a scripts which updates the kernel and device tree partitions of the jetson. Another cool idea might be to create a deb file which can be installed with apt or dpkg, which should conflict with nvidia-l4t-kernel. This would ensure that apt update does not overwrite the deployed alvium custom kernel. This is a bit off-topic, but might be a nice idea to make a smoother experience possible.

simgt commented 2 years ago

@BernardoLuck Any updates on that issue?