【2026年2月】全新树莓派5安装ubuntu24并编译安装排线摄像头imx219模块rpicam(询问GPT)
- 安装系统这一步傻瓜式,我的电脑系统ubuntu有现成的安装工具Raspberry Pi Imager
准备microSD卡和读卡器插入笔记本电脑,安装系统制作软件
sudo snap install rpi-imager
选择系统这步 其他系统选择 Ubuntu Desktop 24.04 LTS (64-bit),烧录系统完成后拔掉读卡器将SD卡插入树莓派5,接好电源和microhdmi显示线,安装系统,安装最后设置主机名用户密码就成功了,还是很简单省心的,难怪说树莓派资源多,听说这一代散热问题严重提前准备好风扇散热片等等,有无线网卡直接连wifi,树莓派的microhdmi竟然能激活我显示器的4k我的破烂笔记本都无法输出4k
来源:https://ubuntu.com/download/raspberry-pi
如何连接ssh,在笔记本电脑终端愉快粘贴chatgpt代码
sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh --no-pager
- 官方说明如何连接摄像头:https://canonical-ubuntu-hardware-support.readthedocs-hosted.com/boards/how-to/rpi-camera/
和https://www.raspberrypi.com/documentation/computers/camera_software.html
这一步巨坑,现在回头看浑身冒火,还怀疑我排线接反了,什么
v4l2-ctl --list-devices
sudo apt install libcamera-tools还有什么libcamera-apps 根本找不到,一会又要sudo apt install libcamera-ipa
一会又要看系统日志
dmesg | grep -iE ‘imx|ov|camera|unicam|csi|isp|pisp|v4l2’ | tail -n 120
什么生成视频设备节点
ls -la /dev/video* 2>/dev/null
v4l2-ctl --list-devices 2>/dev/null
提示卸载之前的libcamera模块
which cam
dpkg -S /usr/bin/cam
sudo apt purge -y libcamera-tools
sudo apt autoremove -y
hash -r
下面给出编译安装的方法
编译安装 libcamera
- 第二步git文件拉取的位置在自己的指定文件夹
# 1) 依赖
sudo apt update
sudo apt install -y git meson ninja-build cmake pkg-config \
libyaml-dev libjpeg-dev libtiff5-dev libpng-dev \
libavcodec-dev libavdevice-dev libavformat-dev libswresample-dev \
libboost-dev libgnutls28-dev python3-pip python3-jinja2 \
libegl1-mesa-dev libgbm-dev libdrm-dev libglib2.0-dev
# 2) 获取 Raspberry Pi 的 libcamera(树莓派维护分支)
cd ~
git clone https://github.com/raspberrypi/libcamera.git
cd libcamera
# 3) 编译安装(/usr/local)
meson setup build --prefix=/usr/local --buildtype=release
ninja -C build
sudo ninja -C build install
sudo ldconfig
编译安装 rpicam-apps
- 这一步比较头疼,也有一些坑,安装依赖再拉取代码,我提示没有boost库,删除build文件夹再重新编译,同时参数中关掉 libav encoder
这个报错的本质是:你在 Ubuntu 22.04 上用 apt 的 FFmpeg/libavcodec 版本太旧,而你正在编译的
rpicam-apps版本默认启用了 libav 编码器模块,它要求更新的 libavcodec API,于是直接#error停编译。禁用 libav 编码器再编译
你照样能用相机预览、拍照,甚至可以用 H.264(走硬件/其他路径),只是少了“通过 libavcodec 的那条编码后端”。你当前这份rpicam-apps的 Meson 选项里没有叫libav的开关,正确的开关名是:-Denable_libav=disabled(不是-Dlibav=disabled) 你之前卡在libavcodec API version is too old,就是因为 Ubuntu 22.04 的 libavcodec 太旧,而 rpicam-apps 的 libav 编码器需要更新的 API。禁用 libav encoder 就能绕过这一块继续编译安装。
sudo apt install -y libboost-dev libboost-program-options-dev \
libdrm-dev libexif-dev libjpeg-dev libpng-dev libtiff-dev \
libepoxy-dev libegl1-mesa-dev libgbm-dev libgl1-mesa-dev \
libavcodec-dev libavformat-dev libavdevice-dev libavutil-dev libswscale-dev \
libqt5core5a qtbase5-dev
cd ~
git clone https://github.com/raspberrypi/rpicam-apps.git
cd rpicam-apps
meson setup build --prefix=/usr/local --buildtype=release -Denable_libav=disabled
ninja -C build
sudo ninja -C build install
sudo ldconfig
which rpicam-hello
rpicam-hello --list-cameras
rpicam-hello
- 继续报错
Could not open any dmaHeap device
[2:45:29.119348066] [48507] INFO Camera camera_manager.cpp:340 libcamera v0.7.0+rpt20260205
Made X/EGL preview window
Made DRM preview window
Preview window unavailable
ERROR: *** no cameras available ***
libcamera v0.7.0+rpt20260205说明你现在跑的确实是 树莓派 fork 的新 libcamera(装对了)。2)ERROR: *** no cameras available ***说明 用户态栈已经就绪,但内核/设备树层面没有把“传感器(IMX…)”挂出来,所以 libcamera 枚举不到相机。Could not open any dmaHeap device通常只是表示/dev/dma_heap/*不存在或权限不对,可能影响 零拷贝/预览路径,但不会导致“完全没有相机”。真正致命的是 “no cameras available”。你之前看到 PiSP/dev/video34-37说明 ISP 后端起来了;现在缺的往往就是“传感器 overlay / cam0-cam1 口对应关系”。
- 手动指定Ubuntu(Pi)上确保设备树启用相机(/boot/firmware/config.txt)
sudo nano /boot/firmware/config.txt
这条是有的camera_auto_detect=1, 我是imx219接在cam0上,文件最后添加
dtoverlay=imx219,cam0
把当前用户加入 video 组,接着sudo reboot重启,rpicam-hello --list-cameras 查看
sudo usermod -aG video $USER
sudo reboot
Available cameras
-----------------
0 : imx219 [3280x2464 10-bit RGGB] (/base/axi/pcie@120000/rp1/i2c@88000/imx219@10)
Modes: 'SRGGB10_CSI2P' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop]
1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 152)/1920x2160 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
'SRGGB8' : 640x480 [103.33 fps - (1000, 752)/1280x960 crop]
1640x1232 [41.85 fps - (0, 0)/3280x2464 crop]
1920x1080 [47.57 fps - (680, 152)/1920x2160 crop]
3280x2464 [21.19 fps - (0, 0)/3280x2464 crop]
这个dmaHeap device不知道看了有什么用
ls -l /dev/dma_heap 2>/dev/null || echo "no /dev/dma_heap"
total 0
crw-rw---- 1 root video 252, 1 Feb 10 16:22 linux,cma
crw-rw---- 1 root video 252, 0 Feb 10 16:22 system
看日志记录也太痛苦了,编译文件应该都在这
ls /usr/local/bin
camera-bug-report rpicam-hello rpicam-raw rpicam-vid
libcamerify rpicam-jpeg rpicam-still
ls /usr/local/lib/aarch64-linux-gnu/
libcamera libcamera.so.0.7.0 librpicam_app.so.1.11.1
libcamera-base.so libpisp.so pkgconfig
libcamera-base.so.0.7 libpisp.so.1 rpicam-apps-postproc
libcamera-base.so.0.7.0 libpisp.so.1.3.0 rpicam-apps-preview
libcamera.so librpicam_app.so
libcamera.so.0.7 librpicam_app.so.1
更多推荐



所有评论(0)