bug:realsense-viewer 找不到已识别的设备
背景:目前的使用环境是
Ubuntu22.04+ROS2-Humble,之前一直都是通过ROS2启动的相机,今天突然节点启动后显示未找到设备,但是lsusb已经显示系统识别到了,打开官方自带的realsense-viewer软件发现也找不到设备。
关于Intel RealSense D435 / D405使用和发布相机的ROS2话题可以参考:https://blog.csdn.net/qq_45445740/article/details/143613024
目录
- 1.问题
- 2.报错日志分析
- 3.解决方法
1.问题
- 确认系统是否识别到了相机
lsusb
$ lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8086:0b5b Intel Corp. Intel(R) RealSense(TM) Depth Camera 405
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 27c6:659a Shenzhen Goodix Technology Co.,Ltd. Goodix USB2.0 MISC
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver
Bus 001 Device 002: ID 17ef:f006 Lenovo Idea5003
Bus 001 Device 006: ID 8087:0033 Intel Corp.
Bus 001 Device 005: ID 30c9:00c2 Luxvisions Innotech Limited Integrated RGB Camera
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- 确认是否安装了 RealSense SDK
# 验证安装(安装后会自动加载驱动)
realsense-viewer --version
- 运行官方自带工具查看是否找到设备
$ rs-enumerate-devices
No device detected. Is it plugged in?
可以看到也没有识别到
2.报错日志分析
$ sudo rmmod uvcvideo
rmmod: ERROR: Module uvcvideo is not currently loaded$ sudo modprobe uvcvideo
modprobe: ERROR: could not insert 'uvcvideo': Key was rejected by service
从新的输出日志来看,核心问题集中在 驱动加载失败(uvcvideo 模块插入被拒绝) 和 权限 / 内核签名冲突,导致即使 SDK 已安装,也无法识别设备。
3.解决方法
日志中 modprobe: ERROR: could not insert ‘uvcvideo’: Key was rejected by service 表明:内核启用了 Secure Boot(安全启动),拒绝加载未签名的 uvcvideo 模块(RealSense 驱动依赖该模块)。
-
解决方法:禁用 Secure Boot
-
操作步骤:
1.重启电脑,开机时按快捷键进入 BIOS
2.在 BIOS 中找到Secure Boot选项(一般在「Security」或「Boot」菜单下),设置为 Disabled(禁用)
3.保存 BIOS 设置并重启电脑
4.重启后重新尝试加载模块
sudo modprobe uvcvideo # 此时应无报错
问题解决。。。
