树莓派论坛

 找回密码
 立即注册

[入门开始] 树莓派上手指南(2025版 约1万字)

树老大 发表于 2024-12-15 23:24:36 | 显示全部楼层 |阅读模式
树莓派上手指南(2025版)
树莓派论坛编写,同行要用的请说一下出处,否则不得好死!
(约1万字)
  我们将不定期保持更新,删减,增加,以确保适合以前及最新的情况!

- u6 f5 B4 @8 @- H7 Q

一、树莓派概述

  树莓派,英文名Raspberry Pi,于2011年发布上市,受到国内广泛关注始于2012年3月3日央视新闻频道的一则报道,“寸土寸金”的央视,进行了长达1分半钟的报道(看此新闻,这个新闻我一直有保存)。
  本论坛在当晚连夜上线,给大家提供了一个交流的地方,汇集了大约13年前当时所有感兴趣的广大粉丝,从以前的帖子可以看出。在“树老大(论坛创始人)、ukonline2000(许多首创原创及技术支持)、自由飞翔、longbow78(彩虹壳的原创者)”等许多热心网友的帮助下,开始从国内外搞资料,解答问题,搞购买渠道,第一批用户就这样诞生了,经过不断试错,不断完善,为国内树莓派用户的入门和发展出了点力。
  言归正传,用当时官方的话说,树莓派是一个卡片式电脑,只有信用卡大小,包括电脑常见的所有功能,比如USB,HDMI,CSI,复合视频接口,3.5mm接口,网口,最主要是包含了GPIO接口,因其操作方便易懂,极大的促进了国内Linux的学习,PYTHON的学习,为广大学生老师提供了很好的平台,为此许多大学开设了树莓派相关的课程。
  现如今,树莓派的性能较之初代,已有极大提升,甚至前沿的AI等,几乎可以参与到您所能想到的所有项目中,Python与树莓派的互相成就更是成为佳话。成为仅次于微软、苹果的第三大计算平台。

二、树莓派、配件选购及避坑

2.1、树莓派的选择

  树莓派发展至今,已经有5代,但市面仍主要以3代B+、4B为主。
  按照价格因素来讲,一二代时期,100多元就能买到,三四代也就在200多元,所以4代以前可以很便宜买到。
  到了第5代,受内外环境影响,以及从第3B+开始,工厂离开国内后的各种原因叠加,导致5代价格明显上升。
  按照性能来讲,从第4B起跟之前型号有明显提升,直至第5代,比如推出了4G,8G内存版本,大幅提升,导致价格明显提升。
  如何选择呢?正常情况下4B就完全可以了,追求极致性能5代则更好。当初在2013年时,就有很多用户拿树莓派挖矿,挖BTC,想想真是可以,就那么点性能,不过主要是用来挂挖矿程序,并非自身参与挖矿计算。

2.2、树莓派各个版本具体参数

       版本讨论,可以到这里

2.3、树莓派各版本图片

  附:树莓派版本代号大全 Raspberry Pi代号查看方式,点此了解

2.4、树莓派配件选择

  

2.4.1、所需基本配件

  树莓派,TF卡(以及USB读卡器),电源
  只追求能启动,这三个就足够了。
  TF卡容量,通常商家会要求16G,甚至现在的32G。其实我试了下(2024年11月),8G就可以了(官方系统raspberry pi OS),当然也差不了几个钱,容量搞大一点没有啥错。
  至于USB读卡器,很多人忽略,但确实是必须的,您得通过它,在电脑上将系统写入TF卡,以及后续的配置,也极大可能会用到。
  TF卡官方建议:
  使用至少具有32GB存储空间的SD卡来安装Raspberry Pi操作系统。对于 Raspberry Pi OS Lite,我们建议至少 16GB。您可以使用任何容量小于2TB 的SD卡。由于MBR中的限制,目前不支持 2TB 以上的容量。
  由于硬件限制,以下设备只能从256GB或更小的启动分区启动:
  Raspberry Pi Zero
  树莓派 1
  采用BCM2836 SoC的早期Raspberry Pi 2型号
  其他的操作系统可能有不同要求,具体以该系统官方文档为准(后面我们将针对大多数系统进行专门的介绍说明)。
  

2.4.2、外壳和散热

  外壳:
  选择很多,能满足自己的要求即可。外壳是建议购买的,纯阳谋,有外壳,真的可以大大降低损坏率。
  散热:
  树莓派5散热要求高,普通运行,散热片就好,负载大一点,一个用风扇就可以了。
  就不建议搞那些花里胡哨的了。
  

2.4.3、其他功能性外设

  功能性外设,根据个人项目需求选择就好,没有多余的说法,有需求则买,没则忽略。
  就树莓派的外设,可以到这个帖子讨论:点此进行观点表达

2.5、树莓派电源

  下表展示了Raspberry Pi 各型号供电所需的 USB-PD 电源模式,您可以使用任何提供正确电源模式的高质量电源:
推荐电源(电压/电流)
Raspberry Pi 官方电源
树莓派 5
5V/5A(5V/3A将外设限制为600mA)
27W USB-C 电源
树莓派4 B 型
5V/3A
15W USB-C 电源
树莓派3(所有型号)
5V/2.5A
12.5W Micro USB 电源
树莓派2(所有型号)
5V/2.5A
12.5W Micro USB 电源
树莓派1(所有型号)
5V/2.5A
12.5W Micro USB 电源
树莓派Zero(所有型号)
5V/2.5A
12.5W Micro USB 电源
7 ]% D5 @6 G7 q( J- h8 |" W# F$ K
  将电源插入标有“POWER IN”、“PWR IN”或“PWR”的接口处。
  关于电源,可以到这里讨论:点此加入讨论

三、启动前的准备

3.1、树莓派、TF卡、电源

  上面已经专门进行说明,除此之外,通常还需要一些别的设备,以便更加方便快速的启动。

3.2、显示器

  有显示器,您的操作将方便许多;特别是如果您的项目是视频方面的,或者不习惯命令行界面,或者VNC远程桌面这样会存在不同步或者卡顿的情况下。
  树莓派连接显示器的方式有多种方式:
版本型号
显示器输出方式
树莓派5
2×Mciro-HDMI
树莓派4(所有型号)
2×Mciro-HDMI、音频和复合输出(通过 3.5 毫米耳机孔)
树莓派3(所有型号)
标准HDMI、音频和复合输出(通过 3.5 毫米耳机孔)
树莓派2(所有型号)
标准HDMI、音频和复合输出(通过 3.5 毫米耳机孔)
树莓派1 型号 B+
标准HDMI、音频和复合输出(通过 3.5 毫米耳机孔)
树莓派1 型号 A+
标准HDMI、音频和复合输出(通过 3.5 毫米耳机孔)
树莓派Zero(所有型号)
Mini-HDMI
  注意:尽管4代、5代均有TYPE-C接口,但均不支持C口输出音频视频。
  如果,您的显示器没有HDMI接口(比如VGA/DVI接口/AV接口),这需要通过HDMI转VGA,HDMI转DVI等转换器,论坛店铺也有售卖,点此查看
  如果,您的树莓派有多个HDMI接口,请将主显示器接到HDMI0.

3.3、键盘、鼠标

  早期树莓派版本存在很多键鼠不兼容的情况,如今已很少遇到,可以通过蓝牙键盘,USB无线键盘、USB有线键盘来加入。

3.4、音频输出

  所有带有标准HDMI、Micro-HDMI或Mini-HDMI的Raspberry Pi型号都支持通过HDMI接口进行音频输出。
  所有Raspberry Pi型号都支持通过USB传输音频,比如本站网店所售的USB声卡系列,点此查看(如果您用的树莓派版本不含3.5mm耳机孔,那么USB这种方式可能是最快捷的)。
  所有配备蓝牙的 Raspberry Pi 型号都支持蓝牙音频。
  Raspberry Pi 1、2、3 和 4 的所有版本都包括一个3.5mm耳机孔,可能需要功率放大以获得足够的输出音量,当然音质从第一代开始就被广大网友吐槽,且槽点还挺多。在论坛搜索可以了解到。

3.5、音频输入

  树莓派的音频输入,历来没被重视,但随着AI的发展,声音的采集需求越来越多,通常是通过USB麦克风或USB声卡来实现,本站网店亦有售卖,点此查看
  还可以通过GPIO针脚,连接相关声音传感器模块来实现,点此查看

3.6、网络接入

  以下 Raspberry Pi 型号具有Wi-Fi和蓝牙连接功能:
  树莓派 5、树莓派 4、树莓派 3B+、树莓派 3、Raspberry Pi Zero W、Rsapberry Pi Zero 2W
  以B为型后缀表示带以太网端口,“型号A”则表示没有以太网端口。如果您的树莓派没有以太网端口,可以使用USB转网口模块、或USB网卡来连接到互联网,点此查看或购买

四、系统安装、初步配置

4.1、系统安装工具

  A、如今安装系统,使用官方的Imager工具即可,官网下载本站下载
  B、win32diskimager:点此下载;此工具在早期树莓派使用中是必须的,现如今如果您要备份系统,还原本地系统,也是比较方便的方式。

4.2、系统镜像下载

  如果您要手动安装系统,需要先下载系统镜像,点击这里到官网下载,或到本站下载。官网有针对当前每个系统版本的介绍、更新、适用对象等必要的说明。

4.3、系统安装方式

  系统安装目前有两种方式,第一种:Imager安装在个人PC上进行安装(镜像会缓存在电脑里);第二种是Imager直接安装在树莓派上的线上安装。
  

4.3.1、第一种,通过个人PC安装

  第一步,打开IMAGER工具后,选择您的树莓派版本,我这里是树莓派5.
  第二步,选择要安装的系统版本,根据个人情况选择,这里选的是Raspberry PI OS 64bit
  第三步,选择要装到哪个盘,我这里TF卡的盘是F盘。若有多个盘符,请确保正确,以免带来数据损失。
  第四步,点击NEXT,会弹出是否要进行相关自定义,也就是预配置:
8 V5 c7 q6 @0 _
  单击Edit Settings(编辑设置)按钮以打开系统自定义。
  您可以点击 No 跳过系统自定义,那么配置向导将在树莓派首次启动时要求您配置相同的信息。然而对于没有显示器的用户来说,提前设置好这一步骤,将非常有用,不然会徒增许多麻烦。所以是建议必须提前设置好。
  A、填好树莓派在网络上的名字(hostname 主机名,非登录账号),我这里叫shumeipainet5
  B、填好登录用户名,我这里叫pi
  C、设置好密码:我这里是 shumeipainet
  D、填好WIFI账号和密码,一般系统自动识别,若有多个WIFI账号可用,看下是否跟您电脑连接的一样,因为后续极大可能要用SSH控制树莓派,若不在同一网络会比较麻烦,须保持一致。
  官方说明:该选项允许您输入无线网络的 SSID(名称)和密码。如果您的网络没有公开广播 SSID,您应该启用隐藏 SSID“Hidden SSID”设置。默认情况下,Imager 使用您当前所在的国家/地区作为“无线 LAN 国家/地区”。此设置控制 Raspberry Pi 使用的 Wi-Fi 广播频率。如果您计划运行无头 Raspberry Pi,请输入无线 LAN 选项的凭据。
  E、所在国家,这里填写CN
  F、时区,shanghai
  G、键盘布局,US
  第五步,顶部切换service,勾选SSH,点选第一个,以用户名和密码作为SSH登录凭证。
  Services (服务) 选项卡:包含可帮助您远程连接到 Raspberry Pi 的设置。
  如果您计划通过网络远程使用 Raspberry Pi,请勾选 Enable SSH (启用 SSH) 旁边的框。如果您计划运行Headless  Raspberry Pi,则应启用此选项。
  选择 Allow public-key authentication only(仅允许公钥身份验证),简言之就是生成一个只针对这个电脑的密钥,类似人的指纹等。从而不需要输入树莓派的账号密码您也可以访问它。如果您的 SSH 配置中已有 RSA 密钥(指纹),Imager 将使用该公钥。如果没有,您可以单击 Run SSH-keygen 生成公私钥对,Imager 将使用新生成的公钥。
  第六步,顶部的OPTIONS选项卡
  比如安装完毕有提示音等设置,可忽略。
  第七步:写入系统
  点击保存,选择YES(是否按照自定义写入),继续选YES(要删除TF卡原有数据,是否继续,根据个人情况选择),开始写入系统。如果准备做一些非常严谨或重大的项目,建议验证,以免带来潜在的风险。
  第八步,写入完成,会自动进行验证,我一般点击取消验证。要验证的话可能要装三四五次才能成功一次。
  第九步,写完系统,会弹出提示:您可以卸载SD卡了。
  这时候电脑会弹出格式化请求,千万不要点击格式化,点击取消,负责极可能损坏TF卡。这是因为写了系统的TF卡,有很多WIN无法识别的分区格式,导致认为TF卡有问题,要求您格式化。这是正常的,而且就算您点击格式化,也没用。
  至此,系统安装完毕,可以插入树莓派启动,开玩了。
  系统安装问题,可以在这里交流

4.3.2、第二种,无读卡器给树莓派在线安装系统

如果您没有读卡器,那也没关系,树莓派在没装系统的情况下也是可以联网的,当然仅限于联网安装系统。
  第一,前提条件
  你得有显示器、有网口的树莓派版本,键盘,空置的TF卡、网线、以及能联网的路由器或者猫。
  另外,能直接使用此方式的树莓派版本,只有4B、Pi400、5.如果您的 Raspberry Pi 运行较旧的引导加载程序,您可能需要更新引导加载程序以便能使用 Network Install。
  第二、将键盘、显示器、网线、电源(先不通电)与树莓派连接,TF卡也插入树莓派。网线另一端连接至能上网的路由器或猫。
  第三、按住键盘 SHIFT 键的同时打开 Raspberry Pi 的电源
  第四步、如果连上互联网后,Raspberry Pi将下载 Raspberry Pi 安装程序。如果下载失败,可以重复该过程。
  第五步、Raspberry Pi Imager下载完成后,系统将自动进行系统下载和安装,所填配置信息跟上面第一种系统安装方法一样。
  此方法,遇到任何问题,可以点这里进行交流求助。 

五、系统备份、TF卡还原、系统还原

5.1、备份树莓派系统

  备份是好习惯,随时有退路。在系统设置好了之后,环境配置好了之后,项目搭建好了之后,建议这时候要备份一下系统。
  根据十多年经验,因为后续的操作,极可能会因为各种原因导致系统损坏,或TF卡坏掉。此时如果有备份,只需还原备份系统就好,会很省事。
按照下面方法即可还原:
  5.1.1、先下载镜像备份工具:点这里
  5.1.2、参考下面动图进行备份:
  5.1.3、通过USB读卡器,将需要备份的TF卡插入电脑。插入后电脑会提示格式化TF卡,千万不能格式化!
  5.1.4、选择将系统备份到哪个目录(路径不要有中文或特殊符号) 选择之前,建议在最终文件夹下面新建一个".img"为后缀的文件:20241102raspiOS.img,名字自拟,不能有中文和特殊字符。
  5.1.5、选好备份系统保存文件夹之后,点击READ,开始备份。
  备份完毕,会提示Read successful 成功!
  有任何备份问题,可以点击这里进行求助交流!

5.2、将TF卡还原到出厂状态

  之前多次提示不能直接格式化,是因为在Windows系统下,只能识别到装有Linux系统SD卡的极小部分分区,您格式化的也只是这个分区,因为不完整的格式化,会导致TF卡崩溃,甚至反复格式化导致损坏。
  为了能将整个TF卡进行格式化,需要写入特定代码(点此下载 bootsector.img),让win电脑能够完整识别所有分区。
  5.2.1、下载bootsector.img文件后,保存在路径没有中文或特殊符号的文件夹内
  5.2.2、按照下面动图进行操作,打开镜像写入工具win32diskimager(如果没下载,点此下载),写入bootsector.img文件
  动图流程解释:
  打开存放bootsector.img的文件夹,并选择bootsector.img文件
  选择要还原的TF卡
  点击write,开始写入
  很快就写完了。
  最后,这里电脑会提示将TF卡格式化,这次要点击格式化。格式化完毕,TF卡就还原成功了。就可以进行重做系统的操作了。
  该方法,有任何求助交流,可以点击这里

5.3、还原备份系统的方法

(即:手动安装系统的方法;这也是在树莓派官方没有推出imager之前最主流的系统安装方法。)
  如果之前有备份的系统,可以按照下面的方法进行恢复。
  还原系统,也就是将备份的系统写入TF卡。
  写入前,请确保您的TF卡是新卡,或者已经还原。
  5.3.1、打开镜像写入工具win32diskimager(如果没下载,点此下载
  5.3.2、按照下图操作:
  5.3.3、动图流程解释:
  打开存有备份系统的目录,并双击选择已经存在的备份系统(如果是手动安装系统,而不是恢复备份系统,这里只需将备份系统更换为您要写入的系统img镜像文件即可)。
  点击read,进行write。
  等10分钟左右,系统写入完毕,提示成功。系统就还原好了。
  此时,弹出的格式化请求,要点击取消。
  5.3.4、如果是装的新系统,而非备份系统还原,那么此时您可能要需要通过电脑进入TF卡,进行相关配置文件的修改(如果有需要),比如联网配置文件,SSH开启文件等。
  聪明的您已经发现,系统写入方法跟TF卡还原基本一样,只是写入的镜像文件不一样,以及最后TF卡还原要点击格式化,而安装系统则禁止格式化。
 该步骤,任何求助交流,可以点击这里

六、树莓派开机,首次启动时的设置

6.1、树莓派开机

  确保树莓派处于断电状态下,将已写入系统的TF卡插入树莓派背部卡槽。

7 `3 G' t8 Z; |2 w- v$ Y7 j
  其次接入显示器、插入USB设备,比如键盘、鼠标、USB声卡、USB麦克风等。
  最后插入电源,通电。
  当树莓派开机时,您应该会看到状态LED亮起。如果您的Pi连接到显示器,您应该会在几分钟内看到屏幕显示画面。

6.2、未成功启动因素排查

  若您的树莓派在5分钟内没有启动,需查看板载LED灯状态。如果闪烁,则需根据LED灯状态来判断哪里出了状况,但这不用着急,并不一定就是出现了致命问题。
; ^- s  d; H1 u# H: B0 X/ H. f
  通常按照以下方式进行排查,即可解决问题:
  A、如果您使用的引导设备不是TF卡,那么请换成从TF卡引导启动。
  B、重做系统,并从imager完成验证。
  C、最后的大招,更新树莓派上的bootloader,并重做系统。具体方法请查看bootloader更新教程。
  以上方式,可能只使用一种就可以,也可能要全部使用。有任何问题或求助,请点击这里更贴。

6.3、首次启动的配置

  如果装系统时已经进行了预先的自定义设置,此步骤可以跳过,看看也无妨。
  若安装系统时未进行自定义设置,开机后,系统则会弹出如下界面,点击NEXT:

  r" P. m6 E' F. N
  

6.3.1、蓝牙设备连接

  如果您使用蓝牙键盘或鼠标,系统会引导你进行配对,并连接它们;此过程适用内置蓝牙或USB蓝牙适配器,请提前插好USB蓝牙设备。
  

6.3.2、本地化设置

  如下界面,提示您选择所在国家,语言,时区;比如:china,chinese,+8
  

6.3.3、设置账号和密码

      下面界面,让您设置树莓派的默认账号和密码,请根据个人情况进行设置。

6 R- Z- W  F% b* L
  

6.3.4、Wi-Fi连接

  如下界面,您可以选择您的首选网络,以及进入该网络设置密码。
  

6.3.5、浏览器

  您可以选择谷歌浏览或火狐浏览器作为默认浏览器,非默认浏览器可以被卸载。
0 f* f( Z- x  c& s
  

6.3.6、Raspberry Pi Connect 工具

  该工具可以让您在任何有网的地方访问您的树莓派桌面,并进行操控,实现真正的“远程”访问,而且不需要您手工进行任何配置。相关使用教程,可以本系列文档中找到。
  如下界面,您可以开启或关闭:

0 y/ b$ v% e/ H
  

6.3.7、系统软件更新

(建议跳过,建议更换源之后再更新)
  树莓派联网后,此页面可帮助您将操作系统和软件更新到最新版本。
  在软件更新过程中,如果您在第3.5步中选择了卸载非默认浏览器,那么此刻向导将删除该浏览器。
  这个更新过程可能需要几分钟时间,因网速而定。
  当您看到一个弹出窗口,提示您的系统是最新的了,那么请单击 OK 继续下一步。
  

6.3.8、开机配置结束并重启

  在配置向导结束时,单击Restart重新启动 Raspberry Pi。您的 Raspberry Pi 将按照您的配置启动,并进入桌面。

$ a; S7 s; J5 R
  此时,您的树莓派入门就此结束,可以正常按照您的配置来开机了。
  Raspberry Pi OS 预装了许多基本应用程序,因此您可以立即开始使用它们。如果您想利用我们认为有用的其他应用程序,请单击屏幕左上角的 raspberry 图标。从下拉菜单中选择 Preferences > Recommended Software,您将找到包管理器。您可以在此处免费安装各种推荐的软件。
  例如,如果您打算将 Raspberry Pi 用作家用计算机,您可能会发现 LibreOffice 对于编写和编辑文档和电子表格非常有用。您还可以使用 Universal Access 下的屏幕放大镜和 Orca 屏幕阅读器等应用程序,让您的 Raspberry Pi 更易于访问。
  以上只是上手篇,帮助您初步认识和开机启动树莓派,后续更多内容(30万字)在硬件篇、初级篇、进阶篇、高级篇等,我们将并不断丰富完善,提供您感兴趣的教程。任何问题,均可以到我们论坛提问求助。
" u: G+ |7 y9 J+ c: g

树莓派官方文档系列目录

A、树莓派硬件篇

2 H* H* f; D0 i2 y- R& J
  硬件篇比较长,分成三部分:( e- k! B& B* O9 r! P9 W# Q4 Z
  硬件篇一点此查看8 M1 S) u$ m% ?3 }$ ?& O. I9 ~
  硬件篇二:点此查看
0 A% u2 Q% h2 [( U2 O! E& Q; I. {  硬件篇三:点此查看6 M. _! O% a! a
  一、树莓派的分类( d7 V- U  z7 y* ^4 u
  二、各型号对比
. \0 j  s4 r  v/ y; }2 e7 m6 u3 K# w  2.1、旗舰系列7 s5 f3 B! N5 B& `# u! t4 d
  2.2、Zero系列
  i7 @: M/ {4 X. V% a  2.3、PICO系列
5 S, F' h, A/ a) T9 }7 v  2.4、各型号主要参数对比3 X6 }9 b8 Q) g; h" n. b+ n
  2.5、各型号图片展示! y; Z2 F- E9 j: @1 ]# i# P  c
  2.6、CM计算模块系列
9 J" `, l3 h) y! w9 t  三、原理图与工程图
! }7 \3 }4 ~  ]- }9 V8 [  四、商品合规性和安全性
( ]* P* F+ o$ z, `/ ?  4.1、可燃性等级1 J  n' m% ]. r  M7 B
  4.2、Raspberry Pi 合规性支持
0 B) _# @! n, d* |: K  4.3、官方提供的支持5 A) Q" S  v, P" g2 _3 b8 p1 V3 B3 j
  4.4、认可设计合作伙伴
# T: f: w6 Q+ f# `5 @5 g  五、频率管理和热控制) b( u4 ^, Z7 a$ k: Z9 L
  5.1、DVFS的使用1 J% J$ G+ ~$ |8 q
  5.2、测量温度+ p' n# }0 ?& _) V% l
  5.3、散热器最佳安装方式8 n6 u" i, X5 L6 e* W
  5.4、可调速风扇的使用$ w2 I$ y4 b  }' [/ C5 G. s
  5.5、树莓派5风扇连接器引脚定义
