专栏文章 首页推荐

少数派专栏是 Matrix 社区中的一部分,我们会不定期挑选专栏中最优质的文章,展示来自用户和开发者的真实体验和观点。点此 了解什么是少数派专栏,点击 查看全部少数派专栏。

本文来自 树莓派 专栏,树莓派是一系列的微型电脑,搭载了开源的操作系统,配备多种拓展接口,具有极高可玩性。关注专栏,随时掌握最新资讯,了解更多实用教程,培养动手能力与折腾精神。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


前言

树莓派是只有信用卡大小、可运行操作系统的计算机 1。第一款树莓派于 2012 年发售,至今已有 9 年。9 年间,大大小小、稀奇古怪的树莓派项目遍地开花:卫星制造公司 将树莓派安装到人造卫星里 ,为卫星提供拍摄和图片传输功能;科技爱好者们使用树莓派搭建 Web 服务器 NAS 智能家居 ;游戏玩家在树莓派的帮助下, 让 1989 年的 GameBoy 实现了在线联机 ;科技博主使用树莓派采集并识别街景,制作了 一台向路过的狗狗发出赞美的机器 。树莓派以其只有信用卡大小的尺寸、五脏俱全的软硬件功能以及两者结合带来的丰富可玩性而深受大家的喜爱,不断吸引着新的小伙伴入坑。本文便是一份面向准备入坑或者刚入坑树莓派的新人玩家的上手指南。

都 2021 年了,还有必要写树莓派上手指南吗? 一番调研之后,我认为答案是肯定的。虽然网络上已经有很多新手向的树莓派上手教程,我派作者 @ 梓姵君 @Sunbelife 也分别在 2014 和 2017 年就发表了相关文章,但是,一方面,树莓派的软硬件更新活跃,一些上手教程的内容已经过时,需要更新和补充;另一方面,一些教程内容比较分散,对新手不够友好。因此,我希望在前辈们的基础上,整理一篇 2021 年最新的、浅显易懂的、比较全面的树莓派入坑指南,避免晦涩的术语和冗长的代码,力求让最没有基础的新人玩家只看这一篇文章,也可以顺利完成对树莓派的选购、配置和使用。

我们开始吧。

❗注:本文需要用到搭载 Windows 或 macOS 的电脑(下文称为 PC)。文中操作演示在搭载 Windows 的电脑上进行,但我会给出在搭载 macOS 的电脑上操作的方法。

购买树莓派和配件

截至 2021 年 6 月,树莓派基金会官网一共有 11 款树莓派产品 在售。这 11 款产品中,有 1 款是今年 1 月份发布的 Raspberry Pi Pico,它是一款单片机开发板;其他 10 款产品都是可以运行操作系统的电脑。根据外观、配置和性能,这 10 款产品可以分为 3 个系列:

  1. Model B 系列:当家旗舰
  2. Model A 系列:外形较小,配置和接口略有阉割
  3. Zero 系列:拥有超小身材

我制作了一张简化的产品介绍图,图片展示了各个系列各代产品的型号和外观参考照片,产品型号的颜色越深表示发布时间越晚、配置和性能越高;图中除了 Raspberry Pi 400 外,其它产品照片缩放比例相同,因此大家可以直观对比它们的外形大小差异。Raspberry Pi 400 是套了键盘「马甲」的 Raspberry Pi 4 Model B,两者配置相同。

▲在售的 11 款树莓派产品,图中产品外观照片来自 Raspberry Pi Foundation

根据电子产品「买新不买旧」的思路,我建议正在持币观望、准备入坑的新手玩家一步到位购买 Raspberry Pi 4 Model B(也称「树莓派 4B」),因为它是最新的旗舰产品,功能和接口最为齐全,这既可以降低上手难度,又可以在我们还不确定要用树莓派来做什么的时候提供多种可玩性。

除了树莓派本体,我们还需要购买一些配件:

配件用途
容量 8 GB 以上的 TF 卡用于加载树莓派的系统
TF 卡读卡器用于将 TF 卡接入电脑,烧录树莓派系统
5 V / 3 A 以上的电源为树莓派供电
▲ 买齐这些就够了。

对于树莓派的购买渠道,在树莓派基金会官网可以找到授权分销商的淘宝店铺,另外树莓派实验室也有官方淘宝店铺,这些都是比较靠谱的购买渠道。至于充电器,如果大家手头的充电器满足要求,就不需要购买了。需要留意的是所购买的树莓派型号的电源接口类型,树莓派 4B 使用的是 USB-C 接口,而更早的产品用的是 MicroUSB 接口。

烧录树莓派系统

树莓派是一个电脑,因此需要为它准备操作系统。我们买到树莓派之后,接下来要做的事情就是选择并下载合适的操作系统,并烧录到 TF 卡中。

目前,树莓派基金会官方和第三方开发者为树莓派开发了多个操作系统。官方开发的系统称为 Raspberry Pi OS,曾用名 Raspbian,目前更新至 5.10 版本,兼容所有的树莓派产品(除了 Pico)。作为新手,我们就先使用官方推荐的 Raspberry Pi OS 桌面版来入门,等上手之后再捣鼓 其它好玩的系统 不迟。如果 TF 卡存储空间充裕(≥ 16 GB),也可以使用「桌面 + 常用软件」的版本。

官方提供的操作系统说明
Raspberry Pi OS Lite 版没有图形化桌面,只有命令行界面。
Raspberry Pi OS 桌面版具有图形化桌面。
Raspberry Pi OS 桌面版 + 常用软件具有图形化桌面,预装了常用编程、办公、娱乐软件。

我们在 PC 的浏览器中点击表格中的链接,下载操作系统的 img 文件。

现在,我们将 TF 卡通过读卡器接入到 PC 中。

接着,我们下载并安装一个用于向 TF 卡烧录 img 文件的软件 Win32DiskImager

打开 Win32DiskImager,在「映像文件」中选中下载到的 img 文件,确认「设备」选中的是 TF 卡对应的盘符,然后点击「写入」,此时软件弹出「确认覆盖」的警告,点击「Yes」开始就可以开始烧录。

烧录完成后,TF 卡会产生另一个 Windows 无法识别的分区,PC 随即弹出「无法访问卷」、「需要格式化」等警告,我们一律取消无视。

此时,TF 卡已经安装上 Raspberry Pi OS 系统了,我们将 TF 卡插入树莓派背面卡槽中,树莓派就已经准备就绪,如果我们为它接上 USB 键盘、鼠标,通过 mini HDMI 接上显示器,再接上网线和电源,就可以像操作其他电脑一样操作树莓派了。

▲ 图源:Raspberry Pi Foundation

但我们并非要将树莓派作为主力电脑来使用,完全不需要如此兴师动众地为树莓派搭上这么多配件。我们只需要 TF 卡和电源线,就可以在 PC 上访问和控制树莓派了。如何做到呢?很简单,继续往下看吧。

▲我们只需要 TF 卡和电源线。

🍎注:在搭载 macOS 的电脑上向 TF 卡烧录系统,思路相同,可使用烧录软件 Etcher

设置 WiFi 连接和远程访问

Raspberry Pi OS 允许我们使用同一个 wifi 下的 PC 来访问和控制树莓派,这个功能叫 SSH 服务。为了使用这个服务来访问树莓派,我们在 PC 上完成对 TF 卡的烧录后,先不要弹出 TF 卡,而是在 PC 上准备两个文件拷贝到 TF 卡中 2: 

文件 1:我们新建一个 txt 文件,将其命名为「ssh」并删除后缀,注意不是「ssh.txt」。这个文件的作用是让树莓派开启 SSH 功能。 

文件 2:我们同样新建一个 txt 文件,打开输入以下内容:

country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
 
network={
ssid="WiFi_Name"
psk="WiFi_PassWord"
key_mgmt=WPA-PSK
priority=1
}

其中,ssid 是我们家里的 WiFi 名称,psk 是 WiFi 的密码。内容输入完成后保存退出,将文件名称连同后缀修改为「wpa_supplicant.conf」。这个文件的作用是让树莓派按照我们文件中的内容连接 WiFi。

  • 📖 拓展阅读:针对不同 WiFi 加密方式的设置及更多的说明,请查看 此贴

两个文件都准备完成后,将它们拷贝到 TF 卡的 boot 分区根目录下,然后就可以弹出 TF 卡。

▲将两个文件拷贝到 boot 分区的根目录下,留意两个文件的命名和后缀。

