I am in the very first part of the Getting Started with Jetson Nano class.
I was successful starting up jupyter with the USB camera attached.
Then I tried to connect the CSI ribbon camera. Now the docker image will not even boot, unless I remove the parameters required to use USB camera (–device /dev/video)
Is it a limitation of the Jetson that you can only use either CSI cameras OR USB camera? Is it possible to use both types of cameras at the same time?
These are the startup commands I’m using:
ONLY WORKS WITH CSI RIBBON CAMERA
sudo docker run --runtime nvidia -it --rm --network host --volume ~/nvdli-data:/nvdli-nano/data --volume /tmp/argus_socket:/tmp/argus_socket nvcr.io/nvidia/dli/dli-nano-ai:v2.0.1-r32.6.1
ONLY WORKS WITH USB CAMERA, CSI RIBBON CAMERA MUST BE PHYSICALLY DETACHED FROM JETSON
sudo docker run --runtime nvidia -it --rm --network host --volume ~/nvdli-data:/nvdli-nano/data --device /dev/video0 --volume /tmp/argus_socket:/tmp/argus_socket nvcr.io/nvidia/dli/dli-nano-ai:v2.0.1-r32.6.1
If I try to run the second command WITH CSI camera attached, I see this error:
docker: Error response from daemon: error gathering device information while adding custom device “/dev/video0”: no such file or directory.
So, when both USB and CSI cameras are attached to Jetson, there is no /dev/video0 at startup and docker command fails because of that. Is this expected?
it’s device registration during kernel init, usually, the CSI bayer sensor device should register before USB camera.
please check whether you’re able to generate two video nodes, could you please have the CSI camera sensor connected, then plug-in USB camera after system boot-up?
I get the error message:
docker: Error response from daemon: error gathering device information while adding custom device “/dev/video0”: no such file or directory.
Can you tell me more about the process of generating video nodes? Is this something I can possibly do on my own? Or interecept/modify the docker image in some way?
At the moment I am forced to choose between either using CSI or USB, and this is not great for my development.
First of all, I see now that the issue is simply that the jetson cannot connect to the CSI camera at all. Even when I try to connect with only the CSI camera attached, it still shows this error:
docker: Error response from daemon: error gathering device information while adding custom device “/dev/video0”: no such file or directory.
Not sure if there is anything I can do at this point - are there any troub leshooting tips for CSI camera connection??
Otherwise, I saw in the Jupyter project, in the root info.md file, the description there explains how to connect both CSI and USB camera at the same time:
note: if you have both CSI and USB cameras plugged in (or multiple USB cameras), also add `--device /dev/video1` above. Then in the DLI notebooks, you will need to set the `capture_device` number to 1 (the CSI camera will be `/dev/video0` and the USB camera will be `/dev/video1` - don't use the CSI camera through V4L2)
So you would have to add the extra device to the CSI startup command, and then specify which camera in your scripts in Jupyter.
you may confirm whether you’re able to stream this CSI camera sensor.
please check developer guide, Approaches for Validating and Testing the V4L2 Driver for some pipelines to enable the stream with the nvarguscamerasrc plugin or using V4L2 IOCTL directly.
thanks