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:

  1. plug in one camera
  2. start depth frame,color frame, motion frame
  3. read error message
  4. 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

Most upvoted comments

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.

Required Info
Camera Model D400
Firmware Version 05.12.03.00
Operating System & Version Ubuntu 16.04
Kernel Version (Linux Only) 4.15.0-88-generic
Platform -
SDK Version 2.33.1
Language python
Segment Robot

Any update on this issue? The compilation issue is separate. We see that this hasn’t been fixed yet.