RK3588 驱动英特尔realsense D455

行为记录

尝试

手头的rk3588是贪便宜买的香橙派,系统是Ubuntu22.04,内核是Linux 5.10

干这个事情内核版本还挺重要的,我用虚拟机装的22.04 内核是linux5.19 编译不过,内核回滚回5.11 也编译不过,

查看内核版本语句:

shell 复制代码
orangepi@orangepi5plus:~$ uname -sr
Linux 5.10.110-rockchip-rk3588

他说他支持5.11,5.08内核,也没细找为什么不行

最后根据提示猜可能20.04能用,重新装了个ubuntu20.04的虚拟机,内核版本虽然是5.15,但是编译通过

x86_64 linux 走流程

官方的linux安装流程

https://dev.intelrealsense.com/docs/compiling-librealsense-for-linux-ubuntu-guide

附加记录

此外记录下走原来的流程两个东西git下不动,我又没有rk3588翻 q 环境的解决方案

一个是libusb ,一个libcurl

找到/realsense/librealsense-master/CMake$路径下的下面两个文件

external_libcurl.cmake

external_libusb.cmake

GIT_REPOSITORY "https://github.com/ev-mp/libusb.git"

GIT_REPOSITORY "https://github.com/curl/curl.git"

确定他们两个的链接,处理方式不一样,libusb在整体编译之前直接单独编译(./configure,make ,sudo make install) libcurl-master 在Ubuntu里解压之后文件夹改名成libcurl,在make报错失败后,把external_libcurl.cmake 中的上面这句话注释了,然后把改名之后的libcurl放到~/realsense/librealsense-master/build/third-party$路径,[1%]git 那里就顺利可以过了

但是没有用,至少在香橙派上这一步走通了也没有用,装完了找不到设备

rk3588 流程

照着上面的linux流程走了一遍,SD卡烧的22.04的那个镜像,编译倒是能过,运行的时候检测不到我usb3.2上面的realsense摄像头,相机型号D455

然后没办法 ,疯狂找英特尔的售后服务

和我情况最相似的是这个帖子

https://community.intel.com/t5/Items-with-no-label/RPi-4-Raspbian-Buster-realsense-viewer-cannot-detect-D435i/m-p/701349

最后参考他的解决方案1下的

https://github.com/IntelRealSense/librealsense/blob/master/doc/libuvc_installation.md

下面贴一下给看不到的兄弟

如果无法修补内核,或者官方安装过程中的任何步骤.md失败,您应该尝试libuvc-backend版本的 librealsense 此方法未经官方验证,但可以在更广泛的平台上运行,包括较旧/较新的内核版本

该脚本需要互联网连接。请确保网络代理设置正确

确保没有连接 RealSense 设备
打开终端,运行:
$ wget https://github.com/IntelRealSense/librealsense/raw/master/scripts/libuvc_installation.sh
$ chmod +x ./libuvc_installation.sh
$ ./libuvc_installation.sh
等待Librealsense script completed消息显示(可能需要一些时间)
连接实感设备
rs-enumerate-devices从终端运行以验证安装
目前,该脚本假定 Ubuntu 16 带有图形子系统

如果您遇到任何问题或希望将脚本扩展到其他系统,请通过新的 GitHub 问题告知我们

其中这里的libuvc_installation.sh的位置在

https://github.com/IntelRealSense/librealsense/tree/master/scripts下面,直接git 下载下来然后运行就好,

另外这个脚本的内容:

shell 复制代码
#!/bin/bash -xe

#Locally suppress stderr to avoid raising not relevant messages
exec 3>&2
exec 2> /dev/null
con_dev=$(ls /dev/video* | wc -l)
exec 2>&3

if [ $con_dev -ne 0 ];
then
	echo -e "\e[32m"
	read -p "Remove all RealSense cameras attached. Hit any key when ready"
	echo -e "\e[0m"
fi

lsb_release -a
echo "Kernel version $(uname -r)"
sudo apt-get update
cd ~/
sudo rm -rf ./librealsense_build
mkdir librealsense_build && cd librealsense_build

if [ $(sudo swapon --show | wc -l) -eq 0 ];
then
	echo "No swapon - setting up 1Gb swap file"
	sudo fallocate -l 2G /swapfile
	sudo chmod 600 /swapfile
	sudo mkswap /swapfile
	sudo swapon /swapfile
	sudo swapon --show
