Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why D415 camera is mounted on the USB 2.0 driver instead of USB 3.0 of the ARM platform? #7928

Closed
hywang-66 opened this issue Dec 7, 2020 · 15 comments

Comments

@hywang-66
Copy link

Required Info
Camera Model D415
Firmware Version 05.12.05.00
Operating System & Version Linux
Kernel Version (Linux Only) 4.9
Platform ARM
SDK Version 2.35.0
Language C++

Issue Description

When camera is plugged into the ARM platform, why does it show it is mounted under the USB 2.0 instead of USB 3.0? And how to mount the camera under USB 3.0? Thank you!

The current USB port of ARM platform has two drivers, USB 3.0 and USB 2.0 respectively. When using the original USB Type-C cable to connect the camera to the ARM platform, the camera is mounted under the USB 2.0 driver instead of USB 3.0. When connect to the USB 3.0 of PC, it will be mounted under the USB 3.0. No change after re-plugging several times. The following figures show the situation on the PC and ARM platforms respectively.

usb3 0

connect the camera to ARM

pc_usb3 0

connect the camera to PC

@MartyG-RealSense
Copy link
Collaborator

Hi @hywang-66 It looks as though you are using Arm for Ubuntu (the version of Ubuntu for Arm).

Could you tell me please the name of the Arm device that you are attaching the camera to? This is important, as Arm Platform can literally mean a device that has an Arm processor. Some Arm devices, such as Raspberry Pi boards before Pi 4, only have a USB 2 port and so would not be able to provide USB 3.

@hywang-66
Copy link
Author

@MartyG-RealSense
The arm platform is Zynq Ultrascale+ which has USB 3.0 port.

@MartyG-RealSense
Copy link
Collaborator

MartyG-RealSense commented Dec 7, 2020

I would recommend building librealsense from source code using the RSUSB backend installation method. This method requires an internet connection for the installation process but it is not dependent on Linux versions or kernel versions and does not require patching. Instructions for this process, which is enabled by adding the customization flag -DFORCE_RSUSB_BACKEND=true to a CMake build instruction, can be found in the link below.

#6368 (comment)

@hywang-66
Copy link
Author

@MartyG-RealSense
I try you advice, then re-compile the library again. But it is still mounted on the USB 2.0 driver.

@MartyG-RealSense
Copy link
Collaborator

Thank you very much. Could you run rs-enumerate-devices and post the output here please?

Also, if you have access to the RealSense Viewer program, does it say '2.1' or '3.2' beside the camera name at the top of the options side-panel? 2.1 indicates USB 2 and 3.2 indicates USB 3. Whilst in the Viewer, you could go to the More option at the top of the side-panel and select Hardware Reset from its drop-down menu to reset the camera without unplugging and replugging the camera. If you can do so, does the USB status change?

image

@hywang-66
Copy link
Author

@MartyG-RealSense
Sorry, my Linux system currently only has a terminal and no UI. So I can not run RealSense-Viewer. Whether this issue is related to USB3.0 compatibility?

@MartyG-RealSense
Copy link
Collaborator

If your Linux system is running in a "headless" setup without a display, is it also installed on a Virtual Machine (VM)? This can cause problems with USB, as described in the opening section of the installation instructions for building librealsense from source code.

"Due to the USB 3.0 translation layer between native hardware and virtual machine, the librealsense team does not support installation in a VM. If you do choose to try it, we recommend using VMware Workstation Player, and not Oracle VirtualBox for proper emulation of the USB3 controller".

@hywang-66
Copy link
Author

hywang-66 commented Dec 9, 2020

@MartyG-RealSense
I put the Linux image file which made by the tool in the memory. When the system is powered on, ARM will load the Linux image file in the memory. Mainly use the serial port on ARM to interact with Linux system. Do you mean this image file is the same as the Virtual Machine?

@MartyG-RealSense
Copy link
Collaborator

Your project's setup does sound as though it has characteristics of a Virtual Machine (emulating a computer system, a Linux system in this case).

https://en.wikipedia.org/wiki/Virtual_machine

@hywang-66
Copy link
Author

@MartyG-RealSense
Do you have any good suggestions on which board can be used to make the Realsense camera work under USB3.0, and can output 640*480p60 frames of data stably. The board is required to be small in size and relatively inexpensive, and it can be displayed using interfaces such as VGA or HDMI port. Thank you!

@MartyG-RealSense
Copy link
Collaborator

Raspberry Pi 4 Model B should meet all of those requirements. The Pi 4, which is an Arm board, has been widely used with RealSense 400 Series cameras.

https://www.raspberrypi.org/products/raspberry-pi-4-model-b/

@hywang-66
Copy link
Author

@MartyG-RealSense Thank you!!!

@MartyG-RealSense
Copy link
Collaborator

Hi @hywang-66 Do you require further assistance with this case, please? Thanks!

@hywang-66
Copy link
Author

@MartyG-RealSense It's enough. Thanks!

@MartyG-RealSense
Copy link
Collaborator

Thanks very much @hywang-66 for the update!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants