🍓 第二章 购买、安装与设置
📄 一句话概括

刚装好的系统能开机,但「不太顺手」——设置就是把机器调成你的机器:改主机名、对时区、换键盘、开接口、接远程桌面;两个入口任选其一——图形界面的「控制中心」,或命令行的 sudo raspi-config,而接口开关那一项,是后面所有硬件实验的总闸。

📝 本节和前面几节的关系

2-3 让系统「能跑起来」,本节让系统「按你的习惯跑」。 本节最容易被新手跳过,但它决定了后面几章的体验:接口选项里那几个开关(I2C/SPI/摄像头/串口),就是后面接传感器、接摄像头、接屏幕的许可证——不开,代码怎么写都没用。

一、两个设置入口,二选一

图形界面 命令行
在哪 桌面菜单 → 控制中心(Control Centre) 终端里敲 sudo raspi-config
适合 有桌面、喜欢点鼠标 无头模式唯一选择、想记住通用技能
备注 新版系统把原来分散的几个设置工具合并成了一个「控制中心」 菜单结构多年稳定,和图形版做的是同一件事

关键认知:raspi-config 是「底层真相」——图形界面只是它的外壳。学会命令行版,你在任何一台树莓派、任何系统版本上都能用;而且无头模式下你只有它。

所以本节以 raspi-config 为主线讲,图形界面按同样思路点。

二、raspi-config 地图

在终端敲:

sudo raspi-config

会看到一个蓝底的文字菜单(方向键选、Tab 切按钮、回车确认)。主要几块:

菜单项 管什么 你要不要动
1 System Options 主机名、改密码、自动登录、无线网 要动(改主机名/密码)
2 Display Options 分辨率、旋转屏幕、字体大小 看情况(接显示器且显示不正常时)
3 Interface Options SSH/VNC/SPI/I2C/串口/摄像头 要动(项目要用的接口)
4 Performance Options 超频、GPU 内存、风扇 一般不动
5 Localisation Options 语言/时区/键盘布局/Wi-Fi 国家 必动
6 Advanced Options 扩容、启动顺序、开机进桌面还是命令行 看情况
8 Update 更新这个工具本身 偶尔
9 About 版本信息 好奇时看

三、必做的五项设置

① 本地化:语言、时区、键盘

5 Localisation Options

子项 设成 不设会怎样
Locale(语言环境) en_US.UTF-8 为主(可选加 zh_CN.UTF-8) 显示乱码、程序报 locale 警告
Timezone(时区) Asia → Shanghai 日志时间全错、证书校验失败、定时任务在不该跑的时候跑(服务器课 4.4 讲过 NTP 的重要性)
Keyboard(键盘布局) 你实际的键盘(常见 Generic 105-key → 英文布局) 敲出来的字和屏幕上不一样(比如按 " 出来 @)——这是最让人抓狂的坑
WLAN Country(Wi-Fi 国家) CN Wi-Fi 可能搜不到某些信道、连不上——国家不对,可用的无线频段就受限

时区为什么这么重要? 一个真实场景:你的树莓派定时每天凌晨 2 点备份,时区错了,它就会在你上班的时候跑,把机器拖慢。时间错了,所有「按时间」的逻辑都错。

② 主机名

1 System Options → Hostname

改成好记的名字,比如 pi-lab、home-server。

③ 改密码

1 System Options → Password

如果你在 2-2 烧卡时已经设过强密码,这一步可以跳过。 但养成习惯:任何一台联网设备,第一件事就是确认没有弱密码。服务器课 7.1 讲过:认证是安全的第一道关,而弱密码是第一道关上的缺口。

④ 接口开关(本节最重要的一项)

3 Interface Options —— 这就是本章埋的「总闸」:

接口 是什么 什么时候开
SSH 远程登录命令行 无头模式必须开(烧卡时开了就已是开的)
VNC 远程看到图形桌面 想在自己电脑上看树莓派桌面
SPI 一类通信总线 接某些屏幕、传感器时
I2C 两根线的通信总线 接绝大多数传感器时(温度、气压、陀螺仪都走它)
Serial Port 串口 接某些模块;默认那个要用它登录,别乱关
Camera 摄像头模块 接 CSI 摄像头时
1-Wire 单总线 接 DS18B20 温度探头时

为什么不默认全开? 一是安全(少开一个门就少一个风险,服务器课 7.1 的「最小权限」原则),二是稳定(占用了引脚就得罪了别的功能)。

判断口诀:要用什么,查教程说开哪个,再开哪个。别一次全开。

⑤ 开机方式:进桌面还是进命令行

6 Advanced Options → Boot / Auto Login

选项 效果 适合
Desktop Autologin 开机直接进桌面,免密码 新手、当桌面用(注意:意味着谁碰到机器谁就能用)
Desktop 开机进桌面,要输密码 桌面用但要一点安全
Console Autologin 开机到命令行,免密码 无头/服务器用——省资源、启动快
Console 开机到命令行,要密码 更稳当的选择

关键提醒:「无头模式」建议选命令行启动。原因:不启动图形界面能省下大量内存和 CPU(Lite 版本尤其明显),而且图形界面本来你也看不到。

四、VNC:在自己电脑上看树莓派的桌面

适用场景:树莓派没接显示器,但你想用鼠标点它的桌面。

关键认知(重要,老教程在这里全是错的):

新版系统里的远程桌面已经换了实现。 早年的树莓派内置 RealVNC,网上教程到处都是「在 raspi-config 里开 RealVNC」。但从 Bookworm 起,系统改用了 Wayland 显示技术,自带的远程桌面服务换成了 wayvnc——「RealVNC 服务」这个东西已经不存在了。

操作本身反而更简单了:还是 raspi-config → 3 Interface Options → VNC → Yes。服务换人了,开关的位置没变。

连接方法:

  1. 在 Windows 上装一个 VNC 客户端(RealVNC Viewer、TigerVNC 等,任选);
  2. 输入树莓派的地址:pi-lab.local 或它的 IP;
  3. 端口默认 5900(还记得吗——服务器课 3.4 讲过「服务器靠 IP 加端口认人」,这里又见一次);
  4. 输入用户名密码,就能看到桌面。

两个常见问题:

现象 原因
VNC 连上了但全是黑屏 树莓派开机进的是命令行,根本没启动桌面——去 ⑥ 那一项改成进桌面
连不上、提示拒绝 接口没开;或主机名/IP 找错;或不在同一网络

安全提示:VNC 和 SSH 的端口都是被互联网上自动化扫描器盯得最紧的端口。绝对不要为了「在外面也能连」就在路由器上把 5900 或 22 端口转发到公网。要在外面用,走 VPN 或 SSH 隧道——服务器课 7.9 讲的「借公网挖一条加密隧道」,就是为这种场景准备的。

五、把系统更新到最新

设置里还有一件事:更新系统。三个层次:

sudo apt update              # 刷新"软件清单"(不影响系统)
sudo apt full-upgrade -y     # 真正升级(可能重启)
sudo reboot                  # 需要时重启

另外两个和更新有关的命令:

命令 管什么
sudo rpi-eeprom-update 更新主板固件(Pi 4/5 有,类似电脑的 BIOS);-a 参数可应用并重启
raspi-config → 8 Update 只更新 raspi-config 这个工具自己

纪律:改完重要设置、装完一批软件,先重启一次再判断好不好用——很多「设置没生效」其实只是没重启。

六、动手 Demo:把机器调成「能用的样子」

按这份清单逐项做完,每做完一项打个钩:

[ ] ① 时区 Asia/Shanghai     → 验证:date 命令显示的时分与手机一致
[ ] ② 键盘布局正确           → 验证:敲一遍 " 和 @ 键,位置对得上
[ ] ③ 主机名改成 pi-lab      → 验证:hostname 命令输出 pi-lab
[ ] ④ 密码已改成强口令       → 验证:能正常 sudo,不是 123456
[ ] ⑤ SSH 已开启             → 验证:从电脑能 ssh 进来
[ ] ⑥ 启动方式按用途选对     → 无头选 Console,带屏选 Desktop
[ ] ⑦(要用 VNC 才做)开 VNC → 验证:VNC 客户端能看到桌面
[ ] ⑧ 系统已更新             → 验证:apt update 无报错、无待升级项

验证命令合集(一条条敲):

hostname                      # 主机名
timedatectl                   # 时区与时间(看 Time zone 那行)
locale                        # 语言环境
raspi-config nonint get_i2c   # 看 I2C 开关状态(0=开 1=关)
sudo systemctl status ssh     # SSH 服务在不在跑

「看到什么算成功」的参考输出:

pi-lab
      Local time: 四 2026-09-24 10:35:12 CST
    Time zone: Asia/Shanghai (CST, +0800)
● ssh.service - OpenBSD Secure Shell server
     Active: active (running)
0

怎么读:CST +0800 = 时区对了;active (running) = SSH 服务活着;最后那个 0 = I2C 是开的。

做完这八项,你的树莓派才真正是「你的」了——后面几章的所有实验,都跑在这个基础上。

七、30 秒实验

验证时区到底管什么。

date

看一眼输出的时间,和手机对一下。如果差了几个小时,说明时区没设对。

更妙的一步——故意把时区改错,再看:

sudo timedatectl set-timezone America/New_York
date
sudo timedatectl set-timezone Asia/Shanghai
date

你会看到同一个瞬间,在两个时区下显示相差 12 小时。

这 30 秒你收获的是:「本机时间」不是事实,是「事实 + 你声明所在的时区」——所以服务器部署的第一件事永远是校时(服务器课 4.4 讲的 NTP,就是这个道理)。

八、常见误区

自测三问 1. 图形界面设置和 `raspi-config` 是什么关系?(**同一套设置的两种外壳**,`raspi-config` 是底层真相;**无头模式下只有命令行版可用**) 2. 时区设错会造成哪些具体问题?(**日志时间全错、证书校验失败、定时任务在不该跑的时候执行**——所有按时间走的逻辑都错) 3. 为什么说「接口选项」是后面几章的许可证?(**I2C 不开,传感器读不到;SPI 不开,屏幕点不亮;摄像头不开,拍不了照**——代码写对了也没用)

相关笔记