! ~2 ~( p2 f% R' \+ b% k  六、使用 EEPROM 启动系统
1 n" }: X4 K$ U/ y2 C- i! Y3 O  6.1、可用EEPROM启动系统的型号& \* b+ E0 {% h0 j7 T2 Z; b
  6.2、其他型号的方式# s6 t6 f6 ^% u' S5 T
  6.3、诊断) g* t# C6 m% F+ Q- @
  6.4、更新引导加载程序bootloader! g7 J# i1 X( @& r7 n  y0 Q
  6.5、更新bootloader配置$ }2 l+ {4 d" O2 U- B( D9 L# F$ e
  6.6、自动更新
  ~! o% K( h! d8 [  6.7、Bootloader 版本状态
7 u5 e8 B% u# `* t  七、启动诊断) B$ j  U/ {5 _$ ~
  八、树莓派启动模式
5 v1 E% i, Z& |; ?  8.1、特定的bootcode.bin -only启动模式
* B( D! w7 _3 W- y5 p  D  8.2、启用bootcode.bin UART) ~6 S5 S2 w% K
  九、USB启动模式/ V, Q. R3 r8 h; {
  9.1、USB设备启动模式- u7 s+ N" \) Z" Z) X- |
  9.2、USB主机启动模式, m2 I, A% ^% v0 m& ^
  9.3、USB大容量存储启动模式& d1 k1 q3 q. c% M* r% f, C( K  {
  9.4、从USB大容量存储启动7 q  m" c1 `3 n! N9 z; G$ U! E
  9.5、已知问题
5 q& D' @, }0 j  i$ n, _  9.6、特殊的bootcode.bin-only启动模式& K9 A/ Z3 m5 q+ [9 J1 u7 }4 d, S  I
  9.7、硬件兼容性4 Q) C5 o1 b) S3 ]8 L9 R
  9.8、多个可引导驱动器$ n9 r5 c& Z$ p+ {3 h) N; Z
  十、网络启动% c$ ~( W1 r, L. L+ R/ C7 B
  10.1、网络引导流程
; }4 W% _2 |* h! G  10.2、调试网络启动模式
7 j, f1 l. C  g' }7 F: z  10.3、DHCP请求/应答5 b% |' Q' S4 J7 S# d
  10.4、TFTP文件读取9 U* D+ p3 `. V
  10.5、已知问题0 E2 ^9 u9 j" l4 V
  十一、GPIO启动模式
. ^8 e, D! A, L! a, m' y1 ^  11.1、树莓派3B和计算模块3.引脚分配
% s* Q$ K; `. }8 ~, c/ l% q! D8 O  11.2、其他1 h* {7 q; m/ A; P
  11.3、开机流程) l5 b6 r9 x# l
  十二、NVMe SSD启动+ `. e9 b1 K' l, O) \3 {' k2 a
  12.1、先决条件& q3 u& }1 m8 ]# {* J' l
  12.2、编辑EEPROM启动顺序
3 R0 k+ ]+ c' m' E# E  12.3、NVMe BOOT_ORDER/ i2 X. ~( i3 K  O! W: T
  12.4、举例6 A$ ~$ y, {" w; v
  12.5、故障排除! T( x9 i. K3 f9 g/ t0 o$ E
  十三、HTTP启动
- C2 J" o! D( E  13.1、要求
- w" U. ]. p' X  \; F& Q  13.2、密钥" \+ N! a' ^/ G& |+ u7 g2 A! S3 V
  13.3、证书6 ]8 Q0 [: l) S" B$ ^* D% U
  13.4、安全启动
3 Y( p  q# x: B: }% w" b  十四、引导顺序
4 [/ _4 I/ y* _) j: y7 w$ W1 K& T  十五、‌EEPROM引导流程- H& F7 P6 a: \5 }
  15.1、第一阶段引导加载程序‌
5 U) N" Z9 U  s$ ]8 d" a5 m  F  15.2、‌第二阶段引导加载程序‌7 j+ P; C+ f8 `/ z/ v( r
  15.3、树莓派5的不同之处‌5 f  ]; a+ k7 x$ J* l
  15.4、Bootloader 更新‌
$ L5 k( b# k* e1 J. x  15.5、故障安全OS更新(tryboot)‌9 j: b* P, \) n1 q
  15.6、tryboot_a_b模式‌
, Q& R1 W. w) }3 c$ ?9 h  十六、树莓派引导加载程序配置‌
9 ]# W8 S; r# }. ~  16.1、编辑配置‌3 [- \6 q2 f9 c3 E$ c
  16.2、配置属性‌
2 y' p2 v4 a% F9 {  u4 w  十七、树莓派使用DPI显示屏
2 y8 R- @3 i( p8 A  t' g# @, l  17.1、GPIO引脚
6 U' ~) u8 ~, p: P) }4 [' u7 [  17.2、禁用其他GPIO外设/ G* ]) I& ^; @  f! u5 L0 q
  17.3、配置显示屏
: G% o/ O1 I* k+ `9 x  ?  十八、40P GPIO针脚% [4 {0 b9 t9 L5 k4 c& u
  18.1、输入输出、如何查看GPIO定义
: Q9 z' m( }1 X, J' d1 {! V( A0 z  18.2、权限、焊盘、上电状态、中断/ @, T$ t" b2 j3 F- _
  18.3、针脚的其他功能6 G& Y* V  m+ }& L8 e
  18.4、电压规格‌" f* Z2 [2 Y  U
  十九、GPIO焊盘控制8 |8 V0 O4 Q" v
  19.1、驱动强度控制‌
$ j1 q) s5 O& a6 k  19.2、电流值( e8 T' }* z! ~) E. x& g6 ^
  19.3、安全电流‌* A3 t) K! H5 g3 I, s
  19.4、GPIO 地址0 X: `, @; o$ |2 z  h0 ?$ t
  19.5、驱动器强度列表
9 r8 n0 ?$ {3 ]! x& ~  二十、Raspberry Pi的工业应用‌: b" L+ q. n! Y7 ?/ U( E. e% X
  20.1、一次性可编程设置‌1 W, W2 B- ^! a, K$ y) V
  20.2、写入和读取客户OTP值‌: t4 A" t+ ^( r; j
  20.3、在非BCM2712设备上锁定OTP‌