现在将 TF 卡插入树莓派背面卡槽中,并为树莓派上电。树莓派第一次启动,便会自动读取「wpa_supplicant.conf」文件,按文件内容接入 WiFi,并自动开启 SSH 服务。

接下来,我们需要知道接入 WiFi 的树莓派在本地局域网中的 ip 地址,以便使用接入同一 WiFi 的 PC 来访问它。我们可以访问无线路由器的管理页面来查找树莓派分配到的 ip 地址:

▲在无线路由器管理页面,通过接入时间、设备名称和新接入的设备等方法锁定树莓派并查看其 ip 地址。

现在,我们在 PC 下载并安装用于访问 SSH 服务的工具 PuTTY(懒人直达百度网盘下载 3

打开 PuTTY,在「主机名称」中输入树莓派在局域网中的 ip 地址,其他选项无序改动,点击「打开」。如果是首次连接此 ip 地址,软件会弹出密钥确认的警告窗,我们点击「是」即可。

此时软件会弹出命令行窗口:

我们在 login as: 中输入 Raspberry Pi OS 默认用户名「pi」然后按回车;接着在 xxx password: 中输入密码「raspberry」按回车。注意输入的密码不会显示在命令行中,所以输入时看到没有反应不必怀疑是否出了问题,大胆输入即可。

看到窗口显示 pi@raspberrypi:~ $,说明我们已经登录到树莓派了。现在我们就可以通过各种 Linux 指令来控制树莓派啦。

🍎 注:在搭载 macOS 的电脑上通过 SSH 服务登录树莓派,可使用 PuTTY on Mac

远程访问树莓派桌面

虽然我们在 PC 成功登录到树莓派,但进入的是它的命令行界面。作为新手的我们,当然还是希望能够访问更加熟悉的图形化桌面。这是没问题的,这次我们要用到的是 Raspberry Pi OS 的 VNC 服务 4

首先需要开启 VNC 服务,我们在 PC 上通过 SSH 登录到树莓派命令行窗口,输入以下指令进入 Raspberry Pi OS 的配置页面:

sudo raspi-config
▲Raspberry Pi OS 配置页面

在配置页面,依次选择「3 Interface Options」>「P3 VNC」,按回车,界面提示「Would you like the VNC server to be enabled?」,选择「Yes」即可开启 VNC 服务。此后系统自动返回到配置页面,选择「Finish」退出配置页面,返回命令行窗口。

接下来,我们在 PC 下载并安装用于访问 VNC 的客户端 VNC Viewer

打开 VNC Viewer,在顶部 ip 地址框中输入树莓派在局域网中的 ip 地址,按回车连接,首次连接照例弹出安全警告,我们照例同意。此时软件弹出授权窗口,我们输入账号密码后点「OK」,软件就成功远程登录到树莓派的图形化桌面啦。

▲熟悉的图形化桌面

🍎 注:在搭载 macOS 的电脑上通过 VNC 服务登录树莓派桌面,可使用 VNC Viewer for macOS

接下来介绍在 PC 通过 VNC Viewer 远程访问树莓派桌面经常会遇到的两个问题以及它们的解决方法。

如何解决「cannot currently show the desktop」问题

我们按照上述步骤操作,可能会遇到以下问题:成功在 VNC Viewer 中连接到树莓派,但是弹出的窗口却是黑屏,并显示「cannot currently show the desktop」。

这是由于 Raspberry Pi OS 的桌面分辨率不合适导致的。解决方法很简单:

使用 PuTTY 登陆到树莓派命令行窗口,同样输入 sudo raspi-config 进入配置界面,依次选择「2 Display Options」>「D1 Resolution」,然后选择 1280×720 或 1920×1080 等分辨率,保存退出。在 VNC Viewer 中重新进行连接,就可以成功显示桌面啦。

如何调整 VNC Viewer 显示树莓派桌面的分辨率

紧接上一个问题,我们明明已经在配置中将 Raspberry Pi OS 的桌面分辨率设置为 1920×1080 的分辨率了,为什么我们在 PC 的 VNC Viewer 上访问桌面时,分辨率仍然很低呢:

▲在 PC 通过 VNC Viewer 访问树莓派桌面,即使最大化窗口,画面也无法填满 PC 屏幕

这是由于我们虽然修改了 Raspberry Pi OS 的桌面分辨率,但却没有修改 VNC 服务的分辨率所导致的。经过调研,有一个解决方法:

我们在命令行窗口中(可以使用 PuTTY 登录命令行窗口,或者在 VNC Viewer 所连接的桌面上打开命令行窗口)执行以下指令:

vncserver -geometry 1920x1080

这句指令的作用是将 VNC 服务的显示分辨率修改为 1920×1080。执行后,树莓派提示生成了另一个端口「ip 地址:1」供 VNC Viewer 连接。

我们在 VNC Viewer 中输入新端口地址「ip 地址:1」来连接,输入账号密码登录,这个窗口的分辨率就是 1920×1080 啦。

▲现在 VNC Viewer 访问到的树莓派桌面分辨率才是 1920×1080

不过新的窗口显示的鼠标指针变成了「×」号。我们在新窗口的命令行中执行第二句指令:

lxappearance

即可将鼠标指针切换回熟悉的箭头。

在 PC 和树莓派之间传输文件

我们已经可以很方便地在 PC 上访问树莓派的命令行窗口和桌面了。现在,我们来搭建在 PC 和树莓派之间传输文件的功能,我们会在树莓派上搭建一个 FTP 服务器,所用到的工具是 vsftpd,一款运行于类 UNIX 系统上的 FTP 服务器。

我们打开树莓派的命令行窗口(再复习一遍:我们可以使用 PuTTY 登录命令行窗口,或者使用 VNC Viewer 登录到桌面,然后打开命令行窗口),输入以下指令来安装 vsftpd:

sudo apt-get install -y vsftpd

安装完毕后,输入指令打开 vsftpd 的配置文件,进行一些必要的设置:

sudo nano /etc/vsftpd.conf

在打开的配置文件中,我们将以下内容前的#号去掉,来让这行内容生效:

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022

完成后,按「ctrl+o」保存文件,再按「ctrl+x」退出文件编辑,返回命令行窗口。

▲「vsftpd.conf」文件修改前
▲「vsftpd.conf」文件修改后
  • 📖 拓展阅读:这些内容的作用如下:
anonymous_enable=NO不允许匿名用户访问我们所搭建的 FTP 服务器
local_enable=YES允许本地用户访问 FTP 服务器
write_enable=YES允许向 FTP 服务器执行写入操作
local_umask=022设定上传后文件的权限掩码

随后,在命令行窗口中输入指令启动 vsftpd 服务:

sudo service vsftpd start

在树莓派上的操作就已经完成了,树莓派上现在已经搭建了一个 FTP 服务器。

现在,我们在 PC 下载并安装用于访问 FTP 服务器的客户端 FileZilla

打开 FileZilla,在顶部「主机」地址框中输入树莓派在局域网中的 ip 地址、用户名和密码,端口为 22。然后点击「快速连接」。连接成功后,我们就可以在「远程站点」中看到树莓派的文件目录了。现在,我们就可以很方便地通过拖拽在 PC 和树莓派之间双向传输文件了,十分方便。

🍎 注:在搭载 macOS 的电脑上访问树莓派的 FTP 服务器,使用 FileZilla MACOSX X86

备份树莓派系统

现在,我们已经可以很方便地在 PC 上访问和控制树莓派,并进行文件传输,我们的树莓派折腾之旅就正式开始了。在折腾树莓派的过程中,我们少不了在系统中安装和配置各种软件、Python 库、环境依赖等等。搞机是有风险的,为了在我们将系统折腾翻车的时候有一个撤回的机会,我们可以在适当的时候对系统进行备份,以备有需要时可以恢复系统。在本教程最后一个内容里,我们来看看如何备份树莓派的系统。

根据调研和实测,目前有两种备份树莓派系统的方法,它们有各自的适用范围。以下分别介绍这两种方法。

对 TF 卡进行完整备份

我们在 PC 上用来向 TF 卡烧录系统的软件 Win32DiskImager,也可以用来将 TF 卡上的系统完整备份为一个镜像文件。

我们把树莓派关机后,将 TF 卡拔出,通过读卡器连到 PC 上(照例忽视系统弹出的「需要格式化」等警告)。在 PC 上打开 Win32DiskImager,在「映像文件」中选择准备存放镜像文件的路径,并输入镜像文件名称和「.img」后缀。确认「设备」选中的是 TF 卡 boot 分区对应的盘符,然后点击「读取」,此时软件会从「设备」向「映像文件」传输文件,完成后,TF 卡上的树莓派系统就备份到 D:/Raspberry Pi/systemBackUp.img 这个镜像文件中了。

现在,我们就将树莓派现在的系统完整备份到了这个镜像文件。想恢复这个系统时,我们只需要将 TF 卡格式化之后,按照上文「2. 烧录树莓派系统」中的操作,将此镜像文件烧录到 TF 卡中即可。

推荐大家使用 SD Card Formatter 来格式化 TF 卡,有 Windows 和 MacOS 版本。它可以十分方便、干净完成对 TF 卡的格式化,不容易误格式化其他硬盘。

无需其他设置,直接按「Format」即可完成格式化。

这个备份系统的方法操作简单,但是它的缺点是需要将 TF 卡完整备份,所生成的镜像文件体积等于 TF 卡的容量。因此这种方法比较适用于对小容量 TF 卡(≤ 16 GB)的备份,对于大容量的 TF 卡(比如 ≥ 128 GB),每次备份都会产生一个 128 GB 的镜像文件,这显然是不科学的。这就引出了我们的第二个备份方法。

使用 rpi-backup 脚本进行备份

这种方法使用大佬编写的 rpi-backup 脚本对树莓派系统进行备份。这个备份方法所生成的镜像文件体积是系统已用空间的 1.2 倍,相比于第一种备份方法,这种方法可以显著缩小镜像文件的体积,节省镜像文件所占用的磁盘空间。

这个备份方案需要在树莓派上操作。我们需要将 rpi-backup 脚本文件拷贝到树莓派中。我们登录到树莓派命令行窗口,执行以下指令来从 Github 克隆脚本文件到树莓派上:

git clone https://github.com/nanhantianyi/rpi-backup.git

我们也可以在 PC 上从 Github 下载 脚本 并将其通过 ftp 传输到到树莓派中。

接下来,在树莓派命令行窗口中执行 cd 指令跳转到脚本所在的路径,比如我将脚本文件存放在 pi/Downloads/rpi-backup-master 路径下:

cd Downloads/rpi-backup-master
脚本文件所在的路径
▲利用 cd 指令进入到脚本文件所在路径中

现在,在此路径下执行以下指令即可执行「back.sh」脚本来将树莓派系统备份为镜像文件:

sudo bash back.sh xxx.img

其中「xxx」为镜像文件名称。所生成的镜像文件将存放在「back.sh」同一路径下。我们可以修改「xxx」内容来指定镜像文件的存放路径和名称,如 Documents/systemBackUp.img 等。恢复系统时,同样只需要将 TF 卡格式化,然后将备份的镜像文件烧录到 TF 卡中即可。

我使用这个方法对我的树莓派的系统进行备份,结果如下:

项目体积
TF 卡32 GB
系统已用空间6.7 GB
备份系统后生成的镜像文件8.3 GB

可以看到, 镜像文件体积大约是系统已用空间的 1.24 倍,远小于 TF 卡的容量。

这种备份方法并非没有缺点。它所生成的镜像文件是保存 TF 卡中的,如果 TF 卡容量不大,剩余的空间不多,我们需要将硬盘挂载到树莓派上合适的目录下,然后将镜像文件保存到硬盘中,这些操作可能对新手不太友好。因此,大家根据自己实际情况选择合适自己的系统备份方法吧。

尾声

2021 年的树莓派入坑指南至此接近尾声,我们通过下表来回顾、概括一下本文涉及的操作:

操作实现途径所用的工具 / 软件
烧录树莓派系统\Win32DiskImagerEtcher
在 PC 访问树莓派命令行窗口SSHPuTTY
在 PC 访问树莓派图形化界面VNCVNC Viewer
在 PC 和树莓派之间传输文件FTPFileZilla
备份树莓派系统\Win32DiskImagerrpi-backup 脚本
恢复树莓派系统\Win32DiskImagerEtcher

希望本文能对大家有所帮助。如果你有好用的树莓派使用技巧,欢迎在评论区分享、讨论哟。

> 下载少数派 客户端 、关注 少数派公众号 ,了解更妙的数字生活 🍃

> 想申请成为少数派作者?冲!