You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

树莓派Bullseye系统下libcamera编译及相机识别问题求助

Pi Zero + Cluster Hat 自定义镜像下 Libcamera 无法启动 IMX477 相机问题

我是树莓派与Linux编程新手,使用Cluster Hat网站的自定义Lite镜像运行在Pi Zero上,目标实现4台Pi Zero各连接相机同步拍摄。系统更新后运行libcamera-hello命令出现相机启动失败错误,修改boot配置文件后问题依旧。尝试按官方文档编译libcamera库时,因Pi Zero资源不足导致编译卡顿,通过ninja -C build install -j1限制单进程并以sudo权限执行完成编译,但运行libcamera-hello仍提示ERROR: *** no cameras available ***。

具体报错信息

运行libcamera-hello --qt-preview的输出:

~ $ libcamera-hello --qt-preview
Preview window unavailable
[3:50:05.192541323] [19229]  INFO Camera camera_manager.cpp:293 libcamera v0.0.0+3866-0c55e522
[3:50:05.256764631] [19230]  INFO RPI raspberrypi.cpp:1374 Registered camera /base/soc/i2c0mux/i2c@1/imx477@1a to Unicam device /dev/media3 and ISP device /dev/media0
[3:50:05.258008024] [19229]  INFO Camera camera.cpp:1035 configuring streams: (0) 2028x1520-YUV420
[3:50:05.258793654] [19230]  INFO RPI raspberrypi.cpp:761 Sensor: /base/soc/i2c0mux/i2c@1/imx477@1a - Selected sensor format: 2028x1520-SBGGR12_1X12 - Selected unicam format: 2028x1520-pBCC
[3:50:05.820926093] [19230] ERROR V4L2 v4l2_videodevice.cpp:1890 /dev/video14[15:cap]: Failed to start streaming: No such file or directory
ERROR: *** failed to start camera ***

修改后的boot配置文件内容

#Enable DRM VC4 V3D driver
dtoverlay=imx477     #this line was added by me
gpu_mem=256          #so was this line
dtoverlay=vc4-kms-v3d,cma-512
max_framebuffers=2

编译libcamera的操作步骤

~ $ git clone https://git.libcamera.org/libcamera/libcamera.git
~ $ sudo apt install meson ninja-build pkg-config
~ $ sudo apt install g++
~ $ sudo apt install clang
~ $ sudo apt install -C build install
~ $ sudo apt install libyaml-dev python3-yaml python3-ply python3-jinja2
~ $ sudo apt install libssl-dev openssl libdw-dev libunwind-dev libudev-dev
~ $ sudo apt install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
~ $ sudo apt install libdrm-dev libjpeg libsdl2-dev

~ $ cd libcamera
~/libcamera $ meson build
~/libcamera $ ninja -C build install

编译卡顿解决:使用ninja -C build install -j1限制并行进程为1,并以sudo权限运行meson build和编译命令,完成编译后问题仍存在。


排查与解决建议

  1. 检查V4L2设备节点
    报错提示/dev/video14不存在,先列出所有V4L2设备:

    ls /dev/video* /dev/media*
    

    如果/dev/video14缺失,尝试重新加载相关内核模块:

    sudo modprobe bcm2835-v4l2
    sudo modprobe unicam
    

    之后再次检查设备节点是否出现。

  2. 修正boot配置冲突
    当前boot配置中dtoverlay顺序可能存在问题,且Pi Zero仅512MB RAM,cma-512超出可用内存上限。建议调整配置:

    #Enable DRM VC4 V3D driver
    dtoverlay=vc4-kms-v3d,cma-256
    dtoverlay=imx477
    gpu_mem=128
    max_framebuffers=1
    

    调整后重启系统,再测试相机。

  3. 验证I2C相机连接
    IMX477通过I2C通信,检查I2C总线是否能检测到相机:

    sudo i2cdetect -y 1
    

    如果地址0x1a(IMX477默认地址)未出现,需排查硬件问题:排线是否松动、Cluster Hat给Pi Zero的相机接口供电是否正常。

  4. 使用官方镜像测试
    Cluster Hat自定义镜像可能存在兼容性问题,先在单台Pi Zero上刷官方Raspberry Pi OS Lite镜像,验证libcamera-hello能否正常运行,排除硬件和相机本身的问题。

  5. 清理自定义编译的libcamera
    自行编译的libcamera可能与系统预装版本冲突,先卸载自定义编译的库:

    sudo ninja -C libcamera/build uninstall
    sudo apt reinstall libcamera0 libcamera-apps-lite
    

    之后用系统默认版本测试。

内容的提问来源于stack exchange,提问作者Matthew Banko

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:45:43