断电、掀卡扣、插到底、压回去、开机——现代 Raspberry Pi OS 自动识别官方相机,连【启用相机】这个开关都不用找了;验证一条命令 rpicam-hello --list-cameras。
10-1 把接口和排线认清了,本节只干一件事:插上并确认系统看得见。老教程里这一节是一大篇【进 raspi-config 打开 Camera】,现在全部作废——这正是本课反复出现的主题(2-4 的账号、4-1 的环境):教材写的系统比现在旧。装包用 apt 的套路来自 4-5,查命令行的基础是 4-1/4-2。
一、动手四步:断电插排线
通电状态下插拔排线是禁区——先 sudo poweroff 拔电源。
- 掀卡扣:黑插座上那个黑色压条,从两端轻轻往上掀起(别整个拔下来,它一头连着座子)
- 插排线:触点方向照 10-1 的官方图,插到底(留 1mm 缝隙都会接触不良)
- 压回卡扣:两边均匀下压,听见【嗒】的手感
- 通电开机
二、老教程已失效的部分(这一节的防坑值最高)
老书老博客会让你做这三件事,当前系统全部不需要、也找不到:
sudo raspi-config → Interfacing Options → Camera → Enable—— 现代系统自动检测官方相机(配置文件里camera_auto_detect=1默认开着),没有这个开关了- 往 config.txt 加
start_x=1或gpu_mem=128—— 那是老式 MMAL 相机栈的仪式,新栈(libcamera)根本不用;老栈在 Bookworm 时代就删除了 raspistill测试 —— 命令不存在了(10-3 详述换代)
一句话:插上、开机、直接测。 多做的任何【启用】步骤都是老黄历。
三、验证三部曲
# ① 系统认到相机了吗:列出相机
rpicam-hello --list-cameras
# ② 内核认到了吗:看启动日志(关注 imx708 / imx219 等字样)
dmesg | grep -i imx
# ③ 权限够吗:自己应在 video 组里
groups | grep -o video
看到什么算成功:第 ① 步输出形如
Available cameras
0 : imx708 [4608x2592] (/base/soc/i2c0mux/i2c@1/imx708@1a)
Modes: 'SRGGB10_CSI2P' : 1536x864 [120.13 fps] ...
读结果:imx708 是 10-1 表里 Module 3 的传感器型号——系统按传感器型号报名字,不是按【相机】两个字;方括号里是最大分辨率,Modes 列出各档分辨率与帧率。列不出来时按下面的排障表走。
四、装工具(通常已经预装)
新版 Raspberry Pi OS 自带 rpicam-apps 全套,没有再装:
sudo apt update
sudo apt install -y rpicam-apps
(apt 装包的老规矩来自 4-5:先 update 再 install。)
五、排障表:列不出相机时的五连查
| 症状线索 | 先查这个 |
|---|---|
no cameras available |
排线方向(10-1 的触点朝向)——插反不烧板但认不到 |
| 时好时坏 | 卡扣没压实、排线没插到底——断电重插一遍 |
| dmesg 里完全没有传感器字样 | 插错口了——DSI(显示器)和 CSI 长得一样,回看丝印 |
| 换了新排线还不行 | 排线质量/针数不对(Pi 5 必须用 22 针那端接板) |
| 用的是第三方模块 | 要在 /boot/firmware/config.txt 手工加对应的 dtoverlay= 条目(官方模块不用) |
排查哲学:相机故障九成在物理层(线、方向、卡扣),先排线再怀疑软件——和 7-3【接反=程序正常但灯不亮】是同一类【假故障】。
六、动手 Demo:从零点亮一次
完整走一遍并留下证据:
# 断电插好排线、开机后:
rpicam-hello --list-cameras > ~/cam_check.txt 2>&1
cat ~/cam_check.txt
dmesg | grep -i imx | head -3
看到什么算成功:cam_check.txt 里有 Available cameras 段落和你的传感器型号;dmesg 里能看到传感器驱动加载的记录。
读结果:把两条输出对照读——dmesg 是内核先认出硬件,rpicam-hello 是应用层再列出来。内核认了而应用列不出,多半是权限或 rpicam-apps 没装;反过来则查排线。两层分开验,是 7-2 就用过的老办法。
七、30 秒实验:一张 RAW 照片有多大
Module 3 最大分辨率 4608 × 2592,传感器按 10 位记录每个像素:
- 不压缩的一张 RAW 照片是多少字节?
- 对比一张几百 KB 到几 MB 的 JPEG,说明为什么相机默认给你 JPEG?
参考答案:1. 4608 × 2592 × 10 bit ÷ 8 = 14,929,920 字节 ≈ 14.2 MiB(10-1 算过总像素 11,943,936,乘 10 位再除 8 换成字节)。2. JPEG 把它压到几十分之一——RAW 保留全部原始数据(后期调色专用)、JPEG 便于存储分享;10-3 会看到 rpicam-still --raw 可以两个都要。
八、常见误区
- 【必须在 raspi-config 里先启用相机】 —— 老教程套路,现代系统自动检测,开关已经不存在。
- 【不断电直接插拔排线】 —— 烧板风险。动手前必断电(本课接线铁律,GPIO 如此、相机同理)。
- 【排线插进去就行,卡扣随便按】 —— 卡扣没压实=接触不良,典型表现是时好时坏,比完全不认更折磨人。
- 【看到 libcamera-still 的教程就照抄】 —— Bookworm 起命令改名为 rpicam-*(老名靠符号链接还能苟一阵,别依赖);命令细节 10-3 展开。
- 【列不出相机就是相机坏了】 —— 九成是排线方向/卡扣/插错口,按第五节五连查走一遍再说。
自测三问(点开对答案)
1. 现代系统还需要手工启用相机吗?依据是什么? 2. `rpicam-hello --list-cameras` 输出里的 `imx708` 是什么? 3. 列不出相机时,排查顺序的前三条是什么? **参考答案** 1. 不需要。官方模块靠 `camera_auto_detect=1` **自动识别**;老教程的 raspi-config 开关与 `start_x=1` 属于已删除的旧栈。 2. 相机的**传感器型号**(Sony IMX708,Camera Module 3)——系统按传感器报名字,方括号里是最大分辨率 4608 × 2592。 3. ① 排线方向(触点朝向)② 卡扣压实、插到底 ③ 是否插错口(DSI 与 CSI 同形);再往后才是软件与权限。- ☐ 下一节(10-3 在终端机使用相机模块)
相关笔记
- 认识树莓派的相机模块 —— 上一节:排线针数与触点方向的出处
- 在终端机使用相机模块 —— 下一节:相机认到了,开始拍照录像
- 使用命令行安装和卸载应用程序 —— apt 装包的老规矩
- 数字输出与输入 —— 【假故障】思维的第一次出现:程序正常但硬件没反应
- 🍓 树莓派 · 索引 —— 全课路线图