Skip to content

Missing riscv64 builds for libdepthengine, frameprocessor, filters and firmwareupdater extensions #175

Description

@ByteBlake

Description

I am trying to use OrbbecSDK v2.8.6 on a Linux RISC-V 64 platform.

The open-source part of OrbbecSDK can be built on my platform, but the required extension libraries do not appear to have RISC-V 64 builds.

The extension directory contains the following libraries:

extensions/
├── depthengine
│   ├── libdepthengine.so -> libdepthengine.so.2.0
│   └── libdepthengine.so.2.0
├── filters
│   ├── libFilterProcessor.so
│   └── libob_priv_filter.so
├── firmwareupdater
│   └── libfirmwareupdater.so
└── frameprocessor
    └── libob_frame_processor.so

These libraries are not available for the riscv64 architecture.

When running depth-related examples without a compatible frame-processing extension, the SDK may also report:

Error: Device Component 'depth frame processor' not found!

The architecture of the provided libraries can be checked with:

file extensions/depthengine/libdepthengine.so.2.0
file extensions/filters/libFilterProcessor.so
file extensions/filters/libob_priv_filter.so
file extensions/firmwareupdater/libfirmwareupdater.so
file extensions/frameprocessor/libob_frame_processor.so

readelf -h extensions/frameprocessor/libob_frame_processor.so

None of the official release packages currently appear to provide RISC-V 64 versions of these extension libraries.

Reproduction Steps

git clone https://github.com/orbbec/OrbbecSDK_v2.git
cd OrbbecSDK_v2
git checkout v2.8.6

Install udev first.

Disable -mssse3 in linux_config.cmake.

if(NOT OB_BUILD_LINUX_ARM)
    # When the compiler (e.g., gcc or g++) is given the flag -mssse3,
    # it automatically defines the macro __SSSE3__=1.
    message("Linux set sse3")
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}   -mssse3")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -mssse3")
endif()
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=Release \
-D CMAKE_INSTALL_PREFIX=./install \
..
cmake --build . -- -j8
cmake --install .
cd ./install/bin
./ob_depth_c

Environment

  • Board: SpacemiT K1 development board
  • CPU architecture: RISC-V 64-bit (riscv64)
  • Operating system: Ubuntu 24.04
  • Kernel: 6.6.63
  • OrbbecSDK version: v2.8.6
  • Camera model: Gemini 2L>
  • Compiler: gcc13
  • Build type: Native build on the RISC-V board

Architecture information:

root@k1:~# uname -a
Linux k1 6.6.63 #2.2.0.2 SMP PREEMPT Wed Apr 30 09:37:16 UTC 2025 riscv64 riscv64 riscv64 GNU/Linux
root@k1:~# uname -m
riscv64

Questions

  1. Is Linux RISC-V 64 support planned for OrbbecSDK v2?
  2. Can Orbbec provide RISC-V 64 builds of these extension libraries?
  3. Is it possible to build these libraries from source?
  4. Which camera functions will be unavailable if each extension is missing?
  5. Is there a supported configuration for using basic color and depth streams without the proprietary extensions?

I am willing to test RISC-V 64 builds on the SpacemiT K1 platform and provide build logs, runtime logs, and performance results.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions