IntelRealSense / meta-intel-realsense

Yocto layer for realsense-sdk and librealsense
https://realsense.intel.com/
Other
35 stars 26 forks source link

T265 on Raspberry-pi 3B+ #19

Closed far-command-man closed 4 years ago

far-command-man commented 4 years ago

Hi fellas, I want to build realsense yocto layer to use T265 tracking module with raspberry 3B+/4B+. I clone this repo and rename "linux-intel" files/folder to "linux-raspberrypi" in recipes-kernel/linux directory. Also I replace _FILESEXTRAPATHSprepend := "${THISDIR}/linux-intel:" with FILESEXTRAPATHS_prepend := "${THISDIR}/linux-raspberrypi:" in kernel patch files. bitbake core-image-base runs without any errors/warnings. I boot up pi with yocto image, lsusb can list T265/D435i properly but rs-enumerate-devices returns "no device connected". usb-devices command can show D435i product name correctly but it detects T265 only as Movidius device.

I am using zeus version of all packages.

So I got 2 questions: 1) How to fix return results of rs-enumerate-devices? 2) Doesn't meta-intel-realsense include support for T265? I checked the patch files couldn't file any contributions for T265.

Here is my bblayers.conf file:

POKY_BBLAYERS_CONF_VERSION is increased each time build/conf/bblayers.conf

changes incompatibly

POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}" BBFILES ?= ""

BBLAYERS ?= " \ /home/gpubeast/Downloads/poky/meta \ /home/gpubeast/Downloads/poky/meta-poky \ /home/gpubeast/Downloads/poky/meta-yocto-bsp \ /home/gpubeast/Downloads/poky/meta-openembedded/meta-oe \ /home/gpubeast/Downloads/poky/meta-openembedded/meta-multimedia \ /home/gpubeast/Downloads/poky/meta-openembedded/meta-networking \ /home/gpubeast/Downloads/poky/meta-openembedded/meta-python \ /home/gpubeast/Downloads/poky/meta-raspberrypi \ /home/gpubeast/Downloads/poky/meta-intel-realsense \ "

Looking forward to hear your tricks :)

srware commented 4 years ago

You haven't mentioned which branch you are using? librealsense 2.17.0 or above is required for T265 which relates to branches Thud and above.

There are no direct mentions of the T265 in the kernel patches but support is there.

T265 also requires USB3 to access fisheye streams so on a Pi3 functionality will be limited.

I will try to validate support on an x86 platform this week to make sure something hasn't broken.

far-command-man commented 4 years ago

I am using zeus branch and it ships librealsense 2.29.0 . I built two different images for rpi4b+ and rpi3b+ but in both devices rs-enumerate-devices cannot detect connected devices( neither t265 nor d435i). Actually i just need pose data not chasing for fisheye streams.

srware commented 4 years ago

@far-command-man , thanks for clarifying.

I will validate this tomorrow and get back to you.

srware commented 4 years ago

I have looked into this some more and got reminded that the Yocto build was disabling TM2 support which is basically support for the T265. The reason for this is there are additional firmware and firmware flashing libraries which need to be compiled for this device as the device is the only RealSense camera which doesn't have persistent firmware and is instead flashed at runtime.

I have fixed the build issues and I am validating support. I hope to update the master and Zeus branches today or tomorrow.

srware commented 4 years ago

The master branch has been updated with support for T265. I will back-port this to Zeus tomorrow once I have had time to validate.

Thanks.

far-command-man commented 4 years ago

@srware thanks for immediate attention. I will wait zeus branch update since all my other metadata use zeus branch. Do you think TM2 is also cause why Docker containers cannot use T265?

srware commented 4 years ago

@far-command-man , I can't say for sure but it's highly likely. The T265 will require additional privileges to work in a docker container vs the D435i for example which probably isn't desired by the majority.

Zeus branch is now updated.

far-command-man commented 4 years ago

@srware thanks for the great help, very much appreciated. Now rs-pose works very awesome. I will try to resolve the Docker issue next time.