
在树莓派的配置过程中,raspi-config 是用户最先接触到的核心工具之一。它是一个基于文本的多功能实用程序,用于设置基本的系统参数。这个工具几乎出现在每一份树莓派设置指南中,原因很简单:它将最重要的系统配置集中在一处。掌握 raspi-config 的功能、它与桌面配置工具的交互方式,以及何时需要手动编辑 /boot/config.txt,有助于你维护一个更稳定、更容易管理的设备。

raspi-config 位于树莓派操作系统与底层系统文件之间。它展示的许多设置,实际上是对原本需要手动编辑的配置文件的快捷操作。例如,启用 I2C 或 SPI 接口,你无需再手动编辑复杂的系统文件。
事实上,启用 I2C 或 SPI 涉及修改内核模块和参数;调整显示设置会将值写入 /boot/config.txt;更改本地化设置则更新系统范围的默认值。在树莓派操作系统的完整桌面版中,大部分这些选项在“首选项”菜单里的图形化“树莓派配置”窗口中都有对应的镜像功能。这两种工具最终修改的都是相同的底层设置,但 raspi-config 的适用性更广,因为它可以在无头(无显示器)设置、通过 SSH 远程管理的系统以及没有桌面环境的 Lite 版本安装中使用。

如果你打开 /boot/config.txt 文件,就能确切地看到 raspi-config 所做的许多更改的最终位置。这个文件控制着开发板的底层硬件行为,例如显示模式、硬件接口的激活、CPU/GPU内存分配以及硬件覆盖层。虽然手动编辑该文件仍然是可行的(有时对于高级调整也是必要的),但大多数用户会发现 raspi-config 提供了一个更安全的界面,可以有效防止语法错误或配置冲突。

树莓派OS Lite版与完整版:raspi-config的主要差异
raspi-config 在树莓派操作系统 Lite 版和完整版中的核心行为是一致的,但根据你的使用方式,会有一些细微的体验差异。
在树莓派操作系统 Lite 版上,raspi-config 是你的主要配置工具。由于没有桌面环境,你完全依赖它来启用硬件接口、调整性能设置、扩展文件系统以及设置本地化。它也是启用 SSH 最简单直接的方法,使你能够完全通过网络管理树莓派,这对于无头设置来说至关重要。
在树莓派操作系统完整桌面版上,图形化的配置窗口复制了许多相同的选项,如 SSH、摄像头支持、接口开关、分辨率和本地化。但 raspi-config 仍然有其不可替代的价值:它暴露了一些在图形界面中不总是可见的高级设置,并且在你通过 SSH 连接到桌面版系统时,它依然是可用的配置入口。某些更改,特别是与性能和某些接口相关的设置,仍然需要重启才能生效,而 raspi-config 会清晰地提示你何时需要重启。
在这两种情况下,一旦你选择了一个选项并确认更改,该工具就会直接写入相应的系统配置文件,并通常会提示你重启以应用这些更改。底层的行为机制保持一致,只是访问和操作的方式有所不同。

接口选项:实际项目中的实用示例
“接口选项”部分是 raspi-config 中最常用、最实用的功能之一。启用这些接口允许外部硬件、传感器和各种服务与树莓派进行交互。这个工具的便利性在于,它将复杂的系统级配置简化为简单的菜单选项,让你可以快速为项目搭建好硬件环境。

SSH——远程登录
SSH 允许你从另一台计算机安全地管理树莓派。这对于无头设置或日常的远程维护至关重要。一旦启用 SSH,你就可以使用以下命令从任何 Linux 或 Mac 终端登录:
ssh pi@raspberrypi.local
Windows 用户则可以通过 PowerShell 或 PuTTY 等工具进行访问。启用 SSH 是进行远程系统管理的第一步。
I2C——连接传感器和OLED显示屏
I2C 是一种广泛应用于电子项目的低速通信协议。许多流行的传感器(如温湿度、压力、加速度计)以及像 SSD1306 这样的小型 OLED 屏幕都使用 I2C。
启用 I2C 会加载所需的内核模块(i2c-dev),并允许像 smbus 或 CircuitPython 这样的库与外部设备通信。启用后,通常可以进行一个快速测试:
sudo i2cdetect -y 1
这个命令会扫描 I2C 总线并显示已连接外设的地址。
SPI——驱动TFT显示屏和ADC模块
树莓派上的 SPI 接口适合需要与外部硬件进行高速通信的场景,其在速度上优于 I2C,常用于驱动小型 TFT 显示屏、MCP3008 这类 ADC(模数转换)板或某些 RFID 模块。
开启 SPI 可确保 spi-bcm2835 驱动程序被启用,并在 /dev/ 目录下生成 spidev0.* 设备文件供应用程序调用。
摄像头——启用CSI摄像头模块
对于任何使用 CSI 接口的树莓派专用摄像头模块,在 raspi-config 中启用摄像头选项是必不可少的。在旧版系统上,这会激活传统的摄像头驱动堆栈。在现代树莓派操作系统版本上,它确保 libcamera 支持已准备就绪,可供延时摄影、监控、计算机视觉或流媒体等应用程序使用。
启用并重启后,可以运行一个简单命令来测试:
libcamera-hello
如果摄像头正常工作,你将看到预览画面。
这些接口选项旨在为你节省时间并减少配置错误。无需手动编辑多个系统文件,raspi-config 通过一个简单的“启用”操作就能处理所有底层细节。
性能和本地化:影响体验的重要设置
调整性能设置可以确保树莓派的资源分配与你的工作负载相匹配,而正确的本地化设置则让系统更符合你所在地区的使用习惯。
树莓派操作系统上的覆盖文件系统
覆盖文件系统是一项强大的功能,它允许系统以只读模式运行,同时仍能进行正常的文件操作(如写入、修改)。这个功能广泛应用于工业部署、信息亭、物联网设备以及任何系统稳定性比保存临时更改更重要的教育环境中。
在树莓派操作系统上,此功能可以直接通过 raspi-config 启用,这使其成为防止 SD 卡因意外断电或非法关机而导致文件系统损坏的最简单方法之一。

覆盖机制使用两个相互叠加的层:
- 下层(只读):这是存储在 SD 卡上的真实文件系统。启用覆盖后,整个这一层都以只读方式挂载,防止任何永久性修改。
- 上层(临时,在RAM中):所有变更——包括文件创建、删除或修改——都被写入一个存储在 RAM 中的临时虚拟文件系统。
这意味着:
- 所有的更改都不是永久性的。
- 每次重启时,所有更改都会丢失。
- 系统每次重启后都会恢复到一个干净、原始的状态。
这种设计有效地将树莓派变成了一个“不可变”的系统。
本地化要点
本地化设置看似微不足道,但它们直接影响日常使用的便利性和系统的准确性。

- 时区:确保系统日志、cron定时任务和所有时间戳的准确性。
- 键盘布局:避免在使用美式、英式、西班牙语或拉丁美洲等不同键盘布局时产生输入错误。
- Wi-Fi国家/地区:这是无线电法规遵从性和无线信道正常操作所必需的。选择错误的国家/地区可能会导致 Wi-Fi 连接问题,尤其是在 5 GHz 频段上。通过
raspi-config 一次性正确设置,可以确保无线网卡驱动程序使用合法的信道。
首次设置检查清单
一个正确的树莓派首次设置流程,能确保设备既安全又功能完备。遵循以下简短的检查清单,可以为后续的任何定制打下良好基础:
- 更改默认密码:保护设备免受自动化攻击,尤其是在启用 SSH 后,这一步至关重要。
- 更新系统:
sudo apt update && sudo apt full-upgrade
- 扩展文件系统:在新版本树莓派 OS 上,这通常是自动完成的。但在某些旧版本镜像上,这是访问 SD 卡全部容量的必要步骤。
- 启用SSH:允许远程访问,是实现无头设置的前提。
- 设置本地化:根据你的位置,调整区域设置、键盘布局、时区和 Wi-Fi 国家/地区。
- 启用所需接口:根据你的项目计划,启用 I2C、SPI、摄像头等接口。
- 重启:应用所有更改。
完成这个检查清单后,你的树莓派就为迎接几乎任何实际项目做好了准备。
raspi-config的替代方案:直接编辑/boot/config.txt
高级用户最终可能会遇到 raspi-config 未能暴露的配置需求,这时就需要直接编辑 /boot/config.txt 文件来获得完全的控制权。这是一些常见的需要手动编辑的场景:
强制HDMI分辨率
hdmi_group=1
hdmi_mode=16
这在连接到某些无法正确报告自身分辨率信息(EDID数据)的显示器时非常有用。
屏幕旋转
display_rotate=1
这是一种实现竖屏显示模式的简单方法。
手动启用I2C(替代方法)
dtparam=i2c_arm=on
虽然 raspi-config 会自动设置此项,但像启用额外的 I2C 总线(如 i2c_vc)这类高级配置,则需要手动添加或修改配置行。
结论
raspi-config 依然是管理和定制树莓派最重要的工具之一,尤其是在进行首次设置,或在无头、Lite 版环境中工作时。通过将基本选项(如接口激活、本地化、性能调优和系统安全)集中在一个界面中,它提供了一种安全、结构化的配置方式,避免了手动编辑系统文件可能带来的风险。
无论你是为了连接传感器而启用 I2C,为摄像头项目做准备,配置远程 SSH 访问,还是微调显示和硬件行为,raspi-config 都能确保这些更改被正确且一致地应用。对于追求更深层次定制的高级用户,了解何时以及如何切换到直接编辑 /boot/config.txt,将为你打开新的大门。掌握这两种方法,将使你的树莓派更加稳定、灵活,足以胜任你打算开展的下一项创意项目。
如果你在配置过程中遇到了更多关于操作系统底层或网络相关的问题,欢迎到云栈社区与更多的开发者和爱好者交流探讨。
