Closed gustavz closed 6 years ago
@eleboss i did the modifications but this guide should be updated as the referenced lines are not correct anymore. This guide does not help with the current version of skripts.
EDIT:
i changed ./scripts/patch-realsense-ubuntu-xenial.sh
back to the version of the guide but still the script can't run. I had look at it and it i am not sure how it ever was able to run successfully on a jetson tx2?
EDIT2: It does not work anymore for Jetsons flashed with JetPack 3.2 as JacksonHacks github repo (https://github.com/jetsonhacks/buildJetsonTX2Kernel) which is used here did change. I tried to do it manually but it failed and it took all my left 3GB disk space, now the whole disk space is full, i cant even autocomplete anymore. nothing works!
Has anybody an idea where all these files are that dumped my disk?
Gustav, I did compile the latest librealsense2 (2.10.2) from git repo on TX2 a few days ago and it did compile cleanly. I'm using L4T 28.1 kernel sources, here's the librealsense2 patches I did apply to my kernel tree:
root@tx2:/usr/src/kernel-28.1/kernel-4.4# patch -p1 < realsense-camera-formats_ubuntu-xenial-master.patch patching file drivers/media/usb/uvc/Makefile patching file drivers/media/usb/uvc/uvc_driver.c patching file drivers/media/usb/uvc/uvcvideo.h Hunk #1 succeeded at 122 (offset 7 lines). Hunk #2 succeeded at 137 (offset 7 lines). patching file drivers/media/v4l2-core/v4l2-ioctl.c Hunk #1 succeeded at 1236 (offset 7 lines). patching file include/uapi/linux/videodev2.h Hunk #1 succeeded at 632 (offset 8 lines). root@tx2:/usr/src/kernel-28.1/kernel-4.4# root@tx2:/usr/src/kernel-28.1/kernel-4.4# root@tx2:/usr/src/kernel-28.1/kernel-4.4# patch -p1 < realsense-metadata-ubuntu-xenial-master.patch patching file drivers/media/usb/uvc/uvc_driver.c Hunk #1 succeeded at 2624 with fuzz 2 (offset -75 lines). patching file drivers/media/usb/uvc/uvc_video.c Hunk #1 succeeded at 1234 (offset 6 lines). Hunk #2 succeeded at 1272 (offset 6 lines). patching file drivers/media/usb/uvc/uvcvideo.h Hunk #1 succeeded at 189 (offset 34 lines). Hunk #2 succeeded at 209 (offset 34 lines). root@tx2:/usr/src/kernel-28.1/kernel-4.4# patch -p1 < realsense-hid-ubuntu-xenial-master.patch patching file drivers/iio/accel/hid-sensor-accel-3d.c patching file drivers/iio/gyro/hid-sensor-gyro-3d.c patching file include/linux/hid-sensor-ids.h root@tx2:/usr/src/kernel-28.1/kernel-4.4# patch -p1 < realsense-powerlinefrequency-control-fix.patchpatching file drivers/media/usb/uvc/uvc_ctrl.c Hunk #1 succeeded at 356 (offset -1 lines). root@tx2:/usr/src/kernel-28.1/kernel-4.4# root@tx2:/usr/src/kernel-28.1/kernel-4.4#
I used the following options to compile librealsense2:
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_WITH_OPENMP=OFF -DBUILD_EXAMPLES=ON -DBUILD_GRAPHICAL_EXAMPLES=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_CV_EXAMPLES=ON
make clean && make -j4
-albertr
[Realsense Customer Engineering Team Comment] Hi @GustavZ,
You can refer to below patch for Jetson TX2 and the latest BSP (L4T 28.2) used. It should be ok for SR300 and D415/D435 camera. https://github.com/freemanlo/librealsense/blob/master/scripts/patch-realsense-ubuntu-xenial-jetson-tx2.sh
@RealSense-Customer-Engineering That looks great! I will check that immediately.
Thank you!
And do have an idea where my 3Gb of disk space could have gone? Because the librealsense directory is still just a few 100mbs.
Where could be the data junks?
@GustavZ the buildJetsonTX2kernel will build a kernel under /usr/src maybe that is your 3GB space
Is this using CUDA? I've seen videos like this:
https://www.youtube.com/watch?v=t9nOUVw2VzA
and the performance of the D435 is pretty awful on a TX2. It was the same for the SR300 I found as well, but had hoped it improved.
Thoughts on improving performance?
@RealSense-Customer-Engineering I flash my TX2 and using the patch you provided. Install librealsense successfully but when I use ros warpper, I meet these errors. Do you have and ideas why? I am using D435 and TX2 in jetpack 3.2. and J120 carrier board.
ubuntu@tegra-ubuntu:~/catkin_ws$ roslaunch realsense2_camera rs_camera.launch ... logging to /home/ubuntu/.ros/log/ab1a2a38-3090-11e8-b3fd-00044ba7d970/roslaunch-tegra-ubuntu-19827.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://tegra-ubuntu:43313/
PARAMETERS
NODES /camera/ realsense2_camera (nodelet/nodelet) realsense2_camera_manager (nodelet/nodelet)
auto-starting new master process[master]: started with pid [19837] ROS_MASTER_URI=http://localhost:11311
setting /run_id to ab1a2a38-3090-11e8-b3fd-00044ba7d970 process[rosout-1]: started with pid [19850] started core service [/rosout] process[camera/realsense2_camera_manager-2]: started with pid [19867] process[camera/realsense2_camera-3]: started with pid [19868] [ INFO] [1522025854.791451692]: Initializing nodelet with 4 worker threads. [ INFO] [1522025854.852509296]: RealSense ROS v2.0.2 [ INFO] [1522025854.852583761]: Running with LibRealSense v2.10.2 26/03 00:57:34,857 WARNING [547602657280] (backend-hid.cpp:1091) Failed to read busnum/devnum. Device Path: /sys/bus/iio/devices/iio:device0 26/03 00:57:34,857 WARNING [547602657280] (backend-hid.cpp:1091) Failed to read busnum/devnum. Device Path: /sys/bus/iio/devices/iio:device1 26/03 00:57:34,870 WARNING [547602657280] (backend-hid.cpp:1091) Failed to read busnum/devnum. Device Path: /sys/bus/iio/devices/iio:device0 26/03 00:57:34,871 WARNING [547602657280] (backend-hid.cpp:1091) Failed to read busnum/devnum. Device Path: /sys/bus/iio/devices/iio:device1
[ INFO] [1522025854.978451503]: JSON file is not provided [ INFO] [1522025854.978562160]: ROS Node Namespace: camera [ INFO] [1522025854.978657746]: Device Name: Intel RealSense USB2 [ INFO] [1522025854.978723059]: Device Serial No: 801212070377 [ INFO] [1522025854.978780436]: Device FW version: 05.08.15.00 [ INFO] [1522025854.978840468]: Device Product ID: 0x0AD6 [ INFO] [1522025854.978896981]: Enable PointCloud: Off [ INFO] [1522025854.978955158]: Align Depth: Off [ INFO] [1522025854.979007159]: Sync Mode: Off [ INFO] [1522025854.979764098]: Device Sensors: [ INFO] [1522025854.980343146]: Stereo Module was found. [ INFO] [1522025854.980967667]: (Color, 0) sensor isn't supported by current device! -- Skipping... [ INFO] [1522025854.981057172]: (Fisheye, 0) sensor isn't supported by current device! -- Skipping... [ INFO] [1522025854.981124181]: (Gyro, 0) sensor isn't supported by current device! -- Skipping... [ INFO] [1522025854.981184278]: (Accel, 0) sensor isn't supported by current device! -- Skipping...
26/03 00:57:35,603 WARNING [547602657280] (sensor.cpp:313) Unregistered Media formats : [ UYVY ]; Supported: [ ] [ WARN] [1522025855.604434086]: Given stream configuration is not supported by the device! Stream: Depth, Stream Index: 0, Format: Z16, Width: 640, Height: 480, FPS: 30 [ WARN] [1522025855.604702730]: Given stream configuration is not supported by the device! Stream: Infrared, Stream Index: 1, Format: Y8, Width: 640, Height: 480, FPS: 30 [ WARN] [1522025855.604855532]: Given stream configuration is not supported by the device! Stream: Infrared, Stream Index: 2, Format: Y8, Width: 640, Height: 480, FPS: 30
[ERROR] [1522025855.605559990]: Given depth profile is not supported by current device!
[FATAL] [1522025855.757329825]: Failed to load nodelet '/camera/realsense2_cameraof type
realsense2_camera/RealSenseNodeFactoryto manager
realsense2_camera_manager'
[camera/realsense2_camera_manager-2] process has died [pid 19867, exit code 1, cmd /opt/ros/kinetic/lib/nodelet/nodelet manager name:=realsense2_camera_manager log:=/home/ubuntu/.ros/log/ab1a2a38-3090-11e8-b3fd-00044ba7d970/camera-realsense2_camera_manager-2.log].
log file: /home/ubuntu/.ros/log/ab1a2a38-3090-11e8-b3fd-00044ba7d970/camera-realsense2_camera_manager-2.log
[camera/realsense2_camera-3] process has died [pid 19868, exit code 255, cmd /opt/ros/kinetic/lib/nodelet/nodelet load realsense2_camera/RealSenseNodeFactory realsense2_camera_manager __name:=realsense2_camera __log:=/home/ubuntu/.ros/log/ab1a2a38-3090-11e8-b3fd-00044ba7d970/camera-realsense2_camera-3.log].
log file: /home/ubuntu/.ros/log/ab1a2a38-3090-11e8-b3fd-00044ba7d970/camera-realsense2_camera-3.log
I wouldn't even bother with all of this @eleboss . I used this to install a D435 on a clean install of Jetpack 3.2. Worked perfectly and I was up in 20 minutes.
You may want to edit the shell script to check out the 2.10.2 version. Currently, it's on 2.10.1
@eleboss looks like USB3 super-speed was not properly negotiated between D435 and J120/TX2...
[ INFO] [1522025854.978657746]: Device Name: Intel RealSense USB2
You can check kernel messages or run lsusb -t
to confirm.
-albertr
@arybalkin This my devices information. Seems the usb 3.0 works, but just like you said USB3 super-speed was not properly negotiated between D435 and J120/TX2, I am trying to reflash the TX2 and use the jetpack3.1 to try.
Hi, What kind of cmake setting you are using?@lesreaper
ubuntu@tegra-ubuntu:~$ rs-enumerate-devices
Device info:
Name : Intel RealSense USB2
Serial Number : 801212070377
Firmware Version : 05.08.15.00
Physical Port : /sys/devices/3530000.xhci/usb1/1-2/1-2:1.0/video4linux/video0
Debug Op Code : 15
Advanced Mode : YES
Product Id : 0AD6
Stream Profiles supported by Stereo Module
Supported modes: stream resolution fps format
Infrared 2 480x270 @ 30Hz Y8
Infrared 1 480x270 @ 30Hz Y8
Infrared 2 480x270 @ 15Hz Y8
Infrared 1 480x270 @ 15Hz Y8
Infrared 2 480x270 @ 6Hz Y8
Infrared 1 480x270 @ 6Hz Y8
Infrared 2 424x240 @ 30Hz Y8
Infrared 1 424x240 @ 30Hz Y8
Infrared 2 424x240 @ 15Hz Y8
Infrared 1 424x240 @ 15Hz Y8
Infrared 2 424x240 @ 6Hz Y8
Infrared 1 424x240 @ 6Hz Y8
Depth 480x270 @ 30Hz Z16
Depth 480x270 @ 15Hz Z16
Depth 480x270 @ 6Hz Z16
Depth 424x240 @ 30Hz Z16
Depth 424x240 @ 15Hz Z16
Depth 424x240 @ 6Hz Z16
ubuntu@tegra-ubuntu:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 008: ID 8086:0ad6 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
ubuntu@tegra-ubuntu:~$ lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
|__ Port 3: Dev 10, If 0, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 10, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 10, If 2, Class=Video, Driver=uvcvideo, 480M
|__ Port 3: Dev 10, If 3, Class=Vendor Specific Class, Driver=, 480M
My Jetson won't boot due to the full disk. Does anybody know how i can reflash it without it being able to boot?
I am able to do ctrl+alt+f1 and deleted some files, but still it is not able to boot. Maybe its the damaged image the kernel created...
@GustavZ just put it into recovery mode and push new os through the microusb on your host. It should all be in the jetpack "suite" installed on your host pc. guide if needed
@TheMikeyR alright, i am reflashing it. But thats a shame, will be a whole day's work to have everything up and running again....
Do you successfully use the D435 on your Jetson Tx2 with JetPack 3.2?
@GustavZ I've only tested D415 and it works fine. My D435 is in backorder, and will be shipped soon I guess.
@arybalkin Thank you for pointing the USB problem!!! It's my USB cable problem, I change a new USB 3.1 cable and it work very well!
@RealSense-Customer-Engineering
I tested the script It work very well, except a little bug:
I comment this line:
sudo rm ${tgt_ko}.bckup
in https://github.com/freemanlo/librealsense/blob/master/scripts/patch-utils.sh line 138
otherwise it will report: cp no such file or directory.
My procedure as follow:
Flash the TX2 by using jetpack 3.2(with J120 USB patch, if you are using official board, just ignore)
Using jetpack3.0 to install CUDA8.0 and cudnn5.1
git clone https://github.com/freemanlo/librealsense
cd librealsense/scripts/
gedit patch-utils.sh
delete line 138
`sudo rm ${tgt_ko}.bckup`
save
sudo apt-get install libusb-1.0-0-dev pkg-config cmake git libglfw3-dev qtcreator cmake-curses-gui build-essential libgtk-3-dev libssl-dev
cd ../
./scripts/patch-realsense-ubuntu-xenial-jetson-tx2.sh
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
install opencv by using https://github.com/jetsonhacks/buildOpenCVTX2 (ignore if you have already done that)
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true
make && sudo make install
@eleboss why are you not cloning librealsense from the original repo?
EDIT1: you wrote:
I comment this line: sudo rm ${tgt_ko}.bckup in https://github.com/freemanlo/librealsense/blob/master/scripts/patch-utils.sh line 138 otherwise it will report: cp no such file or directory.
but thats a rm not a cp command, the cp command is in line 130: sudo cp ${tgt_ko}.bckup ${tgt_ko}
but still commenting it out seems necessary
EDIT2:
sudo apt install openssl-dev
is not working on my jetson tx2, do you mean libssl-dev
?
EDIT3: i successfully installed librealsense but when i start realsense-viewer i get no frames and following errors:
...
27/03 12:43:53,484 WARNING [547531296480] (backend-hid.cpp:1091) Failed to read busnum/devnum. Device Path: /sys/bus/iio/devices/iio:device3
27/03 12:43:54,005 WARNING [547491639008] (types.cpp:57) get_xu(id=7) failed! Last Error: Input/output error
27/03 12:43:54,008 ERROR [547491639008] (error-handling.cpp:68) Error during polling error handler: get_xu(id=7) failed! Last Error: Input/output error
Also building the sdk (https://software.intel.com/sites/products/realsense/sdk/getting_started.html) failes with (or is this deprecated when using librealsense with D400 cameras?):
31: fatal error: librealsense/rs.hpp: No such file or directory
compilation terminated.
sdk/src/utilities/viewer/CMakeFiles/realsense_viewer.dir/build.make:62: recipe for target 'sdk/src/utilities/viewer/CMakeFiles/realsense_viewer.dir/viewer.cpp.o' failed
make[2]: *** [sdk/src/utilities/viewer/CMakeFiles/realsense_viewer.dir/viewer.cpp.o] Error 1
CMakeFiles/Makefile2:215: recipe for target 'sdk/src/utilities/viewer/CMakeFiles/realsense_viewer.dir/all' failed
make[1]: *** [sdk/src/utilities/viewer/CMakeFiles/realsense_viewer.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
EDIT4: is it necessary to change something in the config file taht pops up during patching?
EDIT5:
I re-did everything but still realsense-viewer does not work and again 2GB of my disk space are gone and i have no clue where they are. here is a screenshot of how opening the viewer it looks:
and this was my routine:
sudo apt-get update
git clone https://github.com/freemanlo/librealsense
cd librealsense
gedit scripts/patch-utils.sh
# comment line 138 "sudo rm ${tgt_ko}.bckup"
sudo apt-get install libusb-1.0-0-dev pkg-config cmake git libglfw3-dev qtcreator cmake-curses-gui build-essential libgtk-3-dev libssl-dev
./scripts/patch-realsense-ubuntu-xenial-jetson-tx2.sh
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true
sudo make uninstall && make clean && make -j4 && sudo make install
[Realsense Customer Engineering Team Comment] Just make sure you have the correct script, and then the kernel patches can work with librealsense 2.x + SR300/D415/D435. Still need any help?
@GustavZ
Highly suggest you to did that from scratch, Flash the jetson TX2 then install, otherwise more problems will come.
For the first, I think it is necessary for my TX2 cause I meet some error, so I think it is necessary for you too.
For the second, libssl-dev is right.
For the third and the rest, can you use:
rs-enumerate-devices
after make install action to see the parameter of you realsense ?
@GustavZ I see the image shows you are using Intel Realsense USB2, It not right, you shouldn't see the USB2 if you are using USB3 super speed. Check your USB cable and port. Make sure both the cable and port are USB3.0 That is important!
@eleboss The thing is jetson only has one usb3 port and as ia m using it standalone, so with mouse and keyboard, i am using a usb hub and probably thats not usb3 able...
I will reflash and do the librealsense installation as the first action, lets see...
rs-enumerate-devices gives me:
rs-enumerate-devices
Device info:
Name : Intel RealSense USB2
Serial Number : 728312070461
Firmware Version : 05.08.15.00
Physical Port : /sys/devices/3530000.xhci/usb1/1-2/1-2.1/1-2.1:1.0/video4linux/video1
Debug Op Code : 15
Advanced Mode : YES
Product Id : 0AD6
Stream Profiles supported by Stereo Module
Supported modes: stream resolution fps format
Infrared 2 480x270 @ 30Hz Y8
Infrared 1 480x270 @ 30Hz Y8
Infrared 2 480x270 @ 15Hz Y8
Infrared 1 480x270 @ 15Hz Y8
Infrared 2 480x270 @ 6Hz Y8
Infrared 1 480x270 @ 6Hz Y8
Infrared 2 424x240 @ 30Hz Y8
Infrared 1 424x240 @ 30Hz Y8
Infrared 2 424x240 @ 15Hz Y8
Infrared 1 424x240 @ 15Hz Y8
Infrared 2 424x240 @ 6Hz Y8
Infrared 1 424x240 @ 6Hz Y8
Depth 480x270 @ 30Hz Z16
Depth 480x270 @ 15Hz Z16
Depth 480x270 @ 6Hz Z16
Depth 424x240 @ 30Hz Z16
Depth 424x240 @ 15Hz Z16
Depth 424x240 @ 6Hz Z16
Device info:
Name : Platform Camera
Serial Number : 1-2.2-4
Physical Port : /sys/devices/3530000.xhci/usb1/1-2/1-2.2/1-2.2:1.2/video4linux/video3
Product Id : 0823
Stream Profiles supported by RGB Camera
Supported modes: stream resolution fps format
Color 2592x1944 @ 2Hz Y16
Color 2592x1944 @ 2Hz BGRA8
Color 2592x1944 @ 2Hz RGBA8
Color 2592x1944 @ 2Hz BGR8
...
It is very clear that your USB3.0 is not being used.
rs-enumerate-devices
Device info:
Name : Intel RealSense USB2
I think it is the USB2 hub problem. Maybe it is time to buy a USB3.0 HUB.
@GustavZ my temporarily fix until I received my usb3 hub was to use desktop share and then remote desktop into the jetson with only the camera plugged in to the one usb port on the jetson. A fine work around while you wait for the hub to arrive. The remote desktop sharing does cost some resources of the jetson though.
@eleboss @TheMikeyR thanks guys, i will try it and tell you how it went afterwards.
one more thing @eleboss in your routine you are talking about installing openCV, but OpenCV 3.3.1 comes with JetPack 3.2 if im right ?
EDIT: after new flash and new install of librealsense using a usb3 hub i get:
rs-enumerate-devices
Device info:
Name : Intel RealSense 435
Serial Number : 728312070461
Firmware Version : 05.08.15.00
Physical Port : /sys/devices/3530000.xhci/usb2/2-1/2-1.1/2-1.1:1.0/video4linux/video1
Debug Op Code : 15
Advanced Mode : YES
Product Id : 0B07
Stream Profiles supported by Stereo Module
Supported modes: stream resolution fps format
Infrared 2 1280x800 @ 30Hz Y8
Infrared 1 1280x800 @ 30Hz Y8
Infrared 1 1280x800 @ 25Hz Y16
Infrared 2 1280x800 @ 25Hz Y16
Infrared 2 1280x800 @ 15Hz Y16
Infrared 1 1280x800 @ 15Hz Y16
Infrared 1 1280x800 @ 15Hz Y8
Infrared 2 1280x800 @ 15Hz Y8
Infrared 1 1280x720 @ 30Hz Y8
Infrared 2 1280x720 @ 30Hz Y8
Infrared 2 1280x720 @ 15Hz Y8
Infrared 1 1280x720 @ 15Hz Y8
Infrared 1 1280x720 @ 6Hz Y8
Infrared 2 1280x720 @ 6Hz Y8
Infrared 2 848x480 @ 90Hz Y8
Infrared 1 848x480 @ 90Hz Y8
Infrared 2 848x480 @ 60Hz Y8
Infrared 1 848x480 @ 60Hz Y8
Infrared 2 848x480 @ 30Hz Y8
Infrared 1 848x480 @ 30Hz Y8
Infrared 2 848x480 @ 15Hz Y8
Infrared 1 848x480 @ 15Hz Y8
Infrared 2 848x480 @ 6Hz Y8
Infrared 1 848x480 @ 6Hz Y8
Infrared 2 640x480 @ 90Hz Y8
Infrared 1 640x480 @ 90Hz Y8
Infrared 2 640x480 @ 60Hz Y8
Infrared 1 640x480 @ 60Hz Y8
Infrared 1 640x480 @ 30Hz Y8
Infrared 2 640x480 @ 30Hz Y8
Infrared 1 640x480 @ 15Hz Y8
Infrared 2 640x480 @ 15Hz Y8
Infrared 2 640x480 @ 6Hz Y8
Infrared 1 640x480 @ 6Hz Y8
Infrared 1 640x400 @ 25Hz Y16
Infrared 2 640x400 @ 25Hz Y16
Infrared 1 640x400 @ 15Hz Y16
Infrared 2 640x400 @ 15Hz Y16
Infrared 2 640x360 @ 90Hz Y8
Infrared 1 640x360 @ 90Hz Y8
Infrared 1 640x360 @ 60Hz Y8
Infrared 2 640x360 @ 60Hz Y8
Infrared 1 640x360 @ 30Hz Y8
Infrared 2 640x360 @ 30Hz Y8
Infrared 2 640x360 @ 15Hz Y8
Infrared 1 640x360 @ 15Hz Y8
Infrared 1 640x360 @ 6Hz Y8
Infrared 2 640x360 @ 6Hz Y8
Infrared 2 480x270 @ 90Hz Y8
Infrared 1 480x270 @ 90Hz Y8
Infrared 1 480x270 @ 60Hz Y8
Infrared 2 480x270 @ 60Hz Y8
Infrared 1 480x270 @ 30Hz Y8
Infrared 2 480x270 @ 30Hz Y8
Infrared 2 480x270 @ 15Hz Y8
Infrared 1 480x270 @ 15Hz Y8
Infrared 1 480x270 @ 6Hz Y8
Infrared 2 480x270 @ 6Hz Y8
Infrared 1 424x240 @ 90Hz Y8
Infrared 2 424x240 @ 90Hz Y8
Infrared 2 424x240 @ 60Hz Y8
Infrared 1 424x240 @ 60Hz Y8
Infrared 2 424x240 @ 30Hz Y8
Infrared 1 424x240 @ 30Hz Y8
Infrared 1 424x240 @ 15Hz Y8
Infrared 2 424x240 @ 15Hz Y8
Infrared 2 424x240 @ 6Hz Y8
Infrared 1 424x240 @ 6Hz Y8
Depth 1280x720 @ 30Hz Z16
Depth 1280x720 @ 15Hz Z16
Depth 1280x720 @ 6Hz Z16
Depth 848x480 @ 90Hz Z16
Depth 848x480 @ 60Hz Z16
Depth 848x480 @ 30Hz Z16
Depth 848x480 @ 15Hz Z16
Depth 848x480 @ 6Hz Z16
Depth 640x480 @ 90Hz Z16
Depth 640x480 @ 60Hz Z16
Depth 640x480 @ 30Hz Z16
Depth 640x480 @ 15Hz Z16
Depth 640x480 @ 6Hz Z16
Depth 640x360 @ 90Hz Z16
Depth 640x360 @ 60Hz Z16
Depth 640x360 @ 30Hz Z16
Depth 640x360 @ 15Hz Z16
Depth 640x360 @ 6Hz Z16
Depth 480x270 @ 90Hz Z16
Depth 480x270 @ 60Hz Z16
Depth 480x270 @ 30Hz Z16
Depth 480x270 @ 15Hz Z16
Depth 480x270 @ 6Hz Z16
Depth 424x240 @ 90Hz Z16
Depth 424x240 @ 60Hz Z16
Depth 424x240 @ 30Hz Z16
Depth 424x240 @ 15Hz Z16
Depth 424x240 @ 6Hz Z16
Stream Profiles supported by RGB Camera
Supported modes: stream resolution fps format
Color 1920x1080 @ 30Hz RAW16
Color 1920x1080 @ 30Hz Y16
Color 1920x1080 @ 30Hz BGRA8
...
But when i start realsense-viewer it shows me the first frame and then the whole jetson hangs and ich have to unplug the power cable and restart it.
What is your exact routine to get librealsense working after new fresh flashing with jetpack 3.2?
@RealSense-Customer-Engineering yes i still need help
[Realsense Customer Engineering Team Comment] Hi GustavZ,
Please refer to the attached picture "D415_USB3_Connection.png". D415 is connected to type-A USB3 port and one USB mouse/keyboard dongle is connected to the white OTG adaptor from Jetson TX2 Development Kit. Make sure to connect to the correct USB3 port. And, run below command to show me the USB connection condition. $ rs-enumerate-devices $ lsusb $ lsusb -t Then, run "dmesg", like to see if its USB enumeration has any issue.
As I know, JetPack 3.2 includes OpenCV.
The connection picture "D415_USB3_Connection.png" attached. Once this is correct, let's see if the librealsense issue there.
@RealSense-Customer-Engineering i already posted the rs-enumerate-devices output exactly the comment before your answer, but here is everything again: (the d435 is connected like in th epicture)
Device info:
Name : Intel RealSense 435
Serial Number : 728312070461
Firmware Version : 05.08.15.00
Physical Port : /sys/devices/3530000.xhci/usb2/2-1/2-1.1/2-1.1:1.0/video4linux/video1
Debug Op Code : 15
Advanced Mode : YES
Product Id : 0B07
Stream Profiles supported by Stereo Module
Supported modes: stream resolution fps format
Infrared 2 1280x800 @ 30Hz Y8
Infrared 1 1280x800 @ 30Hz Y8
Infrared 1 1280x800 @ 25Hz Y16
Infrared 2 1280x800 @ 25Hz Y16
Infrared 2 1280x800 @ 15Hz Y16
Infrared 1 1280x800 @ 15Hz Y16
Infrared 1 1280x800 @ 15Hz Y8
Infrared 2 1280x800 @ 15Hz Y8
Infrared 1 1280x720 @ 30Hz Y8
...
Stream Profiles supported by RGB Camera
Supported modes: stream resolution fps format
Color 1920x1080 @ 30Hz RAW16
Color 1920x1080 @ 30Hz Y16
Color 1920x1080 @ 30Hz BGRA8
Color 1920x1080 @ 30Hz RGBA8
Color 1920x1080 @ 30Hz BGR8
Color 1920x1080 @ 30Hz RGB8
Color 1920x1080 @ 30Hz YUYV
Color 1920x1080 @ 15Hz Y16
Color 1920x1080 @ 15Hz BGRA8
Color 1920x1080 @ 15Hz RGBA8
Color 1920x1080 @ 15Hz BGR8
Color 1920x1080 @ 15Hz RGB8
Color 1920x1080 @ 15Hz YUYV
Color 1920x1080 @ 6Hz Y16
Color 1920x1080 @ 6Hz BGRA8
Color 1920x1080 @ 6Hz RGBA8
Color 1920x1080 @ 6Hz BGR8
Color 1920x1080 @ 6Hz RGB8
Color 1920x1080 @ 6Hz YUYV
Color 1280x720 @ 30Hz Y16
Color 1280x720 @ 30Hz BGRA8
Color 1280x720 @ 30Hz RGBA8
...
Device info:
Name : Platform Camera
Serial Number : 1-2.4-5
Physical Port : /sys/devices/3530000.xhci/usb1/1-2/1-2.4/1-2.4:1.2/video4linux/video4
Product Id : 0823
Stream Profiles supported by RGB Camera
Supported modes: stream resolution fps format
Color 2592x1944 @ 2Hz Y16
Color 2592x1944 @ 2Hz BGRA8
Color 2592x1944 @ 2Hz RGBA8
Color 2592x1944 @ 2Hz BGR8
Color 2592x1944 @ 2Hz RGB8
Color 2592x1944 @ 2Hz YUYV
Color 2048x1536 @ 2Hz Y16
Color 2048x1536 @ 2Hz BGRA8
Color 2048x1536 @ 2Hz RGBA8
Color 2048x1536 @ 2Hz BGR8
Color 2048x1536 @ 2Hz RGB8
Color 2048x1536 @ 2Hz YUYV
Color 1920x1080 @ 2Hz Y16
Color 1920x1080 @ 2Hz BGRA8
Color 1920x1080 @ 2Hz RGBA8
Color 1920x1080 @ 2Hz BGR8
Color 1920x1080 @ 2Hz RGB8
...
here is lsusb:
Bus 002 Device 003: ID 8086:0b07 Intel Corp.
Bus 002 Device 002: ID 05e3:0612 Genesys Logic, Inc.
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 046d:0823 Logitech, Inc.
Bus 001 Device 004: ID 046d:c065 Logitech, Inc.
Bus 001 Device 003: ID 0bf8:100c Fujitsu Siemens Computers Keyboard FSC KBPC PX
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
here is lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/3p, 5000M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
|__ Port 1: Dev 3, If 0, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 3, If 1, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 3, If 2, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 3, If 3, Class=Video, Driver=uvcvideo, 5000M
|__ Port 1: Dev 3, If 4, Class=Video, Driver=uvcvideo, 5000M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci-tegra/4p, 480M
|__ Port 2: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
|__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 3: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 5, If 0, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 4: Dev 5, If 1, Class=Audio, Driver=snd-usb-audio, 480M
|__ Port 4: Dev 5, If 2, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 5, If 3, Class=Video, Driver=uvcvideo, 480M
i can also post again my installing routine:
sudo apt-get update
git clone https://github.com/freemanlo/librealsense
cd librealsense
gedit scripts/patch-utils.sh
# comment line 138 "sudo rm ${tgt_ko}.bckup"
sudo apt-get install libusb-1.0-0-dev pkg-config cmake git libglfw3-dev qtcreator cmake-curses-gui build-essential libgtk-3-dev libssl-dev
./scripts/patch-realsense-ubuntu-xenial-jetson-tx2.sh
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
mkdir build && cd build
cmake ../ -DBUILD_EXAMPLES=true
sudo make uninstall && make clean && make -j4 && sudo make install
what also could be interesting, after the installation:
inside the librealsense directory there is akernel-4.4
directory next to thebuildJetsonTx2Kernel
directory and also there is a 4.4.38-tegra
directory in the /home
folder containing these files:
/home/nvidia/4.4.38-tegra/uvcvideo.ko
/home/nvidia/4.4.38-tegra/videobuf2-core.ko
/home/nvidia/4.4.38-tegra/videobuf2-memops.ko
/home/nvidia/4.4.38-tegra/videobuf2-v4l2.ko
/home/nvidia/4.4.38-tegra/videobuf2-vmalloc.ko
why is this directory inside home and not inside librealsense?
Thats all that can be said, the installation runs without errors but realsense-viewer always hangs teh whole system right after the start.
what's strange is: after reflashing several times now i cant even build librealsense anymore it breaks at this point:
Scanning dependencies of target rs-pointcloud
[ 60%] Building CXX object examples/pointcloud/CMakeFiles/rs-pointcloud.dir/rs-pointcloud.cpp.o
[ 61%] Linking CXX executable rs-capture
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevices2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevice'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevice2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevices'
collect2: error: ld returned 1 exit status
examples/capture/CMakeFiles/rs-capture.dir/build.make:98: recipe for target 'examples/capture/rs-capture' failed
make[2]: *** [examples/capture/rs-capture] Error 1
CMakeFiles/Makefile2:315: recipe for target 'examples/capture/CMakeFiles/rs-capture.dir/all' failed
make[1]: *** [examples/capture/CMakeFiles/rs-capture.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 61%] Linking CXX executable rs-software-device
[ 61%] Linking CXX executable rs-multicam
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevices2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevice'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevice2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevices'
collect2: error: ld returned 1 exit status
examples/software-device/CMakeFiles/rs-software-device.dir/build.make:98: recipe for target 'examples/software-device/rs-software-device' failed
make[2]: *** [examples/software-device/rs-software-device] Error 1
CMakeFiles/Makefile2:260: recipe for target 'examples/software-device/CMakeFiles/rs-software-device.dir/all' failed
make[1]: *** [examples/software-device/CMakeFiles/rs-software-device.dir/all] Error 2
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevices2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevice'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevice2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevices'
collect2: error: ld returned 1 exit status
examples/multicam/CMakeFiles/rs-multicam.dir/build.make:98: recipe for target 'examples/multicam/rs-multicam' failed
make[2]: *** [examples/multicam/rs-multicam] Error 1
CMakeFiles/Makefile2:425: recipe for target 'examples/multicam/CMakeFiles/rs-multicam.dir/all' failed
make[1]: *** [examples/multicam/CMakeFiles/rs-multicam.dir/all] Error 2
[ 62%] Linking CXX executable rs-pointcloud
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmCloseOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmMap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmUnmap'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevices2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevice'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmOpenOnce'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmGetDevice2'
/usr/lib/gcc/aarch64-linux-gnu/5/../../../aarch64-linux-gnu/libGL.so: undefined reference to `drmFreeDevices'
collect2: error: ld returned 1 exit status
examples/pointcloud/CMakeFiles/rs-pointcloud.dir/build.make:98: recipe for target 'examples/pointcloud/rs-pointcloud' failed
make[2]: *** [examples/pointcloud/rs-pointcloud] Error 1
CMakeFiles/Makefile2:480: recipe for target 'examples/pointcloud/CMakeFiles/rs-pointcloud.dir/all' failed
make[1]: *** [examples/pointcloud/CMakeFiles/rs-pointcloud.dir/all] Error 2
Makefile:127: recipe for target 'all' failed
make: *** [all] Error 2
[Realsense Customer Engineering Team Comment] Hi @GustavZ,
To make sure you can run the librealsense apps, just summarize the installation&build steps based on the latest TX2 BSP 28.2 (JetPack 3.2):
git clone https://github.com/IntelRealSense/librealsense.git
cd librealsense
git branch v2.9.1
git checkout -b v2.9.1
sudo apt-get update
sudo apt-get install git cmake
sudo apt-get install libssl-dev
sudo apt-get install libusb-1.0-0-dev pkg-config libgtk-3-dev
sudo apt-get install libglfw3-dev
sudo apt-get install libudev-dev
sudo apt-get install cmake-curses-gui
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
reboot
mkdir build && mkdir install
Modify CMakeLists.txt: (if you have the issue: undefined reference to symbol 'pthread_create@@GLIBC_2.17')
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")
cd build
cmake ../ -DBUILD_EXAMPLES=true -DCMAKE_BUILD_TYPE=release -DBUILD_UNIT_TESTS=false
make -j4
sudo make install
If you like to support SR300 or other realsense camera formats, you can download the below patch and run the patch: https://github.com/freemanlo/librealsense/tree/master/scripts/patch-realsense-ubuntu-xenial-jetson-tx2.sh ./scripts/patch-realsense-ubuntu-xenial-jetson-tx2.sh After the patch, make sure the modules updated in /lib/modules/4.4.38-tegra/kernel/drivers/media/usb/uvc/ and /lib/modules/4.4.38-tegra/kernel/drivers/media/v4l2-core/.
[Realsense Customer Engineering Team Comment] As for your question about a 'kernel-4.4' inside the librealsense directory, it's a temporary directory for the kernel module patches. After the patch is successful, you can delete it and also below modules. As I mentioned above, just make sure the modules updated in /lib/modules/4.4.38-tegra/kernel/drivers/media/usb/uvc/ and /lib/modules/4.4.38-tegra/kernel/drivers/media/v4l2-core/ after the successful patch.
/home/nvidia/4.4.38-tegra/uvcvideo.ko/home/nvidia/4.4.38-tegra/videobuf2-core.ko/home/nvidia/4.4.38-tegra/videobuf2-memops.ko/home/nvidia/4.4.38-tegra/videobuf2-v4l2.ko/home/nvidia/4.4.38-tegra/videobuf2-vmalloc.ko
And, you can also upgrade your D435 FW to 5.9.2 (5.9.2.0 +) instead of 5.8.15.
@RealSense-Customer-Engineering Thank you and three questions on that routine:
Thank you in advance!
[Realsense Customer Engineering Team Comment] Hi @GustavZ, For Q1: it’s interested that I didn’t see this issue when I did the clear reflash process based on JetPack 3.2. For Q2: yes, you can use 2.10.1. For Q3: Per check, The kernel of L4T BSP 28.2 (in JetPack 3.2) has supported Depth (Z16) format. Therefore, without patches, you still can stream D415 or D435. You can run below command to see the video device info. $ sudo apt install v4l-conf $ v4l-info /dev/video0 $ v4l-info /dev/video1 If you need other realsense camera format support, you can run the patch. For Q4: please refer to below page to download and use the tool and firmware. https://downloadcenter.intel.com/download/27522/Latest-Firmware-for-Intel-RealSense-D400-Product-Family?v=t
@RealSense-Customer-Engineering when running your routine i run into this new error (i left out the kernel patch):
[ 23%] Building CXX object CMakeFiles/realsense2.dir/src/image.cpp.o
/home/nvidia/librealsense/src/image.cpp:23:19: fatal error: cpuid.h: No such file or directory
compilation terminated.
CMakeFiles/realsense2.dir/build.make:374: recipe for target 'CMakeFiles/realsense2.dir/src/image.cpp.o' failed
make[2]: *** [CMakeFiles/realsense2.dir/src/image.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
^CCMakeFiles/realsense2.dir/build.make:158: recipe for target 'CMakeFiles/realsense2.dir/src/context.cpp.o' failed
make[2]: *** [CMakeFiles/realsense2.dir/src/context.cpp.o] Interrupt
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/realsense2.dir/all' failed
make[1]: *** [CMakeFiles/realsense2.dir/all] Interrupt
Makefile:127: recipe for target 'all' failed
make: *** [all] Interrupt
EDIT1: it seems that i am not the only one running into this (https://github.com/IntelRealSense/librealsense/issues/1446), why is this happening now and not before? I am really confused with librealsense right now!
EDIT2: How am i supposed to do the firmware update on linux? your link only works on windows
[Realsense Customer Engineering Team Comment] Hi @GustavZ, You face the issue similar with the issue (#1446) which only happens on ARM platform. You can try the workaround/patch there first if you like to use the latest version of librealsense.
[Realsense Customer Engineering Team Comment] Hi @GustavZ,
Did you try the librealsense 2.10.3 which fixes ARM build issue? Still need any help?
@RealSense-Customer-Engineering does this mean it is now possible to install the dsk with apt-get
on the jetson? or does it mean that there is no more kernel patch needed but still needs to be build form source?
[Realsense Customer Engineering Team Comment] Hi @GustavZ,
Did you build form librealsense source and apply the proper script to resolve this issue?
[Realsense Customer Engineering Team Comment] Is this still an issue? If not, the ticket will be closed in 5 days.
[Realsense Customer Engineering Team Comment] Hi @GustavZ,
I will close this first. If you still have any issue, you can re-open it or create another ticket.
I am trying to install librealsense for the D435 on the nvidia jetson tx2 with ubuntu 16.04 Therefore i am following the ubuntu 16.04 installation guide. https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md At one point it is said for arch architectures to do the following:
You need to install the
base-develpackage group.
But if you click on the link for base-devel there are plenty of different files and none of them is for aarch64. So what is needed here?when i skip this step, then
./patch-arch.sh
fails with this message:and ofcourse after that cmake fails with: