librealsense: Multi-camera issue: After connecting the sixth camera, its motion frame doesn't arrive
Required Info | |
---|---|
Camera Model | D435i |
Firmware Version | 05.12.02.100 |
Operating System & Version | Ubuntu 18.04 |
Kernel Version (Linux Only) | 4.15.0-76 and 5.0.0-23 |
Platform | PC |
SDK Version | 2.32.1 |
Language | C++ |
Segment | Others |
Hardware: i7-9800X, Qudro RTX4000 , Nvidia driver 435.21
Issue Description
Hello, We are going to use six or more cameras in our system. On windows10, all demos from sdk are fine without problem.
On Ubuntu, different errors start appearing after plug in more cameras. The main issue which stop us developing is we cam not use the motion frame from the sixth camera. (In demo rs-multicam, it only show 5 cameras when 6 are plugged in). Could your team check how we could fix this issue? Thanks!
Monitoring the frame data from the Realsense Viewer. Testing procedures:
- plug in one camera
- start depth frame,color frame, motion frame
- read error message
- plug in the next camera
First CAM
11/02 10:56:43,100 WARNING [140697856358144] (ds5-timestamp.cpp:76) UVC metadata payloads not available. Please refer to the installation chapter for details.
11/02 10:56:43,881 WARNING [140697466291968] (backend-hid.cpp:681) HID set_power 1 failed for /sys/devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10.2/2-10.2:1.5/0003:8086:0B3A.0006/HID-SENSOR-200073.1.auto/iio:device0/buffer/enable
Second CAM
Third CAM
11/02 10:58:39,747 ERROR [140698292938496] (types.h:304) get_dev_capabilities: Cannot open '/dev/video17 Last Error: Permission denied
11/02 10:58:39,749 ERROR [140698292938496] (types.h:304) get_dev_capabilities: Cannot open '/dev/video15 Last Error: Permission denied
11/02 10:58:39,750 ERROR [140698292938496] (types.h:304) get_dev_capabilities: Cannot open '/dev/video13 Last Error: Permission denied
11/02 10:58:39,751 ERROR [140698292938496] (types.h:304) get_dev_capabilities: Cannot open '/dev/video16 Last Error: Permission denied
11/02 10:58:39,751 ERROR [140698292938496] (types.h:304) get_dev_capabilities: Cannot open '/dev/video14 Last Error: Permission denied
11/02 10:58:39,751 ERROR [140698292938496] (types.h:304) get_dev_capabilities: Cannot open '/dev/video12 Last Error: Permission denied
4th CAM
11/02 11:00:05,162 ERROR [140698292938496] (backend-v4l2.cpp:598) Metadata node for uvc device: id- /dev/video22
vid- 8086
pid- b3a
mi- 3
unique_id- 6-1-2
path- /sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:02.0/0000:1a:00.0/usb6/6-1/6-1:1.3/video4linux/video22
susb specification- 320
metadata node-/dev/video23 was already been assigned
5th CAM
11/02 11:00:50,402 ERROR [140698292938496] (backend-v4l2.cpp:598) Metadata node for uvc device: id- /dev/video28
vid- 8086
pid- b3a
mi- 3
unique_id- 4-1-2
path- /sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:01.0/0000:19:00.0/usb4/4-1/4-1:1.3/video4linux/video28
susb specification- 320
metadata node-/dev/video29 was already been assigned
6th CAM
vid- 8086
pid- b3a
mi- 3
unique_id- 4-1-2
path- /sys/devices/pci0000:16/0000:16:00.0/0000:17:00.0/0000:18:01.0/0000:19:00.0/usb4/4-1/4-1:1.3/video4linux/video28
susb specification- 320
metadata node-/dev/video29 was already been assigned
After enabling the Motion Frame from the 6th CAM All the frame reading disappeared on the viewer, shows:
** Nothing is streaming Tolggle to start**
11/02 11:03:56,218 WARNING [140692013688576] (backend-hid.cpp:598) iio_hid_sensor: Frames didn't arrived within 5 seconds
11/02 11:03:56,218 WARNING [140692022081280] (backend-hid.cpp:598) iio_hid_sensor: Frames didn't arrived within 5 seconds
11/02 11:06:37,534 WARNING [140698442491776] (types.cpp:49) Accel Sensitivity:hwmon command 0x4f failed. Error type: No data to return (-21).
Error from realsense viewer log
Error Viewer
Timestamp: 1581415405023.902832
Severity: Error
Description: USB SCP overflow
Severity: Error
Description: USB CAM overflow
Samples from dmesg errors:
[ 55.715070] usb 2-10.2: new SuperSpeed Gen 1 USB device number 4 using xhci_hcd
[ 55.735643] usb 2-10.2: New USB device found, idVendor=8086, idProduct=0b3a, bcdDevice=50.c2
[ 55.735646] usb 2-10.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 55.735649] usb 2-10.2: Product: Intel(R) RealSense(TM) Depth Camera 435i
[ 55.735651] usb 2-10.2: Manufacturer: Intel(R) RealSense(TM) Depth Camera 435i
[ 55.735653] usb 2-10.2: SerialNumber: 934123056218
[ 55.761916] media: Linux media interface: v0.10
[ 55.765328] PKCS#7 signature not signed with a trusted key
[ 55.767741] PKCS#7 signature not signed with a trusted key
[ 55.771439] videodev: Linux video capture interface: v2.00
[ 55.783411] PKCS#7 signature not signed with a trusted key
[ 55.783975] PKCS#7 signature not signed with a trusted key
[ 55.785131] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435i (8086:0b3a)
[ 55.790400] uvcvideo: Unable to create debugfs 2-4 directory.
[ 55.790612] uvcvideo 2-10.2:1.0: Entity type for entity Intel(R) RealSense(TM) Depth Ca was not initialized!
[ 55.790617] uvcvideo 2-10.2:1.0: Entity type for entity Processing 2 was not initialized!
[ 55.790621] uvcvideo 2-10.2:1.0: Entity type for entity Camera 1 was not initialized!
[ 55.791583] input: Intel(R) RealSense(TM) Depth Ca as /devices/pci0000:00/0000:00:14.0/usb2/2-10/2-10.2/2-10.2:1.0/input/input24
[ 55.792019] uvcvideo: Found UVC 1.50 device Intel(R) RealSense(TM) Depth Camera 435i (8086:0b3a)
[ 55.795587] uvcvideo: Unable to create debugfs 2-4 directory.
[ 55.795727] uvcvideo 2-10.2:1.3: Entity type for entity Processing 7 was not initialized!
[ 55.795729] uvcvideo 2-10.2:1.3: Entity type for entity Extension 8 was not initialized!
[ 55.795731] uvcvideo 2-10.2:1.3: Entity type for entity Camera 6 was not initialized!
[ 55.795840] usbcore: registered new interface driver uvcvideo
[ 55.795841] USB Video Class driver (1.1.2.realsense-1.3.13)
[ 55.883103] hid-sensor-hub 0003:8086:0B3A.0006: No report with id 0xffffffff found
[ 57.220030] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
[ 57.270942] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
... more UVC control errors ...
[ 61.560912] uvcvideo: Failed to query (GET_CUR) UVC control 1 on unit 3: -32 (exp. 1024).
[ 61.739843] hid-sensor-hub 0003:8086:0B3A.0006: No report with id 0xffffffff found
After searching on the closed issues here, it seems to be a kernel patch problem. But we did install librealsense-dkms package.
Loading the modified modules into kernel... complete
Current status:
librealsense2-dkms, 1.3.13, 4.15.0-76-generic, x86_64: installed
librealsense2-dkms, 1.3.13, 5.0.0-23-generic, x86_64: installed
nvidia, 435.21, 4.15.0-76-generic, x86_64: installed
nvidia, 435.21, 5.0.0-23-generic, x86_64: installed
mod: videodev version: realsense2-dkms
mod: uvcvideo version: 1.1.2.realsense-1.3.13
mod: hid_sensor_gyro_3d version: realsense2-dkms
mod: hid_sensor_accel_3d version: realsense2-dkms
verified by: modinfo uvcvideo | grep "version:"
version: 1.1.2.realsense-1.3.13
srcversion: 675D90F9B82D78E0628E213
We also tried install patch manually under Ubuntu (the official guide) and Arch Linux, under kernel 5.0 and 5.1. following the guide from closed issue #4271 , but we have the same problem.
It seems not caused by a bandwidth or cable problem. 4 in 6 cameras are connected to dedicated USB3.1 ports and everything works fine on windows
USB connection verified by lsusb --tree
/: Bus 12.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 10000M
/: Bus 11.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
/: Bus 10.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 5, Class=Human Interface Device, Driver=usbhid, 5000M
/: Bus 09.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 08.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 5, Class=Human Interface Device, Driver=usbhid, 5000M
/: Bus 07.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 5, Class=Human Interface Device, Driver=usbhid, 5000M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 5000M
|__ Port 1: Dev 2, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 2, If 5, Class=Human Interface Device, Driver=usbhid, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/1p, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/10p, 5000M
|__ Port 3: Dev 14, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
|__ Port 5: Dev 5, If 0, Class=Hub, Driver=hub/2p, 5000M
|__ Port 2: Dev 6, If 0, Class=Hub, Driver=hub/2p, 5000M
|__ Port 2: Dev 7, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 7, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 7, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 7, If 5, Class=Human Interface Device, Driver=usbhid, 5000M
|__ Port 2: Dev 7, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 7, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 9: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
|__ Port 10: Dev 3, If 0, Class=Hub, Driver=hub/2p, 5000M
|__ Port 2: Dev 4, If 5, Class=Human Interface Device, Driver=usbhid, 5000M
|__ Port 2: Dev 4, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 4, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 4, If 4, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 4, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 2: Dev 4, If 0, Class=Video, Driver=uvcvideo, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
|__ Port 5: Dev 6, If 0, Class=Hub, Driver=hub/2p, 480M
|__ Port 2: Dev 7, If 0, Class=Hub, Driver=hub/2p, 480M
|__ Port 10: Dev 2, If 0, Class=Hub, Driver=hub/2p, 480M
|__ Port 1: Dev 5, If 2, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 5, If 0, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 1: Dev 5, If 1, Class=Human Interface Device, Driver=usbhid, 12M
|__ Port 11: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
|__ Port 11: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 90
Marty. I am frustrated that we are dilly dallying the issue. There is no connection to USB Hub. It was a test we did to see if it helps to add a hub. The hub does not help as well. It is such an easily reproducible issue. We have bought 100 intel cameras so far during our R&D phase, now we are in production, but still facing the issue. We have been forced to use a regular RGB camera as our second camera to pair up with the 1st Realsense camera. Why can’t we have a 2 Realsense camera setup going??
Based on my testing, I do not think it is a power issue at all. IMO, when trying to starting the 2nd camera, the librealsense library is most likely trying to connect to the 1st camera (which is already running) instead of trying to connect to 2nd camera and hence the “cannot set power state error”.
Try the experiment, start 1 camera and try to enumerate the devices through
rs-enumerate-devices --short
, you will see the same “cannot set power state error” on that 1 camera.We’re facing the same issue. When we connect the 2nd camera, we get “Cannot set power state” error.
Any update on this issue? The compilation issue is separate. We see that this hasn’t been fixed yet.