fi

echo Installing Librealsense-required dev packages
sudo apt-get install git cmake libssl-dev freeglut3-dev libusb-1.0-0-dev pkg-config libgtk-3-dev unzip -y
rm -f ./master.zip

wget https://github.com/IntelRealSense/librealsense/archive/master.zip
unzip ./master.zip -d .
cd ./librealsense-master

echo Install udev-rules
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/ 
sudo cp config/99-realsense-d4xx-mipi-dfu.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger 
mkdir build && cd build
cmake ../ -DFORCE_LIBUVC=true -DCMAKE_BUILD_TYPE=release
make -j2
sudo make install
echo -e "\e[92m\n\e[1mLibrealsense script completed.\n\e[0m"

不确定这个版本的master.zip和之前官网的是否是一致的,但是这个脚本确实在下载失败之后没有放弃,它反复重复了不知道多少遍,然后下了60多M的master.zip

这里注意

make -j2 => make

这句话的意思是双线程编译,不确定原因,编译到50% 会出问题

另外,8G内存+32G的SD 卡,香橙派5plus,编译没感觉到压力

最后 realsense-viewer这句话务必在有图形化界面的终端里面运行

如果在SSH终端里执行会报错如下:

libGL error: MESA-LOADER: failed to open swrast: /usr/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory (search paths /usr/lib/aarch64-linux-gnu/dri:$${ORIGIN}/dri:/usr/lib/dri, suffix _dri)

libGL error: failed to load driver: swrast

OpenGL 3.0 or ARB_vertex_array_object extension required!

这个应该是使用sudo下载的mesa-utils(也就是这句话:sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev at),这个里面没给编译swrast,没去查这个库是干嘛的,但是经过实际操作,这个不是必须的。

只要不要再ssh的终端运行就不会调这个库,编译它的价值不大。感觉像是Opengl对ssh的支持。

另外特地查了一下,rk3588是有opencv3.2的支持的,没细看手册,但是原则上也是应该是能驱起来的。

编译成功之后,

把板子接了一个Hdmi视频采集卡,接了个键盘鼠标,输入realsense-viewer

一切安好,偶尔有点warning,后面再看,至少三个开关,2D3D都支持,有陀螺仪数据和距离解算结果

后面想办法捅咕一下SDK的开发环境。

相关推荐
Qingniu014 小时前
【青牛科技】应用方案 | RTC实时时钟芯片D8563和D1302
科技·单片机·嵌入式硬件·实时音视频·安防·工控·储能
喵~来学编程啦5 小时前
【论文精读】LPT: Long-tailed prompt tuning for image classification
人工智能·深度学习·机器学习·计算机视觉·论文笔记
深圳市青牛科技实业有限公司6 小时前
【青牛科技】应用方案|D2587A高压大电流DC-DC
人工智能·科技·单片机·嵌入式硬件·机器人·安防监控
Mr.谢尔比7 小时前
电赛入门之软件stm32keil+cubemx
stm32·单片机·嵌入式硬件·mcu·信息与通信·信号处理
LightningJie7 小时前
STM32中ARR(自动重装寄存器)为什么要减1
stm32·单片机·嵌入式硬件
蒙娜丽宁10 小时前
《Python OpenCV从菜鸟到高手》——零基础进阶,开启图像处理与计算机视觉的大门!
python·opencv·计算机视觉
极客小张10 小时前
基于STM32的智能充电桩:集成RTOS、MQTT与SQLite的先进管理系统设计思路
stm32·单片机·嵌入式硬件·mqtt·sqlite·毕业设计·智能充电桩
好喜欢吃红柚子11 小时前
万字长文解读空间、通道注意力机制机制和超详细代码逐行分析(SE,CBAM,SGE,CA,ECA,TA)
人工智能·pytorch·python·计算机视觉·cnn
AI小杨11 小时前
【车道线检测】一、传统车道线检测:基于霍夫变换的车道线检测史诗级详细教程
人工智能·opencv·计算机视觉·霍夫变换·车道线检测
m0_7393128713 小时前
【STM32】项目实战——OV7725/OV2604摄像头颜色识别检测(开源)
stm32·单片机·嵌入式硬件