避坑指南:在Ubuntu 20.04上安装librealsense SDK时遇到的几个典型错误及解决方法

张开发
2026/4/21 21:12:06 15 分钟阅读

分享文章

避坑指南:在Ubuntu 20.04上安装librealsense SDK时遇到的几个典型错误及解决方法
避坑指南在Ubuntu 20.04上安装librealsense SDK时遇到的几个典型错误及解决方法第一次在Ubuntu 20.04上配置Intel RealSense环境时很多开发者都会遇到各种意想不到的问题。从内核模块签名失败到USB 3.0连接异常再到特定版本SDK对老型号相机的兼容性问题每一个坑都可能让你花费数小时甚至数天的时间去排查。本文将分享我在多个项目实践中遇到的五个最具代表性的安装问题及其解决方案帮助你在遇到类似情况时能够快速定位并解决问题。1. 内核模块签名失败Secure Boot引发的噩梦当你在终端看到Required key not available或module verification failed这样的错误信息时很可能是Ubuntu的Secure Boot安全机制在作祟。Secure Boot会阻止加载未经签名的内核模块而librealsense的DKMS模块恰好属于这类。1.1 错误现象尝试安装librealsense2-dkms时系统提示Building for 5.4.0-42-generic Building initial module for 5.4.0-42-generic ERROR: Cannot create report: [Errno 17] File exists run-parts: /etc/kernel/postinst.d/dkms exited with return code 101.2 解决方案有两种方法可以解决这个问题方法一临时禁用Secure Boot重启电脑进入BIOS设置找到Secure Boot选项并将其禁用保存设置并重启方法二为模块签名推荐# 安装必要工具 sudo apt-get install mokutil # 生成密钥 openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj /CNDescriptive name/ # 导入密钥 sudo mokutil --import MOK.der # 重启后按照提示完成密钥注册提示方法二虽然步骤较多但能保持系统安全性适合生产环境使用。2. DKMS编译错误内核头文件的版本陷阱DKMS编译失败是另一个常见问题通常是由于内核版本不匹配导致的。Ubuntu 20.04默认安装的是5.4内核但系统更新后可能会安装更新的内核版本。2.1 典型错误日志make[1]: *** /lib/modules/5.4.0-42-generic/build: No such file or directory. Stop.2.2 解决步骤首先确认当前运行的内核版本uname -r安装对应版本的内核头文件sudo apt-get install linux-headers-$(uname -r)如果问题依旧尝试完全重新安装DKMS模块sudo apt-get purge librealsense2-dkms sudo apt-get install librealsense2-dkms2.3 版本兼容性对照表内核版本所需头文件包备注5.4.xlinux-headers-5.4.0-xxLTS默认版本5.8.xlinux-headers-5.8.0-xxHWE版本5.11.xlinux-headers-5.11.0-xx手动安装版本3. USB 3.0连接问题速度与稳定的平衡RealSense D400系列相机需要USB 3.0接口才能正常工作但很多用户在连接时遇到设备识别不稳定或频繁断开的问题。3.1 诊断方法检查当前连接速度lsusb -t | grep RealSense正常应该显示5000MUSB 3.0速度如果显示480M说明设备运行在USB 2.0模式3.2 解决方案更换USB线缆使用带屏蔽的优质USB 3.0线缆禁用USB自动挂起echo options usbcore autosuspend-1 | sudo tee /etc/modprobe.d/usb-autosuspend.conf sudo update-initramfs -u调整电源管理sudo apt-get install tuned sudo tuned-adm profile latency-performance4. 版本兼容性问题T265相机的特殊待遇从librealsense v2.54.1开始官方停止了对T265追踪相机的支持这让很多还在使用这款设备的开发者措手不及。4.1 现象描述运行realsense-viewer时T265相机无法被识别日志中显示No device detected. Is it plugged in?4.2 解决方案降级到v2.53.1版本sudo apt-get purge librealsense2* wget https://github.com/IntelRealSense/librealsense/releases/download/v2.53.1/librealsense2_2.53.1-0~realsense0.6128_amd64.deb sudo dpkg -i librealsense2_2.53.1-0~realsense0.6128_amd64.deb使用ROS封装如果项目允许sudo apt-get install ros-noetic-realsense2-camera roslaunch realsense2_camera rs_camera.launch注意降级前请备份重要数据不同版本间的配置文件可能不兼容。5. realsense-viewer无法启动GLX问题的排查很多用户在第一次运行realsense-viewer时遇到崩溃或无法启动的问题这通常与图形驱动和OpenGL支持有关。5.1 常见错误Failed to create GLFW window GLX: Failed to create context: GLXBadFBConfig5.2 解决步骤首先检查OpenGL支持glxinfo | grep OpenGL version如果版本低于3.0考虑更新驱动对于NVIDIA显卡sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-driver-470对于Intel集成显卡sudo apt-get install mesa-utils libgl1-mesa-glx libgl1-mesa-dri如果问题依旧尝试软件渲染模式LIBGL_ALWAYS_SOFTWARE1 realsense-viewer6. 权限问题udev规则的正确配置即使安装成功普通用户运行时仍可能遇到权限不足的问题表现为设备无法打开或功能受限。6.1 典型症状Could not open device: Permission denied6.2 永久解决方案检查udev规则是否安装ls /etc/udev/rules.d/99-realsense-libusb.rules如果没有手动复制规则文件sudo cp /usr/lib/x86_64-linux-gnu/librealsense2/99-realsense-libusb.rules /etc/udev/rules.d/ sudo udevadm control --reload-rules sudo udevadm trigger将用户加入video和plugdev组sudo usermod -a -G video,plugdev $USER记得重新登录使组变更生效。如果还是遇到问题可以尝试临时使用root权限运行viewer进行测试。

更多文章