Nvidia Jetson (Nano) + CSI camera from container

Hi,

we’re intending to run BalenaOS on a Jetson Nano in conjunction with a CSI camera, a need many embedded vision developers will have at one point.

On the NVIDIA-forums I could find a couple posts of people failing to access the CSI camera from Docker (using the native Linux ‘NVIDIA L4T’).

To quote:

After investing a lot of hours on this I came to the conclusion that the onboard camera can’t be interacted with in a standard way from a container. This is due to all the moving pieces (nvcamera daemon, specific GStreamer libraries, etc.) that are required for the onboard camera to work properly.

I was wondering if there’s any success stories of running a CSI camera in a container on BalenaOS - or any speculations of why it might fail and what modifications might be necessary to make it run.

We’re willing to spend some effort into making it work, but are looking forward to suggestions to narrow down the concrete issues before starting.

Cheers
Felix

@fplum Im not an expert, although I know there was this project Building a nanny bot which seems to imply the camera was working from the container. So I would start from there.

Also in terms of getting all the specific GStreamer libraries, i would look at this example project: https://github.com/acostach/nano-sample-app/blob/master/Dockerfile.gstreamer

Yep, it works for me. See the project Shaun mentioned. The container must have SYS_RAWIO capability (& be privileged). Then you have to run nvargus-daemon (can be done in the same container). Here’s an example how to run JetBot Jupyter notebooks. To make it short, the master branch contains containerized (& not optimized) NVIDIA’s JetBot notebooks.

Thanks both of you, I’ll give it a shot and update my original post