
SR300 在 Ubuntu 22.04 下 Python 取帧失败内核补丁到 pyrealsense2 一次修好【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsenselsusb里找不到设备这坑我踩过——Ubuntu 22.04 下让 SR300 进 Python缺的往往只是 librealsense 的内核补丁和 pyrealsense2 绑定。先花 10 秒确认机器能不能跑检查项要求系统Ubuntu 22.04 LTSjammy内核5.15 及以上的 HWE kernel22.04 的 5.15 / 6.x 均可Python3.9 – 3.13按实际解释器版本编译HWE 内核必须补丁脚本官方支持 jammy / noble表格全绿就可以动手了。内核还停在 5.4 的话先sudo apt install linux-generic-hwe-22.04装上 HWE kernel 再重启——补丁脚本是按 HWE 内核的源码树去找 uvcvideo 的找不到会直接报错退出到时候再回头补装就麻烦了。驱动就位依赖、udev 规则、内核补丁一次装齐git clone https://gitcode.com/GitHub_Trending/li/librealsense cd librealsense sudo apt-get install libssl-dev libusb-1.0-0-dev libudev-dev pkg-config \ libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev build-essential ./scripts/setup_udev_rules.sh ./scripts/patch-realsense-ubuntu-lts-hwe.shapt 那行长列表里libssl / libusb 负责 USB 与固件通信GL / GLFW 给 viewer 用setup_udev_rules.sh把相机接进系统权限patch 脚本才是重头戏——它给内核的 uvcvideo 打补丁让 SR300 的深度数据流能按协议被完整读出来。跑完用sudo dmesg | tail -n 50瞄一眼加载记录。⚠️ 提示dmesg里出现uvcvideo: module verification failed是打补丁驱动加载时的预期告警不是错误。脚本会在内核源码树里留下.orig备份哪天想回到原厂驱动./scripts/patch-realsense-ubuntu-lts-hwe.sh reset即可回退不用重装系统。驱动这层通了Python 还看不见相机——差的就是绑定编译。pyrealsense2 绑定编译cmake 参数速查mkdir build cd build cmake ../ -DBUILD_PYTHON_BINDINGS:booltrue -DPYTHON_EXECUTABLE$(which python3) make -j$(nproc) sudo make install export PYTHONPATH$PYTHONPATH:/usr/local/lib-DPYTHON_EXECUTABLE值得单独说一句机器上同时装了 3.10 和 3.12 时这个参数决定绑定绑到哪个解释器默认取$(which python3)命中的第一个写死/usr/bin/python3.10也能强制定向。编译看核数make -j$(nproc)一般几分钟到十几分钟。装完把.so放进/usr/local/lib后两行验证import pyrealsense2 as rs print(rs.__version__)版本号能打印出来上真枪。跑通第一段深度流最小脚本640×48030 的 z16 深度流SR300 的舒适区。整段复制保存成.py就能跑import pyrealsense2 as rs import numpy as np pipeline rs.pipeline() config rs.config() config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30) pipeline.start(config) try: while True: frames pipeline.wait_for_frames() depth_frame frames.get_depth_frame() if not depth_frame: continue depth_image np.asanyarray(depth_frame.get_data()) print(f中心距离: {depth_image[240, 320] / 1000:.2f} m) except KeyboardInterrupt: pass finally: pipeline.stop()终端逐帧打印一行中心距离: x.xx m约每秒 30 行手靠近相机数字变小拉远变大z16 原始数据单位是毫米16 位无符号整数除以 1000 换算成米打印 0.00 m 通常代表中心像素没有目标CtrlC 退出时finally调用pipeline.stop()设备正常释放不会卡住多机采集与常见症状速查多台 RealSense 同进程跑起来并不稀奇SR300 与 D400 系列混插都支持C 侧现成参考在 examples/ 里。排障按症状 → 一行命令来症状一行排查import pyrealsense2报 ModuleNotFoundErrorecho $PYTHONPATH应包含/usr/local/liblsusb列不出 Intel Corp. 设备重跑./scripts/setup_udev_rules.sh后重新插拔怀疑驱动没装上dmesg \| tail -n 50看 uvcvideo 加载记录表外最常见的还有帧率偏低降分辨率或关掉不需要的流config.enable_stream参数调小一档立刻见效。资源出口安装文档doc/installation.mdPython 绑定指南wrappers/python/readme.md故障排查doc/troubleshooting.md示例库examples/【免费下载链接】librealsenseRealSense SDK项目地址: https://gitcode.com/GitHub_Trending/li/librealsense创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考