The Spot CORE has an output HDMI port and I used it to connect an external monitor for testing purposes and shazam! it does work this way. Is there any reason for this ?
I checked again and it does not work when the monitor is plugged out.
I read somewhere that Xorg would not start unless a monitor was plugged in, so I tried starting it manually to see if that would solve the issue, but it doesn’t.
Maybe someone with better knowledge would know what it means ?
I juste checked the thetauvc.c file and indeed both lines you pointed out were missing. I added them and ran make clean && make to rebuild it but it doesn’t seem to have done anything.
sorry about my earlier post. I got confused for a moment and thought you were using the THETA X instead of the THETA Z1. I deleted my earlier post.
I don’t have a good solution right now.
I don’t know about X.org monitor issues. Hopefully, someone else will be able to comment on this. You could also try an X.org-specific group on Reddit or stackoverflow. It seems like the core problem is using v4l2loopback with X.org without a monitor.
If it works with the monitor, maybe try a dummy HDMI plug as part of the debugging process and see if it works without a monitor and just the dummy plug?
Does docker prevent you from using libusb, libuvc directly?
I do not use docker. I just searched for ideas about how to access USB devices on Docker and this post came up.
I’m reaching the limits of the knowledge that I can offer. However, feel free to keep posting as there are other people more knowledgeable than I am. It may take some time to get an answer. Just letting you know that my ideas may waste your time, so choose the best course.
I have compiled the gstthetauvc plugin and am attempting to run it on a Jetson Xavier NX, however I receive the error :
ERROR: from element /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0: Found 1 Theta(s), but none available.
I have successfully gotten it running on a Jetson Xavier AGX, as well as an Ubuntu desktop PC. Just wondering if there are any obvious steps that I’ve missed for the NX? Possibly permission issues?
solution
We managed to find the solution. Turns out it was as simple as setting an environmental variable in bash:
export LD_LIBRARY_PATH=/usr/local/lib
For whatever reason, this is automatically set on Intel based Ubuntu, and the Xavier AGX series board, but not the NX!
other
on my (craig) system, this is my /etc/ld.so.conf.d/libc.conf
I’m working with Theta X and I use gstthetauvc plugin for capturing the video stream. I had some issues using it. Fortunately, I could make it work by using 30 fps in the format settings (instead of 29) (thetauvc_get_stream_ctrl_format_size function in thetauvc.c file).
Now, I created a docker image to ease the deployment of the streaming in several machines. However, I couldn’t make it work. Camera is detected but UVC returns an error of “No such device” when uvc_open() is executed. This is the command that I’m using to create the container:
docker run --network host --privileged --device '/dev/bus/usb' gst-xrlab
And this is the gstreamer pipeline that runs inside the container:
I’m afraid that the user that run the container is within plugdev group. Anyway, it’s weird that in my case camera is detected inside the container but it cannot be open. AFAIK, @nicodax had issues detecting the camera.
The host of the docker image is Ubuntu 20.04 on x86_64 architecture.
In addition, I use the variable GST_PLUGIN_PATH to set where the plugin is located. Plugin is detected and working. This is the log that is generated with gstreamer using: GST_DEBUG=2,thetauvcsrc:6
0:00:00.688153989 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:208:gst_thetauvcsrc_set_property:<thetauvcsrc0> set_property
0:00:00.688169165 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:208:gst_thetauvcsrc_set_property:<thetauvcsrc0> set_property
Setting pipeline to PAUSED ...
0:00:00.689459545 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:672:gst_thetauvcsrc_query:<thetauvcsrc0> query
0:00:00.689466171 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:684:gst_thetauvcsrc_query:<thetauvcsrc0> query CAPS
0:00:00.689476892 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:672:gst_thetauvcsrc_query:<thetauvcsrc0> query
0:00:00.689479785 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:684:gst_thetauvcsrc_query:<thetauvcsrc0> query CAPS
0:00:00.689487561 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:672:gst_thetauvcsrc_query:<thetauvcsrc0> query
0:00:00.689489383 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:684:gst_thetauvcsrc_query:<thetauvcsrc0> query CAPS
0:00:00.689498710 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:672:gst_thetauvcsrc_query:<thetauvcsrc0> query
0:00:00.689500063 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:684:gst_thetauvcsrc_query:<thetauvcsrc0> query CAPS
0:00:00.690952410 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:448:gst_thetauvcsrc_start:<thetauvcsrc0> start
0:00:00.690960576 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:449:gst_thetauvcsrc_start:<thetauvcsrc0> dev=-1 mode=0
0:00:00.760036006 8 0x55dc6da40c00 WARN thetauvcsrc gstthetauvcsrc.c:493:gst_thetauvcsrc_start:<thetauvcsrc0> error: Found 1 Theta(s), but none available (No such device).
0:00:00.760414751 8 0x55dc6da40c00 WARN basesrc gstbasesrc.c:3468:gst_base_src_start:<thetauvcsrc0> error: Failed to start
0:00:00.760480896 8 0x55dc6da40c00 WARN basesrc gstbasesrc.c:3824:gst_base_src_activate_push:<thetauvcsrc0> Failed to start in push mode
0:00:00.760501442 8 0x55dc6da40c00 WARN GST_PADS gstpad.c:1142:gst_pad_set_active:<thetauvcsrc0:src> Failed to activate pad
ERROR: Pipeline doesn't want to pause.
Setting pipeline to NULL ...
ERROR: from element /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0: Found 1 Theta(s), but none available (No such device).
Additional debug info:
gstthetauvcsrc.c(493): gst_thetauvcsrc_start (): /GstPipeline:pipeline0/GstThetauvcsrc:thetauvcsrc0
Freeing pipeline ...
0:00:00.761629738 8 0x55dc6da40c00 DEBUG thetauvcsrc gstthetauvcsrc.c:270:gst_thetauvcsrc_finalize:<thetauvcsrc0> finalize
Thank you for your test. Great news! So, I know that I must be able to make it work now. Although I haven’t done yet. Theta X pid is defined in my source code. If it wasn’t, camera wouldn’t be detected.
But, I don’t understand what you said:
Camera is already mounted by the OS. At least, I only plug the camera and it appears as USB device. I don’t know how to do it in another way.
user@jetson:~$ lsusb
Bus 001 Device 003: ID 05ca:0373 Ricoh Co., Ltd
user@jetson:~$ ls -l /dev/bus/usb/001/003
crw-rw-r--+ 1 root plugdev 189, 2 mar 6 17:19 /dev/bus/usb/001/003
hi, @craig ,
it may not be relevant to this, but while I was doing in past experiments with USB connected Theta Z1, I noticed some difference when on Z1, the “Live” mode was turned on or off. I do not remember exactly, but I was having issues at that time, it may or may not be there at Theta X. But also how device was detected by my Raspberry Pi 4 running ubuntu, it was different depending on actual stat of camera (MODE button on Z1).
As @craig said I’m using live streaming mode. So the USB ID is 0x2717.
I’ve just found the issue: my jetson computer had a previous libuvc library installed. So, instead of using libuvc-theta, the application loaded the native version. This is the reason why the same code was working in my laptop. In the laptop, the native version of libuvc didn’t exist. After resolving that, it works fine.
Thank you very much for the help. It’s really awesome to have this forum to share results and issues.
I’m sorry that I didn’t recommend this earlier. This is a known problem and I was just researching the issue last week when you asked the question. However, I didn’t make the connection between the previous libuvc and your environment. I’m sharing the additional information below to help other people with this problem. Thanks again for contributing your solution.
great to hear. If you ever talk to anyone at RICOH, please mention that this forum was useful. We’re dependent on continued sponsorship from RICOH to keep the independent forum going.
Also, I’ve just updated this document with the error message first reported and your solution.