7 D0 i2 Y3 w, m& P  20.4、在BCM2712设备上锁定OTP‌
3 v5 z& R! S9 g8 B$ V  20.5、在非BCM2712设备上使客户OTP位不可读‌
# p- {  b! V  s: _# C/ A1 m$ V4 w  20.6、BCM2712设备上的客户MAC地址‌
* Y3 r6 `! a# ?: T  20.7、设备专用私钥‌
0 u  ^9 }+ a2 C  二十一、OTP寄存器及位定义‌& C0 a& f1 S0 k9 F6 v; u. K! U
  21.1、非BCM2712设备上的OTP寄存器, ^& w8 H7 `4 o8 [# v; V9 u; s7 P
  21.2、BCM2712设备上的OTP寄存器‌
9 Q/ J7 H0 {2 j* P  二十二、树莓派PCIe接口
* C& v: D: w* {  m  C/ J* m  22.1、启用PCIe‌
1 z" O, j5 X# ~7 i! K  22.2、从PCIe启动‌. }: N: w& m. W
  22.3、PCIe Gen 3.0警告及启用‌( @' D* U. \4 U
  二十三、电源按键‌! b9 |$ Q# B; R# r" g7 x
  23.1、按键使用说明及重启方法$ c: t$ f- _" \1 ^
  23.2、强制硬关机‌1 ~. Y0 ^6 b! A) j5 g
  23.3、添加自定义电源键( d- Q1 F1 r3 d6 e
  二十四、电源相关‌
3 i# l4 E. A2 C  24.1、电源说明及推荐电源$ Z8 Z. ^8 P- K
  24.2、以太网供电(PoE)连接器$ P% C7 ?* F4 j( f+ [1 p& v
  24.3、电源要求典型值5 h4 G1 D* p9 p+ J' E6 S+ I5 S
  24.4、将树莓派待机功耗降至0.01W6 ^& I* Y  F! i& C
  24.5、电源警告及后果
5 R: Z; f/ L1 g5 m* z6 _6 C% Z; v  24.6、电源与树莓派OS
- S2 d9 W# P3 z3 g  24.7、USB反向供电问题
9 j. N8 h7 x$ b% g! w2 g& {- r  二十五、实时时钟RTC+ K% X" @  i6 B/ `
  25.1、树莓派定时唤醒功能
) q, O# C1 c; C' p  25.2、备用时钟电池、充电、禁止充电
( Y; ]/ |9 W+ B1 D* J  二十六、SPI串行外设接口" c) S; ^  i1 h* J- C$ T# e( `
  26.1、SPI硬件‌. M3 @8 T9 k& I8 Y' }8 z
  26.1.1、SPI Pin/GPIO映射
+ C" K3 N+ m. X1 M$ C7 m  26.1.2、SPI主模式
6 k+ M) }  V' ~8 {3 H) R  26.1.3、传输模式、速度、芯片选择
2 C; X! p% Z% W) s  26.2、SPI软件
: J& `0 Q; z! v3 b* |! {  26.3、SPI故障排除
: c( _# Z9 ?; o+ ^: r- o6 x+ c  二十七、USB(通用串行总线)
. E, L/ m3 w/ J& s) ^  27.1、树莓派5的电源与USB电流限制
7 @; ]  c/ J4 `* Q0 |9 \% g  27.2、树莓派4的USB接口
# h  d8 ^2 x2 h& b) d- Q, v  27.3、树莓派Zero, 1. 2. 3以及早期型号的USB配置" B6 I. A0 [1 G' a2 Q
  27.4、已知的USB问题, K4 U5 X7 B7 {( p
  二十八、树莓派版本代号! j/ W- ~/ U) _8 a" T  ?: X
  28.1、早期树莓派版本代号7 b' o: P+ N3 S6 T( U8 A4 `- Y
  28.2、新版本代码
: n8 M& c+ a: e( h3 u  28.3、正在使用的修订版本代码
" ]! L% D  ], G% Y% e1 D, h  28.4、使用版本代号识别电路板/ e: b1 s8 L2 S  ~$ B
  28.5、版本代号使用的最佳实践$ ~1 Y* J7 Z2 s$ G; x/ q

B、树莓派官方系统篇

  一、下载与安装; ^. g0 o" g' o) m9 G
  二、Raspberry Pi OS介绍
/ V2 m6 g$ a; G% \! \  三、软件更新
0 C; N8 I$ J0 Q  3.1、安装更新; x7 ^- R) g0 f" z) [
  3.2、搜索软件8 e6 N9 y0 I* w* j  A9 g
  3.3、安装包9 v. d4 G  x3 Q% m2 L. j" p
  3.4、卸载包
9 i& Y$ G# ]+ `: i5 _/ [  3.5、管理APT磁盘使用情况- R) L0 i& I  I. X
  3.6、升级操作系统至新版本$ l' P! K- T0 g) L4 p7 S1 z2 v# e
  3.7、固件升级) [! I6 V, ]: d5 T% v, k8 L
  3.8、系统版本退回7 r" z& l9 P) v! W
  四、播放音频和视频
3 z+ a' n8 }: M: i* F  4.1、VLC 媒体播放器
& l' B8 t+ v' z  4.2、在树莓派 OS Lite上播放音频和视频" {. Y) N' z/ j' ]3 r4 S
  4.3、指定音频输出设备+ X& V. e5 L7 g7 E  j" P! B
  4.4、指定视频输出设备
. y3 }! X7 `7 r6 m' l# c7 M  4.5、同时指定音频和视频输出设备
1 X, ~# a  P$ y  4.6、提升流播放性能
" J+ l* p3 E# u; r  五、实用工具) ~( J1 H. x3 `# L) E2 W
  5.1、kmsprint
5 Q' f# r& b6 ]  5.2、vclog
# n8 \% T4 G1 J  5.3、vcgencmd
) s. i  H3 [* H6 d( v  六、无障碍选项0 E4 {& b! Y% P5 h$ W: Z
  七、在Raspberry Pi上使用Python
% R, {! I6 q* m6 E  7.1、使用apt安装Python包‌1 y( Q  D/ F; @5 L" i8 w# N
  7.2、使用pip安装Python库
, |1 C5 J2 G( @5 Q7 X' k  7.3、使用Thonny编程
# ]- h1 V' t. O1 G$ d; Q# V$ u6 E  八、通过Python控制GPIO设备
' Y  A) |/ ], a- X& y2 v3 }  8.1、LED控制) F  B2 _% u1 {; m4 W5 j
  8.2、读取按钮状态
7 |, x% ?3 c% u0 i4 o% P- W2 A0 Z* C  8.3、用按钮控制LED
9 J8 A3 \# u# a

C、树莓派系统配置篇

  一、raspi-config配置工具
! K& T9 r& D: y, R7 Z" L  i  1.1、raspi-config、config.txt区别% q% Z3 {$ K, s& c" c: N) s
  1.2、开始使用‌3 ^  i' I9 A1 z/ k) U# a2 s, e3 K
  1.3、通过终端导航配置工具‌
8 B( ]) j1 k" [) n7 T' ~  1.4、系统选项(1 System Opthions)‌
8 @) P, h+ G5 f* x- t( b  1.5、显示选项 (2 Display options)‌/ T8 @. f5 h* q8 ?* Z
  1.6、接口选项 (3 Interface options)‌6 ~% u# {5 e6 d+ I: |$ d5 p2 f# Q
  1.7、性能选项 (4 Performance options)‌
0 C# Q0 m& {; s* a7 v  1.8、Localisation options(本地化选项)‌- a' c. c9 W$ G$ u7 Q3 x; }
  1.9、高级选项(Advanced options)‌
# y6 e8 G0 j7 H9 o  1.10、更新 Update‌
- b$ \  k- m# L/ s$ g( z" \  二、非交互式 raspi-config‌6 Q- A$ r# h. o2 d
  2.1、系统选项(System Opthions)
+ T& k  ?! `8 `) X3 g1 ~5 V  2.2、显示选项 (Display options)
( o0 |! K! m% e% C$ h; `  q  2.3、接口选项 (Interface options)0 @4 m! ]! Y" u
  2.4、性能选项 (Performance options)3 r6 @! L- r0 U1 F
  2.5、本地化选项(Localisation options)
$ ~, A( L" }$ c6 s  2.6、高级选项(Advanced options)
7 T1 ?0 o7 o4 ^- b* D  2.7、更新‌, f7 `4 b+ S1 e4 Z0 j
  三、显示器‌/ `+ I1 J4 G; e  ?+ D) }( w
  3.1、HDMI显示器支持‌
8 \8 y* P7 L; Z& s1 v; D( ^  3.2、通过桌面设置分辨率和旋转‌4 E8 [4 _0 _4 q% C4 ~3 q
  3.3、通过命令行界面(CLI)设置显示‌( a4 d6 S& r+ ?% y% K4 F
  3.4、手动设置分辨率和旋转‌+ Q( j6 ?' A6 W' R" ^4 B
  3.5、控制台分辨率和旋转设置‌* i6 z# g9 m  F- e7 S3 M1 t# g  ~
  四、音频设置‌
& h/ l9 w8 X6 X  D" l  五、网络连接‌
+ |7 B0 ~% B9 D, c. U- r, b  5.1、通过桌面连接到无线网络‌
7 e" Q3 \+ n2 D. v% m4 e9 d  5.2、通过命令行连接无线网
5 ?$ w. j% p$ n% K7 h4 n  5.3、配置DHCP‌
$ B$ B: A6 i9 w6 m  六、黑屏相关‌
( M9 r) j6 _4 A& V  6.1、桌面环境下的屏幕黑屏设置‌
: |, c/ ]/ K) I5 x6 ]7 ]- y  6.2、控制台( d6 S2 [9 Z9 o
  七、用户
$ J( t3 A# W2 [: y  7.1、更改用户密码‌
: X* G3 }% p) a" L+ u7 [' P  7.2、添加用户‌
& `' d4 t' X# M$ ~( P4 w* @, x4 w2 a  7.3、删除用户‌8 F% s. |8 k! v6 a
  7.4、更改默认用户‌8 w/ e2 w  s3 o! {7 E
  八、外部存储‌
( x& y, N, X3 m4 W2 |( i2 k+ x  8.1、挂载存储设备‌9 I( \8 W7 ?9 Q! K+ i" O- [7 q' _
  8.2、自动挂载存储设备‌1 S" O% I# q$ U+ U9 Y
  8.3、卸载存储设备‌  n: S# j- ]4 |. ?; p
  九、内核命令行(cmdline.txt)‌
6 A! V7 i9 a3 u+ H1 p( x. V& n  9.1、命令行选项‌
9 \# `+ F$ A% N- i  9.2、设置KMS显示模式‌
( t- h% ]# d/ h/ @  9.3、其他条目‌/ `5 G# u% D9 {. c9 J6 p7 U) L! l1 @
  十、本地化树莓派
  B6 T; I1 G" l) ?1 Z) y' h; E  十一、保护您的树莓派% {; t' q! {! {9 N
  11.1、为sudo命令设置密码‌4 d( U  p8 ~7 f- U3 C
  11.2、更新Raspberry Pi OS‌+ x5 e6 i2 k9 M0 a$ l: Y1 w3 O
  11.3、自动更新SSH服务器‌
- }7 z: M4 U  \0 }* y' X  11.4、提高SSH安全性‌- V, ~# }9 F2 X# |8 |& @0 V
  11.5、使用防火墙‌! I& u' n: r' }/ P: _
  11.6、使用fail2ban阻止可疑活动‌5 s, F  b5 S) s
  十二、设置无头树莓派" M# f9 V. n4 M# X& r5 }
  12.1、连接到网络‌* _1 c% J/ Z, P# b
  12.2、远程访问无头树莓派‌2 I/ J8 D8 \; L
  十三、让树莓派托管无线网络‌
8 l; y6 @5 h) j( M  13.1、启用热点‌6 N9 X$ q  B) C8 h( q
  13.2、禁用热点‌
0 W( X8 X! }8 A! z! I' A; p  13.3、将您的Raspberry Pi用作网络桥接器‌
% x% V  w5 Q; \1 \% u  13.4、桥接网络‌
0 @+ I- L5 C  \% f4 |. v+ a  十四、使用代理服务器0 [. k& ^7 q/ n9 `( ^8 U0 Q
  14.1、配置您的树莓派
1 S. J" T- a; \8 d* x$ O  14.2、更新 sudoers 文件
3 h3 L) I+ M6 g, F8 S  十五、boot 文件夹内容3 l0 L# U8 D# s
  15.1、bootcode.bin‌3 z4 \; M) i0 v
  15.2、start*.elf
. Z% g6 G" M# T9 V  15.3、fixup*‌.dat7 P3 o$ n$ x0 R5 K- k3 t
  15.4、cmdline.txt‌& `' U- [2 b" F2 ~! x  `) C, M
  15.5、config.txt‌
* F3 I$ y: y6 f$ Z& E3 c  15.6、issue.txt‌
- D: h) f5 v" g  15.7、initramfs‌*$ h. P5 y- w  y) H7 Q8 m
  15.8、ssh 或 ssh.txt‌/ z" w$ [* x1 T- s# D
  15.9、Device Tree blob 文件 (*.dtb)‌; n9 A" L  b  L+ m, [
  15.10、Kernel files (*.img)‌
9 Z  L% M) o8 A# \; i  15.11、overlays 文件夹‌
' P' P3 n  d  r4 V  十六、LED警告闪烁代码‌2 Q0 h" ?# M3 A/ Y3 S. b
  十七、配置UART‌
6 W/ C$ ~( x. s6 Z: R8 n2 F  17.1、树莓派 Zero、1、2和3‌8 p- T" x" f) S$ x( c1 ~& S& H* j/ v
  17.2、Raspberry Pi 4和400‌
$ d& G( R" d4 l# W) U5 A0 G  17.3、Raspberry Pi 5的UART配置‌5 \! ?  K6 ^) C9 A" K
  17.4、Compute Module的UART配置‌5 ~7 x, X  H* W7 D/ J
  17.5、主UART‌. n0 Y( C- }, t3 w
  17.6、次UART‌
9 }- `7 N9 [. G  q  17.7、主UART和次UART‌
5 V: n0 l9 ~8 p7 m! E5 n  17.8、Mini-UART与CPU核心频率说明
% O1 j- K; N* z  17.9、禁用Linux串行控制台
$ R& f/ P( O$ I3 p  17.10、为Linux启用早期控制台
4 a+ V, Z% N( r; Y9 d5 W. }. p  17.11、UART与设备树) f# f* D6 d8 D  v$ N* B7 A
  17.12、PL011 UART与mini-UART的区别* Y( w, O# C9 q* ~
  十八、设备树、覆盖层和参数
1 H8 p0 F0 H' K! ~# f, ^2 B( {  18.1、设备树
  s& x* U- i1 Q/ Z  18.2、基本的DTS语法
7 R' M; t% a6 p/ S. ?' g  18.3、关于/include/的补充说明
' y- J( R; H5 a7 \5 h" e/ R  18.4、标签与引用. N+ j! q6 x7 X! }, H. [" f
  18.5、设备树语义
, d5 y# l3 X  t$ n- }9 r9 y1 e  18.6、设备树覆盖层
+ \) Y" u8 \  Z5 [  J. R8 Y  y  18.6.1、片段
/ ~/ t9 n! n  X9 I0 N7 u+ j  18.6.2、设备树参数
% P3 F3 \4 ]9 H( n  18.6.3、字符串参数; K, r; C- W3 L+ d4 b1 x# N
  18.6.4、 整数参数
  H; t/ Z  _- r3 T* D" I  18.6.5、布尔参数$ t" n' `9 w, \: ^
  18.6.6、字节字符串参数3 C2 h7 @* t; y
  18.6.7、具有多个目标的参数
' S; Y5 Z( B9 c4 [9 B5 n  18.6.8、文字赋值/ h& \" S) p" ~, h
  18.6.9、查找表
# B7 v& N6 J5 H+ ^6 Q0 E7 @: j  18.6.10、覆盖/片段参数
) B) z5 \# \+ ^9 M) K1 U0 {& j3 r8 ]% N  18.6.11、特殊属性
9 l, o5 X4 u2 v# T- t0 O  18.6.12、覆盖映射文件% D4 ?/ Z7 A: z3 H( H$ t
  18.6.13、示例
+ d$ E. t1 h1 M8 ^- G( j" @  18.7、导出标签
6 M6 Q& l% v: J7 X. U$ X5 j5 a  18.8、覆盖层应用顺序5 o0 G- c3 g7 I3 c. L/ a7 t
  18.9、在树莓派上使用设备树(Device Trees), R& f8 \, ~' E; Z' Q% F
  18.9.1、DTB, overlays 和 config.txt
& m8 d1 O) R' h5 T* C0 T5 V# [  18.9.2、设备树(DT)参数
3 a8 G6 y" Q, e' J  F% q. x( S" t9 h  18.9.3、特定于板子的标签和参数
- M/ U+ [5 |, C7 K: e  18.9.4、HAT与设备树1 g& g; [3 [1 N' B! S9 ~' e
  18.9.5、动态设备树' r+ r- U( \5 S! {7 y$ v0 B( R2 D
  18.9.5.1、dtoverlay命令
* K" `6 e' ~/ Z2 W% y  18.9.5.2、dtparam命令  g/ ?% E' q' v% b1 |: r! b4 b
  18.9.6、支持的覆盖层和参数
: F0 R* T; }6 ~+ P  18.10、固件参数$ n- h: {' h, ]
  18.10.1、常见的引导加载程序属性
* H% Q% W) p0 A9 N/ |2 [0 ^  18.10.2、电源属性  A6 h/ P% j6 }4 H2 F- }; `
  18.10.3、BCM2711和BCM2712特有的引导加载程序属性. V4 \* F0 j4 Q! K4 E8 r2 Z
  18.10.4、BCM2711和BCM2712的USB引导属性
' o- v7 b1 W' e0 {9 w  18.10.5、NVMEM节点
# z' z- q+ Q7 ~* y  18.10.6、NVMEM设备别名说明) @+ w3 K2 _5 L
  18.11、故障排除
  [/ W5 B$ g. }- p+ E* R  18.11.1、调试6 f0 Z+ D' h4 r, O2 F1 _2 `* }! d  o
  18.11.2、使用dtmerge、dtdiff和ovmerge测试覆盖层" {! o0 w. e8 T: K* {9 x
  18.11.3、强制使用特定的设备树
. ^& W; V: A5 X3 e0 f3 q  18.11.4、禁用设备树的使用
. \' X* U6 q; t* M  18.11.5、快捷方式及语法变体3 y( U  u  H+ W8 ?
  18.11.6、config.txt中可用的其他DT命令4 C9 a& M% f9 S6 F( E
  十九、更改默认引脚配置
* j  h3 N, \( g) c" z$ L- j  19.1、启动序列中的设备引脚
. m$ \4 R; ?* |5 K  19.2、提供自定义设备树二进制文件‌
8 X5 f3 R; a* w% r$ o0 \  19.3、dt-blob的组成部分‌
- V+ e4 k; L! P* L# ]5 m# P  19.3.1、videocore(视频核心配置)0 h3 R0 R! g/ a5 E) s, k" m" B" U
  19.3.2、pins_*(引脚配置)1 s: I0 P7 c0 u- D5 B$ Q+ _1 P
  19.3.3、pin_config(引脚配置)
" |4 y; X7 s. u5 P2 ^3 i  ]( L  19.3.4、pin@pinname(引脚名称)+ N# @' f2 \2 X
  19.3.5、pin_defines(引脚定义)
2 u' {, D3 F  o/ ]+ m  19.4、时钟配置
* m- V1 J- h+ a3 V" T- [  19.5、示例设备树源文件说明4 m5 N/ Q( Y  }- R# x6 a

D、树莓派config.txt配置文件详解

      点此查看# Y, f% [2 ^' l8 S  [5 M
  一、什么是config.txt?/ z% T4 F- k* f; z
  1.1、文件格式‌# i% b5 E+ b3 ^' e7 T7 v9 P
  1.2、高级功能% [' w  S7 G" R, A% t4 W$ G
  1.2.1、包括
! J# h8 i8 t3 j/ j  1.2.2、条件过滤, {* R* P% c$ b9 F
  二、autoboot.txt
" x, i* @. V! l7 w* |  2.1、boot_partition
) h" w  R4 b+ ]7 n- G/ ?. |, ?; F  2.2、[tryboot]过滤器
4 h" v/ M" C$ A/ E8 l1 D% Y( A( l  2.3、tryboot_a_b
% f; u6 i4 a3 ?- L5 S" w  2.4、A/B启动的示例更新流程. Y( Z* n+ s0 ^9 K$ w
  2.4.1、安装更新9 F5 e$ \: M3 a+ Q5 Z, @# X
  2.4.2、提交或取消更新
( Z, K, z. }) t% p+ A  三、常用选项) V6 h: I; y' ~' n, v
  3.1、常用显示选项$ y7 A8 X. E5 {9 b( k7 d0 g! N
  3.2、常用硬件配置选项
3 e) h0 f) c+ s$ X  3.2.1、camera_auto_detect
+ p! R6 W. Q8 I$ i  j1 s2 Z  3.2.2、display_auto_detect
2 I$ _, N) `. f% l/ t+ L/ O  3.2.3、dtoverlay
' i. f+ L  n& b; J; w! {  3.2.4、dtparam
/ K: I6 O3 c0 a0 j  3.2.5、arm_boost! c) J5 }: @; Q: _! H
  3.2.6、power_force_3v3_pwm
# @2 F9 P: C2 W/ V  四、板载模拟音频(3.5毫米插孔)5 C! s) ?* S7 B3 _
  4.1、audio_pwm_mode# V3 p( `0 r+ [5 r
  4.2、disable_audio_dither" @: X# |; V& v6 E8 d/ C" Q
  4.3、enable_audio_dither1 `( I9 V( P- x: s5 T4 [' S7 O  ?
  4.4、pwm_sample_bits
- Z/ d- j: g9 R% r; o5 U  五、HDMI音频
5 O2 k' O2 j4 ~( P1 L& u' o  六、引导选项
9 h; I$ k5 y' w: Q5 x. t7 g* F4 g  6.1、start_file, fixup_file/ N8 Y# G5 ~1 n* L0 R# O0 f+ Z
  6.2、cmdline4 _) |3 {& d+ g/ W9 E3 \! l( ]8 L
  6.3、kernel! T/ \2 F  E* |" i1 _, O, m
  6.4、arm_64bit
; u5 `# e7 M% C2 Z$ B  6.5、ramfsfile, |( X7 Z- w; d( k
  6.6、ramfsaddr4 s1 e4 C4 l! |% T8 D9 q0 [
  6.7、initramfs
' o' j+ B+ e( B  J  6.8、auto_initramfs+ M: W0 P, c6 O% R2 V% e, s5 W
  6.9、disable_poe_fan
$ s, P( z" m; {. N! L4 e  6.10、disable_splash
& K& {9 M5 l6 V0 g8 q/ U  6.11、enable_uart' J  [$ v; o, s2 h) y9 r
  6.12、force_eeprom_read/ V! B, |( R  x$ P8 l
  6.13、os_prefix6 U# h' v) I( U1 F
  6.14、otg_mode(仅适用树莓派4)) p6 s. F- n$ M) C* m2 m4 E
  6.15、overlay_prefix
- Y  ?1 A  R! n+ O  6.16、配置属性
! S1 \  h; c7 j: H  6.16.1、boot_ramdisk
3 f/ @$ F- f/ K$ {  6.16.2、boot_load_flags
& w5 n. h7 E+ E  I  6.16.3、enable_rp1_uart
6 R: J2 F2 x% Y! P6 V% N& w. L  6.16.4、pciex4_reset
% `& j: Z; J1 l  6.16.5、uart_2ndstage. _1 o1 q) X6 g: S$ ~( ~# _7 M* i9 Y
  6.16.6、erase_eeprom9 Q6 D# z/ E2 @
  6.16.7、eeprom_write_protect. K6 J2 L' S; [) U+ k+ [* F
  6.16.8、os_check
8 Q2 h& v% i7 S  k, t: I+ l2 `0 K  6.16.9、bootloader_update
; A& n0 I4 X4 s7 p" |% l  6.17、Secure Boot配置属性* [# x; u: p4 ~/ T2 @4 g1 q
  6.17.1、如何使用树莓派Secure Boot?: r6 }6 U; \* d1 ~" f! Y
  6.17.2、program_pubkey
) C, x: I' u" K, R  6.17.3、revoke_devkey
# S& n! r8 g& ?0 e9 a& j" y  6.17.4、program_rpiboot_gpio' q; g8 m" E1 A6 G/ S& u2 c
  6.17.5、program_jtag_lock1 g6 M: |4 d) s" |! @
  七、GPIO控制+ m1 j9 T2 n- ?8 W' q4 }# ]2 o% m
  7.1、gpio& _* j( }3 [- ~* E, A/ d% a
  八、超频选项/ ^7 D; t, W: f( d/ K9 G
  8.1、超频选项描述
' w  r' x2 E' y* O  8.1.1、各型号默认值" u7 R% [8 u. U, G: C& ^5 C+ N! `
  8.1.2、通用默认值
* j8 ?5 h2 b# o0 |. Q, d: ]  8.1.3、对于Pi4、Pi 400和CM4
- f% v- r0 Q" b1 q- F  8.1.4、force_turbo
# F, F( e2 C! [( I+ n: P7 M' z  8.2、时钟关系; v( G& X" }$ S( A0 N/ T
  8.3、监测核心温度" N  y& O/ Q) z7 G* y
  8.4、监测电压( h9 @: A# ~/ t* j+ b% a) v. o* @* b
  8.5、超频问题+ F/ e" H& H, R, U
  九、条件过滤器
' @4 g- F- K* V( A  9.1、使用场景# @# \3 F: g7 e
  9.2、条件过滤器的作用  @& ^( K( K; Q& y$ P
  9.3、[all] 过滤器4 @8 B* t" J3 Y7 c8 G
  9.4、模型过滤器7 c% T# g; s0 Y+ M% w
  9.5、[none] 过滤器
# A/ |5 V% t; d  9.6、[tryboot] 过滤器2 B5 m8 T# D2 H% r- w
  9.7、[EDID=*] 过滤器' [* x$ h/ d! x9 n' Q: d6 q
  9.8、序列号过滤器# g, J$ ~$ B3 f+ Y2 e6 X+ |
  9.9、GPIO过滤器8 a: l1 `# o- s, `. Y0 J, U: u, M
  9.10、组合条件过滤器
4 _8 _& e+ c) C1 P  十、内存选项
5 Q$ i; I. }( _& z! A  十一、许可证密钥和编解码器选项
" \$ z. I  {& n" p. w+ N  十二、视频选项
# g7 I2 ?) f" O/ `, @  12.1、HDMI模式
) k) L0 E8 ^/ t( w3 ]- c4 ^3 L  12.1.1、4系列设备的HDMI管道
/ ?7 ]" Q* _  m3 |0 `- k# a+ g  12.1.2、5系列设备的HDMI管道
( q6 |( z6 _) o% C; n6 W8 s9 @  12.2、复合视频模式) }8 W/ y. |' B! O% i) V/ Q
  12.2.1、enable_tvout
# O1 F0 {% G, P2 G. I6 G  B- x  [  12.3、LCD显示屏和触摸屏* z* @& ~0 H( F& ?- j, t
  12.4、通用显示选项
, ~% ~- M( j9 h  十三、摄像头设置6 G; {( ]$ @3 h+ |/ @0 c" r6 b

" A% k/ G& t7 g* l. R% Y

E、树莓派Linux内核篇

一、引言
' y# n1 u/ ]& s5 T4 `: `, }  二、关于更新/ }! ~, r6 |5 T5 J8 J: Q1 r
  三、构建内核/ v& @# g- q" U. i
  3.1、下载内核源码
* M* Y! u- X& o: d7 @! a6 c3 I  3.2、本地构建内核
7 w. ^3 r6 P$ \) u9 q' {) q( T  3.2.1、安装构建依赖项‌
8 }9 P- U/ Y* G' D- o) K  3.2.2、构建配置
3 U8 g  T- T2 {# l- Z7 I0 O  3.2.2.1、64位架构
2 H# a! Q* B" U+ o4 L- F  3.2.2.2、32位架构7 o2 g8 D6 O0 m' a" T6 e! `: ^
  3.2.3、自定义内核版本‌# J7 ]( N! d4 s0 X+ h! |
  3.2.4、构建# p4 P! h1 {# s# c
  3.2.5、安装内核
6 M# r# R" ?- @4 ^. U  3.2.5.1、安装64位内核的具体步骤‌
: T# ]; T% K- Q# S  3.2.5.2、安装32位内核# U4 M; g7 Z/ c
  3.3、交叉编译内核
2 T, W( C# m3 K% h8 j  3.3.1、安装所需依赖项和工具链
- E  _' D0 l7 \( f  3.3.2、构建配置0 R6 X6 |4 {& B: ^
  3.3.2.1、64位$ f  ^  U. v2 u. t
  3.3.2.2、32位
' P/ J5 m4 \& Y8 E& ~4 n( k0 J  3.3.3、使用LOCALVERSION自定义内核版本
) H; D3 u( h% u2 O) h  3.3.4、构建内核
1 V! r" K5 |( c  3.3.5、安装内核
) X6 d+ H2 l( Y6 B$ |- X% u% E/ r3 l  D0 _  3.3.5.1、查找您的启动介质
6 g( [  A6 v& {  3.3.5.2、挂载分区1 G& \, E2 o+ [" L4 i, K
  3.3.5.3、安装内核模块# o/ [+ M- n7 A. F0 p+ [; {/ b# h
  3.3.5.4、安装64位内核‌" b5 O- k& c4 l" `# T
  3.3.5.5、安装32位内核  T* F1 ~' d! S
  四、配置内核0 V0 s6 X7 x. t1 f+ E" m. G
  4.1、准备配置
1 _" {- p# O3 i7 q  4.2、使用menuconfig2 Z3 U9 e8 D# {, K+ s' q6 @! Y; h
  4.3、在menuconfig中导航
) e* @, f% x: w  4.4、配置内核选项$ t4 w- v7 z# U) o0 G4 |
  4.5、保存更改
4 x( \# W; o6 R* r; Z7 M/ a2 i  五、给内核打补丁9 N  X4 ?& T2 c, ?2 H$ U
  5.1、确定您的内核版本$ D: X4 G* i2 F4 q' i) E
  5.2、应用补丁
! p* [+ e6 Y! V0 r  六、内核头文件
7 R, M# ~1 W" f3 Q( b& ~/ z7 _  七、贡献代码
2 `6 ?' k. J. X0 W0 t. I) q+ N/ D, A, ~

F、树莓派远程访问篇

8 i) A; ?- K) \- e9 _
一、远程访问的方式/ ]0 L& K1 V& D* N8 f$ n% d
  1.1、通过本地网络进行远程控制
* ^! F+ a* I* o8 q  1.2、通过本地网络在设备之间共享文件7 W1 k1 V- r: m+ Y
  1.3、通过互联网进行远程控制# b* h0 d7 d0 ^3 @9 i3 a- y
  二、查树莓派IP地址的方法% ~5 P1 P& g' U* }& D6 {& d
  2.1、通过桌面环境查找
2 N- h/ l: Z6 `2 q5 P% f; b" R  2.2、命令行操作/ u  \( Y8 n9 O8 n
  2.2.1、根据联网方式查找IP地址8 _) s2 }. [! H" Y( [3 v
  2.2.2、示例说明
9 _1 l2 {3 j8 D" H) P  2.3、使用mDNS解析raspberrypi.local. o1 A0 }; G8 g1 p  r! D  f
  2.4、检查路由器的设备列表& P* g9 X- c7 \2 {2 ]$ w
  2.5、使用nmap查找
" M. ], d! K8 X, E  2.5.1、使用nmap扫描网络上的设备
( c8 M+ I+ R% [; s  2.5.2、扫描整个子网以查找其他设备
$ f5 m( R/ w( ?; I6 C  2.6、使用智能手机应用查找设备9 B( L; ?( V6 e# Z, @6 M
  三、使用 SSH 访问远程终端$ k/ l4 l; O( M' I8 {& q
  3.1、启用 SSH 服务器
$ \0 D- v+ ^+ K  `% L: S  3.1.1、桌面环境
+ w: u* l. m! ]5 f+ Y+ `  3.1.2、装系统时
0 r, o( Q& T& Y; u# I  3.1.3、命令行方式- b+ ^* V8 X3 H, r9 V1 ?* h4 n( d
  3.1.4、手动方式2 r, G9 E* M9 }/ @
  3.2、连接SSH‌6 e2 R, Z( H% _' m
  3.2.1、通过SSH转发X11
) v% c3 i7 B- m  3.3、无密码配置SSH' a5 k3 Y* S7 \& m
  3.3.1、使用Raspberry Pi Imager预配置操作系统镜像
5 O2 f& m; r0 n$ e* |  3.3.2、手动配置SSH密钥. K+ s+ T; I1 d% B
  3.3.3、检查现有的SSH公钥
( B( Z( h4 |, l' S* _  3.3.4、生成新的SSH密钥对; h! M$ O1 H1 c- |
  3.3.5、将SSH密钥添加到SSH身份列表中
: ]$ O; f8 M6 Y# g* F% @5 u' E0 U& M# t  3.3.6、将公钥复制到您的Raspberry Pi上1 d# a# g& w! n) e! u" e, U; M5 V
  3.3.7、手动将公钥复制到您的Raspberry Pi上: F: o! e( H6 E$ z2 V
  四、通过VNC进行屏幕共享5 T: f9 w/ y( L/ O0 _
  4.1、在Raspberry Pi上启用VNC服务器
" x$ o& I2 L3 _' g8 K2 I$ O  4.1.1、通过图形界面启用VNC服务器
" b& Q& l: Z* X+ U5 q8 B  4.1.2、通过命令行启用VNC服务器* Z+ k/ _+ p7 T" J8 Q. `  ?9 O9 R" ~0 U
  4.2、连接到VNC服务器
3 Z, S+ H4 h( p* x  4.2.1、下载并安装TigerVNC
$ D; ^3 u$ Y( R/ |  4.2.2、在客户端设备上启动TigerVNC8 ^  f6 a. D+ }; I) Q1 b+ [# ]
  4.2.3、配置TigerVNC以连接到Raspberry Pi4 H' J1 b* @4 s. p! r5 j
  五、使用Raspberry Pi进行远程访问8 g: {) r$ W2 K5 Y2 P( L3 A" h# j+ }
  六、使用SCP共享文件
: l# c3 [7 X' k! ~  6.1、将文件复制到Raspberry Pi7 R/ O; a& V6 [% X) M2 }4 K9 ^! B% j' R
  6.2、从Raspberry Pi复制文件1 B; U& ~  F5 m( N- Z$ K- v
  6.3、使用一条命令复制多个文件
7 b% ~  m) l" X9 x  6.4、复制一个文件夹3 k! _! O$ W- z1 x) g7 A, R, |, Y
  七、使用rsync同步计算机之间的文件夹- L) w  B6 h) [. I2 }/ \
  八、网络文件系统(NFS)" T! E& w) D5 e
  8.1、设置基本的NFS服务器
" t8 {$ ?( V) {# F  8.1.1、Portmap限制访问(可选), Z/ O) ^0 e% Z, \4 T/ b: J
  8.2、配置NFS客户端
( r& J/ H/ z) P. `  8.2.1、Portmap 限制访问(可选)# v5 K% F" H6 a8 k0 P/ j
  8.3、配置复杂的NFS服务器
" n- J. l* j7 U  g  8.3.1、组权限2 g( X9 C# h& M" \
  8.3.2、DNS(可选,仅在使用DNS时)/ s$ x$ U+ @; F/ y; J
  8.3.3、NIS(可选,仅在使用NIS时)
% Q( z2 \+ k1 x* P  8.3.4、Portmap限制访问(可选)
5 V5 {5 g. Q1 q. ^  8.4、软件包的安装与配置
4 \4 f; m/ h8 z$ H% W* I; I9 T: j  8.5、重启服务! E9 V9 h' y- v2 z1 X: l
  8.6、需要考虑的安全事项
3 a" e4 d  T  W/ R& V+ J  8.7、问题排查6 q- W. c; D/ x7 }* U( i. c; c
  九、Samba (SMB/CIFS)
; @: [! @# d% d# q9 q  9.1、在Raspberry Pi上安装Samba
4 V0 `& t6 N) @8 [  `% u0 F* _  9.2、挂载从Windows共享的文件夹
" s" v" g% V# i% D) F  9.2.1、开启共享
- i- }" A2 B4 R6 m* G  9.2.2、共享文件夹/ k( v8 v6 x* X+ T$ Q( g9 x$ ?' r
  9.2.3、Windows 10 共享向导2 A% Q7 C, L: V  T9 Z- A
  9.2.4、在Raspberry Pi上挂载文件夹% P& y2 [4 B9 C; E- u
  9.2.5、“Host is down”错误
) c- J1 h, Q- T0 d* C  9.3、从Raspberry Pi共享文件夹
9 o& S, w+ w8 r  十、设置Apache网络服务器9 E% z- L4 W( p1 \' P
  10.1、安装Apache/ U) a; K* e) k- j6 l8 C
  10.2、测试网络服务器- }- R  W" S4 z& z7 \; A
  10.2.1、更改默认网页- t' r, Q  l% ^9 z( b. h1 C
  10.3、为Apache安装PHP) }7 O$ U8 v7 x: Z3 p
  十一、通过网络启动你的Raspberry Pi
  S: |" Z7 r0 F) v4 u6 u9 E% }  11.1、配置网络启动客户端+ H( A9 Z- f+ d' {3 z$ Q6 U# H2 o
  11.1.1、Raspberry Pi 3 Model B$ d  b6 I" o3 J. i  ~
  11.1.2、配置Raspberry Pi 4 Model B的网络启动
4 U7 y5 h+ R6 g% K3 R  11.2、记录以太网MAC地址和序列号; ~2 J# p2 P. l; B, z2 u3 `
  11.3、配置网络启动服务器
1 U2 Q  A7 D& u; b  11.3.1、在客户端文件系统中重新生成SSH主机密钥; {& O9 c2 F8 X2 I
  11.3.2、查找本地网络设置; E4 T' A- b  k9 J
  11.3.3、记录DNS服务器地址- _8 F3 c: `# n4 [
  11.3.4、在服务器Raspberry Pi上配置静态网络地址
  v5 W' y+ U9 d) N1 c! T  11.3.5、配置systemd/resolved.conf以解析DNS
5 ^# i$ D; Y/ K3 L4 ?' W9 J  C2 x  11.3.6、启用systemd-networkd并重启
1 M. ?" \2 s; j0 q: X9 ?6 h  11.3.7、启动tcpdump以捕获客户端DHCP请求
0 V) z9 Y0 Y: m: C  11.3.8、连接并启动客户端Raspberry Pi# K1 B' m6 l, L0 l% B: ~
  11.3.9、修改dnsmasq配置以启用DHCP回复' P9 Y$ ^' ]$ j* G! d/ n
  11.3.10、创建/tftpboot目录并配置权限
! V& i( f9 l  p5 u  11.3.11、监控dnsmasq日志
' h0 T2 J& V7 [2 A8 \  11.3.12、将启动文件复制到/tftpboot目录
  P. b6 Q* a" N% y9 [5 O6 Y  11.3.13、重启dnsmasq服务
; M+ J8 F; @& R$ V$ p  11.3.14、设置NFS根目录/ o7 b. R, ]8 f. H' x) l- _. K
  11.3.15、重启RPC-Bind和NFS服务器
$ m$ |' T, g9 |: s! U% a" R/ \  11.3.16、编辑TFTP启动配置  l4 a! m% o" T! Q- H
  11.3.17、编辑NFS客户端的fstab文件
4 f, e! |! F0 |+ b- [$ O6 q5 F  十二、使用IPv6进行网络启动
# O5 w2 q3 T* k8 ^. \" R) }- j  12.1、工作原理
. ?7 f  w9 }# Y  12.1.1、网络地址/ S2 I0 e9 c. s+ A" k5 ]& Q
  12.1.2、TFTP地址" k8 V* ?' ^4 M" B+ F. N6 [9 Q
  12.1.3、引导过程9 a1 `* z- l4 z& z
  12.1.4、内核启动( E  k8 z6 O$ G( ^8 S
  12.2、测试环境搭建2 {2 j3 E6 X/ Z! \8 t8 }: L
  12.2.1、TFTP服务器设置7 M2 I, ]1 d" {! ^& K% O$ m; j3 E8 L
  12.2.2、DHCP服务器设置
6 S4 _( ~# v; Z4 c9 \  12.2.3、修改引导加载程序配置7 t, d5 l# p2 @5 O" |% @1 ]/ ^6 D
  12.2.4、路由器与IPv6支持4 l( l" g) [/ k: d9 J
  12.3、调试
& ?- _0 @4 @- F  12.3.1、日志与追踪
% C4 k4 T9 @- M: Q- p0 `" E  12.3.2、有状态配置与网络活动监控
  U# `/ O1 P- L( h$ H  12.3.3、无状态配置
( N/ s: j* R% {" k% p! r

G、摄像头相关

  一、关于相机软件) t/ @0 ^! J) o8 y9 E7 @
  树莓派官方相机一览' {2 P' x; }! I: }; V. S6 L3 E
  二、rpicam-apps
) ~; V: P1 V$ j: F3 I: r  2.1、树莓派提供的rpicam-apps示例
6 y; n; I, ~: N, v  2.1.1、Raspberry Pi OS的集成1 N5 b8 ~1 E5 [3 l! G
  2.1.2、自定义应用
8 Q* d9 f  p$ b1 L9 G) S0 ~5 d# g  2.2、libcamera
0 T* y: I* `* u$ A4 k. `  2.2.1、支持的相机及芯片! w7 f& ~! |: e$ \0 F) h# P
  2.3、rpicam-hello
+ {  \& @. s+ x, M& c( X5 U! }* [$ e  2.4、rpicam-jpeg) t. b8 ?9 q9 P
  2.5、rpicam-still8 [8 i1 C+ F4 Q6 h' T
  2.5.1、Encoders, M% G( n1 ?' F- l4 e
  2.5.2、捕捉原始图像0 Q/ X* g5 Q: ~
  2.5.3、捕捉长曝光图像# v1 D& B: z+ u2 v
  2.5.4、创建延时摄影视频
; n$ d. L& B3 H  2.5.4.1、rpicam-still延时摄影模式
8 R2 i6 a8 E# ]) |0 U  2.5.4.2、Cron自动摄影
  s, h: O2 e5 c0 K% I  2.5.5、将图像拼接在一起
0 H. O+ X+ c8 K  G' @1 t  2.6、rpicam-vid:Raspberry Pi视频捕捉工具, q! A6 x- ]8 q  ]2 k2 S  O2 L
  2.6.1、编码器与视频捕捉优化
' K8 x1 \# u1 J% l/ m; y  2.6.2、捕捉高帧率视频‌' e: c+ U7 {' g; b! W- I! f( N
  2.6.3、rpicam-vid 与 libav 的集成9 P7 J% M8 m: A; [- D) @
  2.7、rpicam-raw:直接录制原始Bayer帧
2 f0 Z* t8 X1 ?# f/ R& z* q/ Y3 d) k  2.8、rpicam-detect:基于TensorFlow Lite的对象检测
& D. S2 x% Z' M9 w/ r0 R0 Y: D$ d  2.9、配置说明3 G9 N' @% n) O' X% p& L1 h' S
  2.9.1、调整相机行为:使用调校文件
- o) P; O0 [. F  2.10、使用多台相机/ I0 t$ T0 a# P9 i- u; r) p5 B  s
  2.11、安装libcamera和rpicam-apps
3 Q: {  C  Q+ ?  Y  三、通过网络使用rpicam-apps进行视频流传输5 `8 B8 a* {- ]- s6 N* |
  3.1、UDP流传输* a; v0 A" x2 j' I$ f
  3.2、TCP流传输! _! F$ k8 v% Q! `; _" A
  3.3、RTSP流传输
) @! f) S; R7 s- B  3.4、使用libav进行网络流传输
! D/ i2 L/ T/ _' M" @! ^  3.5、GStreamer流传输
4 K7 }: h$ Q) k1 c3 M5 v  3.5.1、RTP流传输
8 ?8 b- t3 C0 }2 q, `! g  3.5.2、libcamerasrc GStreamer元素
$ x2 j! i! M% i. d3 f  四、rpicam-apps 选项参考
5 `$ S: O% p& v( O  4.1、通用选项
: N2 N# e3 C1 m  4.2、相机控制选项
  ]+ Z! P5 ^" F$ P6 ^  4.3、输出文件选项+ \/ E$ d/ b2 W* g, e
  4.4、图像选项
9 L6 Z* _3 L" J1 j5 Y3 _  4.5、视频输出选项
6 I) ]% n0 Q2 `5 A  4.6、libav视频后端选项
8 J  ^0 A& X3 \7 Z  4.7、rpicam-detect的目标检测选项$ @$ Z& O" O; G' z. a, b  S
  五、使用rpicam-apps进行后处理
% q. z  w5 [% t/ H( E0 m  5.1、基本后处理阶段示例) t% y& z; Q) F) B3 j' j
  5.2、内置后处理阶段
* x6 l4 ?! h, `2 i  5.2.1、否定(negate)阶段
$ ?9 m& y3 m* i4 e6 s  5.2.2、高动态范围(hdr)阶段
  i0 X( }' O$ a+ o# z. r# o5 ?! g( y  5.2.3、运动检测(motion_detect)阶段% H4 N5 J" }! t3 y
  5.3、使用OpenCV进行后期处理+ C" @  B( g) w6 ^- h0 x
  5.3.1、Sobel滤波(sobel_cv)阶段: _! O4 \7 L  ?" G. Q
  5.3.2、人脸检测(face_detect_cv)阶段
& [* v9 B6 m5 q9 h2 Z. a  5.3.3、图像标注(annotate_cv)阶段
" Y: Y* t, E0 Z5 q0 o5 r  5.4、使用TensorFlow Lite进行后处理* R! f, V% P$ t8 k
  5.4.1、前置条件' b6 j* h' Q) A$ b: Z  w" w  c, u
  5.4.2、物体分类(object_classify_tf)阶段2 X$ }# S& i8 Y# h( q! K% h
  5.4.3、姿态估计(pose_estimation_tf)阶段% D* {7 J3 A, K: ^- h
  5.4.4、物体检测(object_detect_tf)阶段. A6 V, ]' X; Y/ {! X$ z
  5.4.5、图像分割(segmentation_tf)阶段+ K7 l) f$ q2 r9 M" L2 u+ z2 w
  5.5、自定义后处理阶段+ T) ^$ h. F6 K) d1 G+ _8 [
  5.5.1、基础后处理阶段2 R; e) {5 [5 Z  l3 U
  5.5.2、TensorFlow Lite 阶段4 l- d) k, k$ ~" [/ T; |1 w1 `
  六、高级rpicam-apps使用指南‌! y, F* L/ \# q2 }0 v5 ^
  6.1、自行构建libcamera和rpicam-apps* i2 T$ T( _! l1 j  L6 K
  6.1.1、移除预安装的rpicam-apps
7 ]- d9 G) C: z  6.1.2、不构建libcamera而构建rpicam-apps3 Q7 p; u: n6 r8 y$ h8 Y. j
  6.1.3、构建libcamera
" Z5 h+ F4 J+ I$ e2 e  6.1.4、构建rpicam-apps+ \+ ~' Q, T: M
  6.1.5、rpicam-apps Meson 标志参考
+ X7 N8 g/ F  e, h: b4 Y* Y  6.1.6、构建libepoxy
; `" K8 Z7 c. t) ]3 M, ?  6.2、编写自己的rpicam应用
3 l2 c" P; V; z3 d. ?6 i0 ^  6.2.1、rpicam-hello简介- B/ _. X9 J6 ]8 I
  6.2.2、rpicam-vid
. [7 \2 p6 \& f8 o" K1 F  6.2.3、rpicam-raw: Z; w' e2 N* @1 e4 n/ j
  6.2.4、rpicam-jpeg0 v  v7 Z/ A) I5 S# U
  6.3、在Qt中使用libcamera
& h# |9 V1 i; ^) v* ?: P  ~1 q  6.4、在Python中使用Picamera2库操作libcamera
, N" Q6 Y4 o1 W) w: @  七、使用USB网络摄像头& p6 J. U" b0 f8 d/ `4 o
  7.1、安装依赖
& j+ L+ Y' \; i7 d; q- I$ F4 D: o  7.2、拍照
* b. n$ P. p5 Q$ A5 a6 \! D  7.2.1、指定不同的分辨率0 w8 V5 v' ~$ `
  7.2.2、删除横幅
1 @4 n; c2 r! X, d$ g# h7 y& _( f$ O. P8 b  7.3、自动化图像捕捉
. @/ S9 j/ U5 k0 `- f# y- R& \  7.4、拍摄延时摄影
% z: c, f" s% P7 R  八、V4L2 驱动
) m5 w  s( y& \9 ]4 O1 Z# q  C  8.1、使用libcamera时的设备节点
/ A. u8 Q/ |8 l$ q  8.2、使用V4L2驱动
6 A' R5 L( e) R& x$ t  九、Unicam7 l/ @  Z+ h7 u, y: f7 x
  9.1、Raspberry Pi的SoC与Unicam* ^5 t) [8 L) F( W" k. w
  9.2、软件接口! b8 y5 f5 \3 p  s& C% W( Y
  9.2.1、V4L2注意事项- ]# f- s( z+ }2 S2 p
  9.3、编写第三方驱动
& e! ]  X7 I% p6 k" z( M& h  9.3.1、摄像头传感器
  N- I' I4 f$ w8 z4 h* ^  9.3.2、设备树9 l% W2 `! O. V0 I) T6 o& i
  9.3.3、桥接芯片( [: h  q( y! U; r/ \
  9.3.3.1、模拟视频源
& R$ n0 B! }3 x: c: A" h  9.3.3.2、数字视频源
) z: D- l2 U) X+ i  9.3.3.3、当前支持的设备* o, n) i, N+ T) y$ \
  9.4、rpicam和raspicam之间的主要区别
. G2 ?7 L! l- t6 g! j* ~: \  9.5、rpicam-apps与 raspicam在功能和选项上的主要区别" m% U- }' i1 L- c, t# h
  9.6、缺陷像素校正(DPC)8 |, h" @; B# M% J9 m1 Q6 j. \
  十、故障排除方法
: T* P1 O" }  |/ n$ O6 w6 ^8 g  十一、获取帮助

- J1 \* Z3 g* X1 X- v" N9 l4 ~& g       未完待续(预计30万字)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )