config.txt文件
什么是config.txt?
Raspberry Pi 设备使用名为 config.txt 的配置文件,而不是传统 PC 上的 BIOS。在 Arm CPU 和 Linux 初始化之前,GPU 会读取config.txt。Raspberry Pi OS 会在 boot 分区(位于 /boot/firmware/)中查找该文件。
您可以直接从 Raspberry Pi OS 安装中编辑 config.txt。也可以移除存储设备,在另一台电脑上编辑启动分区中的文件,包括 config.txt。
对 config.txt 的更改仅在重启后生效。可以使用以下命令查看当前活动设置:
vcgencmd get_config <config>:显示特定配置值,例如 vcgencmd get_config arm_freq.
vcgencmd get_config int:列出所有非零整数配置选项(非零)
vcgencmd get_config str:列出所有非空字符串配置选项
并非所有配置设置都能使用 vcgencmd 获取。
某些旧版 config.txt 选项已不再获得官方支持。这些选项列于 旧版 config.txt 选项 中,本文未作涵盖。
文件格式
config.txt 文件由早期启动固件读取,因此使用非常简单的文件格式: 每行只有一条 property=value 语句,其中 value 既可以是整数,也可以是字符串。可以添加注释,也可以用 # 字符开头一行,注释掉并禁用现有的配置值。
条目的行长限制为 98 个字符。Raspberry Pi OS 会忽略超过此限制的任何字符。
下面是一个文件示例:
# 启用音频(加载 snd_bcm2835)
dtparam=audio=on
# 为检测到的摄像头自动加载覆盖层
camera_auto_detect=1
# 为检测到的 DSI 显示器自动加载覆盖层
display_auto_detect=1
# 启用 DRM VC4 V3D 驱动程序
dtoverlay=vc4-kms-v3d
高级功能
包括
将指定文件的内容插入当前文件。
例如,在 config.txt 中添加 include extraconfig.txt 这一行,就会在 config.txt 文件中包含 extraconfig.txt 文件的内容。
bootcode.bin 或 EEPROM 引导加载程序不支持 include 指令。
由bootloader处理的设置只有在 config.txt 文件(而不是任何其他包含文件)中指定后才会生效:
bootcode_delaygpu_mem、gpu_mem_256、gpu_mem_512、gpu_mem_1024total_memsdram_freqstart_x、start_debug、start_file、fixup_fileuart_2ndstage
条件筛选
条件筛选器在条件部分有所介绍。
autoboot.txt
autoboot.txt 是一个可选配置文件,可用于指定 boot_partition 编号。
它还可与 tryboot 功能结合使用,为操作系统升级实现 A/B 启动。
autoboot.txt 的长度限制为 512 字节,支持 [all]、[none] 和 [tryboot] 条件过滤器。
另请参阅 TRYBOOT 启动流程。
boot_partition
指定用于启动的分区号,除非分区号已作为参数指定给 reboot 命令(如 sudo reboot 2)。
分区号从 1 开始,MBR 分区为 1 至 4。 指定分区 0 意味着从默认分区(即第一个可启动的 FAT 分区)启动。
可启动分区必须格式化为 FAT12、FAT16 或 FAT32,并包含 start.elf 文件(或树莓派5上的 config.txt 文件),才能被bootloader归类为可启动分区。
[tryboot]过滤器
如果系统启动时设置了 tryboot 标志,则此过滤器通过。
sudo reboot "0 tryboot"
tryboot_a_b
将此属性设为 1,可在设置 tryboot 标志时加载正常的 config.txt 和 boot.img 文件,而不是 tryboot.txt 和 tryboot.img。
这样就能在分区级而非文件级进行 tryboot 切换,而无需修改 A/B 分区中的配置文件。