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 Bookworm 之前,Raspberry Pi OS 将启动分区存储在 /boot/

您可以直接从 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

列出所有非空字符串配置选项

Note
并非所有配置设置都能使用 vcgencmd 检索。

文件格式

config.txt 文件由早期启动固件读取,因此它有一个非常简单的文件格式。格式是每行上的单个 property=value 语句,其中 value 是整数或字符串。可以添加注释,或者可以注释掉现有的配置值并禁用,方法是在行首添加 # 字符。

条目的行长限制为98个字符-超过此限制的任何字符都将被忽略。

这是一个示例文件:

# Enable audio (loads snd_bcm2835)
dtparam=audio=on

# Automatically load overlays for detected cameras
camera_auto_detect=1

# Automatically load overlays for detected DSI displays
display_auto_detect=1

# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d

高级功能

include

使指定文件的内容插入到当前文件中。

例如,在config.txt中添加 include exfig.txt 行将在 config.txt 文件中包含 extraconfig.txt 文件的内容。

Note

bootcode.bin 或 EEPROM 引导加载程序不支持 include 指令。

引导加载程序处理的设置只有在 config.txt (而不是任何其他包含的文件)中指定的情况下才会生效:

  • bootcode_delay ,

  • gpu_mem , gpu_mem_256 , gpu_mem_512 , gpu_mem_1024 ,

  • total_mem ,

  • sdram_freq ,

  • start_x , start_debug , start_file , fixup_file ,

  • uart_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分区是 14 。指定分区 0 意味着从 default 分区启动,这是第一个可启动的FAT分区。

可引导分区必须格式化为FAT12、FAT16或FAT32并包含 start.elf 文件(或Raspberry Pi 5上的 config.txt 文件)才能被引导加载程序归类为可引导。

[tryboot] 过滤器

如果系统使用 tryboot 标志设置启动,则此过滤器通过。

$ sudo reboot "0 tryboot"

tryboot_a_b

将此属性设置为 1 以在设置 tryboot 标志时加载正常的 config.txtboot.img 文件,而不是 tryboot.txttryboot.img

这使得 tryboot 切换可以在分区级别而不是文件级别进行,而无需修改A/B分区中的配置文件。

A/B引导的示例更新流程

下面的伪代码展示了假设的操作系统 "更新服务 "如何使用 autoboot.txt 中的 tryboot 来执行故障安全操作系统升级。

初始化 autoboot.txt

[all]
tryboot_a_b=1
boot_partition=2
[tryboot]
boot_partition=3

安装更新

  • 系统开机并默认引导到分区2

  • Update service 将下一个版本操作系统下载到分区3

  • 通过重新启动到 tryboot 模式 reboot"0 tryboot" 测试更新,其中 0 表示默认分区

提交或取消更新

  • 系统从分区3启动,因为 [tryboot] 过滤器在 tryboot mode 中的计算结果为true

  • 如果tryboot处于活动状态( /proc/device-tree/chosen/bootloader/partition

    • 如果当前引导分区( /proc/device-tree/chosen/bootloader/partition )与 autoboot.txt[tryboot] 部分中的 boot_partition 匹配

      • Update Service 验证系统以验证更新是否成功

      • 如果更新成功

        • 替换 autoboot.txt 交换 boot_partition 配置

        • 正常重启-分区3现在是默认启动分区

      • Else

        • Update Service 将更新标记为失败,例如它删除更新文件。

        • 正常重启-分区2仍然是默认启动分区,因为 tryboot 标志会自动清除

      • End if

    • End If

  • End If

更新 autoboot.txt

[all]
tryboot_a_b=1
boot_partition=3
[tryboot]
boot_partition=2
Note

更新 autoboot.txt 后不一定要重新启动。不过,Update Service 必须小心避免覆盖当前分区,因为 autoboot.txt 已被修改以提交上次更新。有关详细信息,请参阅 设备树参数

常用选项

常用显示选项

hdmi_enable_4kp60

Note
此配置只可用在 Raspberry Pi 4, Compute Module 4, Compute Module 4S, 和 Pi 400.

默认情况下,当连接到 4K 显示器时,某些型号会选择 30Hz 刷新率。使用该选项可选择 60Hz 刷新率。受此设置影响的机型不支持同时在两个微型 HDMI 端口上输出 4Kp60。启用此设置会增加功耗和温度。

常用硬件配置选项

camera_auto_detect

默认情况下,Raspberry Pi OS 在 `/boot/firmware/config.txt`中包含一行启用此设置的内容。

启用后,固件将自动为识别到的 CSI 摄像头加载设备树。

要禁用,请设置 camera_auto_detect=0

display_auto_detect

默认情况下,Raspberry Pi OS 在 `/boot/firmware/config.txt`中包含一行启用此设置的内容。

启用后,固件将自动为识别到的 DSI 显示器加载设备树。

要禁用,请设置 display_auto_detect=0

dtoverlay

dtoverlay选项请求固件加载一个命名的设备树overlay — 一个可以启用内核对内置和外部硬件支持的配置文件。例如, dtoverlay=vc4-kms-v3d 加载一个启用内核图形驱动程序的设备树文件。

作为一种特殊情况,如果不带值调用 - dtoverlay= - 该选项将标记覆盖参数列表的结束。如果在任何其他 dtoverlaydtparam 设置之前使用,它会阻止加载任何HAT overlay。

有关更多详细信息,请参阅 DTBs, overlays and config.txt

dtparam

Raspberry Pis的设备树配置文件支持许多参数,例如启用I2C和SPI接口。许多DT overlay可以通过使用参数进行配置。这两种类型的参数都可以使用 dtparam 设置提供。此外,overlay参数可以附加到 dtoverlay 选项中,用逗号分隔,但请记住行长限制为98个字符。

有关更多详细信息,请参阅 DTBs, overlays and config.txt

arm_boost

注意:此选项仅适用于包含两相供电的 Raspberry Pi 4B 后续版本,以及 Pi 400 的所有版本。

默认情况下,Raspberry Pi OS 在 /boot/firmware/config.txt 中包含一行,可在支持的设备上启用此设置。

某些 Raspberry Pi 设备为 SoC 电压轨配备了第二个开关模式电源。启用后,默认的涡轮模式时钟频率将从 1.5GHz 增至 1.8GHz。

要禁用,请设置 arm_boost=0

power_force_3v3_pwm

Note
该选项仅适用于 Raspberry Pi 5、Compute Module 5 和 Pi 500。

强制从 GPIO 针座或 CSI 连接器输出 3.3V 电压的 PWM。

若要禁用,请设置 power_force_3v3_pwm=0

板载模拟音频(3.5mm插孔)

板载音频输出使用配置选项来更改模拟音频的驱动方式,以及是否启用某些固件功能。

audio_pwm_mode

audio_pwm_mode=1 从3.5毫米音频插孔中选择传统的低质量模拟音频。

audio_pwm_mode=2 (默认值)使用高级调制方案选择高质量模拟音频。

Note
此选项使用更多GPU计算资源,并且可能会干扰某些模型上的某些用例。

disable_audio_dither

默认情况下,如果音频流被路由到模拟音频输出,则会对音频流应用1.0LSB抖动。这可能会在某些情况下产生可听的背景嘶嘶声,例如当ALSA音量设置为低电平时。将 disable_audio_dither 设置为 1 以禁用抖动应用。

enable_audio_dither

当音频样本大于16位时,音频抖动(见上disable_audio_dither)通常被禁用。将此选项设置为 1 以强制对所有位深度使用抖动。

pwm_sample_bits

pwm_sample_bits 命令调整模拟音频输出的位深。默认位深为 11 。选择低于 8 的位深将导致音频不起作用,因为低于 8 的设置会导致PLL频率过低而无法支持。这通常仅用于演示位深如何影响量化噪声。

HDMI音频

默认情况下,所有具有HDMI输出的Raspberry Pi型号都启用HDMI音频输出。

要禁用 HDMI 音频输出,请在 /boot/firmware/config.txt 中的 dtoverlay=vc4-kms-v3d 行末尾添加 ,noaudio

dtoverlay=vc4-kms-v3d,noaudio

启动选项

start_filefixup_file

这些选项指定在引导之前传输到VideoCore GPU的固件文件。

start_file 指定要使用的VideoCore固件文件。 fixup_file 指定用于修复start_file中使用的内存位置以匹配GPU内存拆分的文件。

start_filefixup_file 是匹配的一对 - 使用不匹配的文件导致板子无法启动。这是一个高级选项,因此我们建议您使用 start_xstart_debug 而不是此选项。

Note
不能以这种方式选择削减固件( start*cd.elffixup*cd.dat )- 系统将无法启动。启用削减固件的唯一方法是指定 gpu_mem=16 。削减固件删除了对编解码器、3D和调试日志记录的支持,并将初始早期启动帧缓冲区限制为1080p @16bpp - 尽管KMS可以在稍后阶段用32bpp 4K帧缓冲区替换它,就像任何固件一样。
Note
Raspberry Pi 5, Compute Module 5, 和Raspberry Pi 500固件独立于引导加载程序EEPROM中。

cmdline

cmdline 是引导分区上用于读取内核命令行字符串的替代文件名;默认值为 cmdline.txt

kernel

kernel 是引导分区上用于加载内核的替代文件名。Raspberry Pi 1、Zero和Zero W以及Raspberry Pi Compute Module 1的默认值为 kernel.img 。Raspberry Pi 2、3、3+和Zero 2 W以及Raspberry Pi Compute Module 3和3+的默认值为 kernel7.img 。Raspberry Pi 4和400以及Raspberry Pi Compute Module 4的默认值为 kernel8.img ,如果 arm_64bit 设置为0,则为 kernel7l.img

Raspberry Pi 5, Compute Module 5, 和Raspberry Pi 500固件默认加载 kernel_2712.img ,因为此映像包含特定于Raspberry Pi 5的优化(例如16K页面大小)。如果此文件不存在,则将加载通用64位内核( kernel8.img )。

arm_64bit

如果设置为1,内核将以64位模式启动。设置为0选择32位模式。

在64位模式下,固件将选择适当的内核(例如 kernel8.img ),除非定义了显式的 kernel 选项,在这种情况下使用该选项。

在Pi 4系列(Pi4B、Pi 400、CM4和CM4S)上默认为1,在所有其他平台上默认为0。但是,如果显式 kernel 选项中给出的名称与已知内核之一匹配,则将相应地设置 arm_64bit

64 位内核有以下几种形式:

  • 未压缩的映像文件

  • 映像的 gzip 压缩包

这两种形式都可以使用 img 文件扩展名;引导加载程序使用文件开头的签名字节识别存档。

以下 Raspberry Pi 型号支持此标记:

  • 2B rev 1.2

  • 3B

  • 3A+

  • 3B+

  • 4B

  • 400

  • 2 W

  • 计算模块 3

  • 计算模块 3+

  • 计算模块 4

  • 计算模块 4S

从 Raspberry Pi 5, Compute Module 5, 和Raspberry Pi 500 以后的型号 支持 64 位内核。这些型号不支持此标记。

ramfsfile

ramfsfile 是要加载的 ramfs 的引导分区上的可选文件名。

Note
较新的固件支持加载多个 ramfs 文件。您应该用逗号分隔多个文件名,注意不要超过80个字符的行长限制。所有加载的文件都在内存中连接起来,并被视为单个 ramfs blob。更多信息在 论坛上

ramfsaddr

ramfsaddr 是应该加载 ramfsfile 的内存地址。

initramfs

initramfs 命令同时指定了 ramfs 文件名*和*内存地址。它在一个参数中同时执行 ramfsfileramfsaddr 的操作。地址也可以是 followkernel (或 0 ),以便将其放在内核映像之后的内存中。示例值如下 initramfs initramf.gz 0x00800000initramfs init.gz followkernel。与 ramfsfile 一样,较新的固件允许通过逗号分隔多个文件名来加载多个文件。

Note
此选项使用与所有其他选项不同的语法,您不应在此处使用 = 字符。

auto_initramfs

如果 auto_initramfs 设置为1,则使用与内核选择相同的规则查找initramfs文件。

disable_poe_fan

默认情况下,即使没有连接 PoE HAT,也会在启动时对 I2C 总线进行探测。将该选项设置为 1 将禁止通过 I2C(ID_SD 和 ID_SC)引脚控制 PoE HAT 风扇。如果不打算使用 PoE HAT,这将有助于缩短启动时间。

disable_splash

如果将 disable_splash 设置为 1 ,则启动时不会显示彩虹闪屏。默认值为 0

enable_uart

enable_uart=1 (与 cmdline.txt 中的 console=serial0,115200 结合使用)要求内核创建一个串行控制台,可通过 GPIO 14 和 15(40 针接头的针脚 8 和 10)访问。编辑 cmdline.txt ,删除 quiet 行后,内核的启动信息也会出现在该行。另请参阅 uart_2ndstage

force_eeprom_read

将该选项设为 0 ,可防止固件在上电时尝试读取 I2C HAT EEPROM(连接到引脚 ID_SD 和 ID_SC)。另请参阅 disable_poe_fan

os_prefix

os_prefix 是一个可选设置,允许在同一卡上安装的多个版本的内核和设备树文件之间进行选择。操作系统文件 "指的是内核、initramfs、cmdline.txt、.dtbs 和 overlays。前缀通常是目录名,但也可以是文件名的一部分,如 "test-"。因此,目录前缀必须包括尾部的 / 字符。

为了减少系统无法启动的可能性,固件首先测试提供的前缀值的可行性 — 除非在新位置/名称处可以找到指定的内核和.dtb,否则前缀将被忽略(设置为"")。这种可行性测试的一个特殊情况应用于覆盖,如果 ${os_prefix}${overlay_prefix} 存在,它只会从 ${os_prefix}${overlay_prefix}README 加载(其中[overlay_prefix, overlay_prefix ]的默认值是 覆盖/ ),否则它会忽略 os_prefix 并将覆盖视为共享。

(固件在检查前缀时检查密钥文件而不是目录的存在的原因有两个:前缀可能不是目录,并且并非所有引导方法都支持测试目录的存在。)

Note
任何用户指定的操作系统文件都可以通过使用绝对路径(相对于引导分区)绕过所有前缀 - 只需使用 kernel=/my_common_kernel.img

另请参见 overlay_prefix upstream_kernel

otg_mode (仅限Raspberry Pi 4)

USB On-The-Go(通常缩写为OTG)是一项功能,允许支持带有适当OTG电缆的USB设备将自己配置为USB主机。在较旧的Raspberry Pi上,一个USB 2控制器用于USB主机和设备模式。

旗舰产品从Raspberry Pi 4B 和 键盘系列产品从 Raspberry Pi 400(不是CM4或CM4IO)以后添加了一个高性能USB 3控制器,通过PCIe连接,以驱动主USB端口。传统的USB 2控制器仍然可以在USB-C电源连接器上用作设备( otg_mode=0 ,默认值)。

otg_mode=1 请求将功能更强大的XHCI USB 2控制器用作该USB-C连接器上的可以替换的主机控制器。

Note
Raspberry Pi OS 在 `/boot/firmware/config.txt`中的[CM4]配置中已经默认添加此设置。

overlay_prefix

指定加载overlays的子目录/前缀,默认为 overlays/ (注意尾部的 / )。如果与 os_prefix 结合使用, os_prefix 将位于 overlay_prefix 之前,例如, dtoverlay=disable-bt 将尝试加载 ${os_prefix}${overlay_prefix}disable-bt.dtbo

Note
除非存在 ${os_prefix}${overlay_prefix}README ,否则overlays将与主操作系统共享(即忽略 os_prefix )。

配置属性

Raspberry Pi 5 需要一个 config.txt 文件,以表明分区是可启动的。

boot_ramdisk

如果该属性设置为 1,则引导加载程序将尝试加载一个名为 boot.img 的内存盘文件,其中包含 boot filesystem。随后的文件(如 start4.elf)将从内存盘读取,而不是原始启动文件系统。

boot_ramdisk 的主要用途是支持 安全启动,不过,未签名的 boot.img 文件对网络启动或 RPIBOOT 配置也很有用。

  • ramdisk 文件的最大大小为 96MB。

  • boot.img 文件是原始磁盘 .img 文件。建议使用无 MBR 的普通 FAT32 分区格式。

  • 在操作系统启动之前,ramdisk 文件系统的内存会被释放。

  • 如果选择 TRYBOOT,引导加载程序将搜索 tryboot.img 而不是 boot.img

  • 另请参阅 autoboot.txt

有关 secure-boot 和创建 boot.img 文件的更多信息,请参阅 USBBOOT.

Default: 0

boot_load_flags

自定义固件(裸机)的实验属性。

位 0 (0x1) 表示 .elf 文件是定制固件。这将禁用任何兼容性检查(例如,是否支持 USB MSD 启动),并在启动可执行文件前重置 PCIe。

与 Raspberry Pi 5 无关,因为没有 start.elf 文件。

Default: 0x0

enable_rp1_uart

设置为 1 时,固件会将 RP1 UART0 初始化为 115200bps,并且在启动操作系统前不会复位 RP1(可使用 pciex4_reset=1 单独配置)。 这使得在早期启动代码(例如在裸机调试期间)中更容易在 40 针针座上获得 UART 输出。

Default: 0x0

pciex4_reset

仅限 Raspberry Pi 5。

默认情况下,RP1 使用的 PCIe x4 控制器会在启动操作系统前复位。如果将该参数设置为 0,则重置将被禁用,操作系统或裸机代码可从引导加载程序继承 PCIe 配置设置。

Default: 1

uart_2ndstage

如果 uart_2ndstage1,则启用 UART 的调试记录。该选项也会在 start.elf 中自动启用 UART 日志记录。Boot options 页面对此也有说明。

BOOT_UART "属性也会启用引导加载器 UART 日志,但除非同时设置了 uart_2ndstage=1,否则不会在 start.elf 中启用 UART 日志。

Default: 0

erase_eeprom

如果 erase_eeprom 设置为 1,那么 recovery.bin 将擦除整个 SPI EEPROM,而不是烧录引导程序映像。此属性对正常启动没有影响。

Default: 0

eeprom_write_protect

配置 EEPROM 写入状态寄存器。可将其设置为将整个 EEPROM 标记为写保护,或清除写保护。

该选项必须与控制 EEPROM 写状态寄存器 更新的 EEPROM /WP 引脚结合使用。 除非同时配置了 写入状态寄存器,否则将 /WP 拉低(CM4 的 EEPROM_nWP 或 Raspberry Pi 4 的 TP5)不会对 EEPROM 进行写保护。

详情请参见 Winbond W25x40clWinbond W25Q16JV datasheet。

recovery.binconfig.txt 中的 eeprom_write_protect 设置。

Value Description

1

配置写保护区域以覆盖整个 EEPROM。

0

清除写保护区域。

-1

什么也不做

Note
flashrom 不支持清除写保护区域,如果定义了写保护区域,将无法更新 EEPROM。

在 Raspberry Pi 5 上,/WP 默认为低电平,因此一旦配置了 写状态寄存器,就会启用写保护。要清除写保护,可通过连接 TP14TP1/WP 拉高。

Default: -1

os_check

在 Raspberry Pi 5 上,固件会自动检查兼容的设备树文件,然后再尝试从当前分区启动。否则,不兼容的旧内核将被加载,然后挂起。 要禁用此检查(例如用于裸机开发),请在 config.txt 中设置 os_check=0

Default: 1

bootloader_update

该选项可设置为 0,以阻止自更新,而无需更新 EEPROM 配置。在通过网络启动更新多个 Raspberry Pi 时,该选项有时非常有用,因为可以对每个 Raspberry Pi 进行控制(例如,通过 config.txt 中的序列号过滤器)。

Default: 1

Secure Boot configuration properties

如何使用 Raspberry Pi 安全启动

本白皮书介绍如何在基于 Raspberry Pi 4 的设备上实现安全启动。有关我们实现安全启动实施方法的概述,请参阅 Raspberry Pi 4 Boot Security 白皮书。安全启动系统适用于基于 buildroot 的操作系统镜像;不建议或不支持将其用于 Raspberry Pi OS。

下面的 config.txt 属性用于对 secure-boot OTP 设置进行编程。这些更改是不可逆的,只能在刷新引导加载程序 EEPROM 映像时通过 RPIBOOT 进行编程。这可确保 "安全启动 "无法通过远程或意外插入过期 SD 卡映像进行设置。

有关启用 secure-boot 的更多信息,请参阅 USBBOOT repo 中的 Secure Boot readmeSecure Boot tutorial

program_pubkey

如果该属性设置为 1,那么 recovery.bin 将把 EEPROM 映像中公钥的哈希值写入 OTP。 设置后,引导加载程序将拒绝使用不同 RSA 密钥签名的 EEPROM 映像或未签名的映像。

Default: 0

revoke_devkey

如果该属性设置为 1recovery.bin 将向 OTP 写入一个值,防止 ROM 加载不支持 安全启动 的旧版本第二阶段引导加载程序。这可以防止通过恢复到旧版本的引导加载程序来关闭 secure-boot

Default: 0

program_rpiboot_gpio

计算模块有一个专用的 nRPIBOOT 跳线,用于选择 RPIBOOT 模式。带有 EEPROM 的旗舰版和键盘版 Raspberry Pi 设备没有专用的 nRPIBOOT 跳线。要在旗舰版和键盘版设备上选择 RPIBOOT 模式,请将下列 GPIO 引脚之一拉低:

  • 2

  • 4

  • 5

  • 6

  • 7

  • 8

该属性不依赖于`secure-boot`,但要确认该 GPIO 配置不会与任何可能在启动期间将 GPIO 拉低的 HAT 冲突。

为了安全起见,只能通过 RPIBOOT 对该属性进行编程,因此必须首先使用 erase_eeprom 清除引导加载程序 EEPROM。这将导致 BCM2711 ROM 故障切换到 RPIBOOT 模式,从而允许设置该选项。

在 BCM2712 上,您也可以通过按住电源按钮并同时连接 USB-C 电源来强制启动 RPIBOOT 模式。

Default:  

program_jtag_lock

如果该属性设置为 1,则 recovery.bin`将编程一个 OTP 值,阻止使用 VideoCore JTAG。该选项要求同时设置 `program_pubkeyrevoke_devkey。该选项可能会阻止故障分析,只有在设备经过全面测试后才可设置。

Default: 0

GPIO控制

gpio

通过 gpio 指令,可以在启动时将 GPIO 引脚设置为特定模式和值,而以前需要自定义 dt-blob.bin 文件。每一行都对一组引脚应用相同的设置(或至少进行相同的更改),可以是单个引脚(3)、引脚范围(3-4)或以逗号分隔的列表(3-4,6,8)。 引脚集后面跟一个 = 和一个或多个以逗号分隔的属性:

  • ip - 输入

  • op - 输出

  • a0-a5 - Alt0-Alt5

  • dh - 驱动高电平(用于输出)

  • dl - 驱动低电平(用于输出)

  • pu - 上拉

  • pd - 下拉

  • pn/np - 没有上拉或下拉

gpio 设置按顺序应用,因此后面出现的设置会覆盖之前出现的设置。

例子:

# 为GPIO引脚0到27选择Alt2(对于DPI24)
gpio=0-27=a2

# 将GPIO12设置为输出设置为1
gpio=12=op,dh

# 改变拉动(输入)引脚18和20
gpio=18,20=pu

# 设置引脚17到21为输入
gpio=17-21=ip

gpio 指令受控于 config.txt 中的 […​] 条件筛选器,因此可以根据型号、序列号和 EDID 使用不同的设置。

通过这种机制进行的 GPIO 更改不会对内核产生任何直接影响。它们不会导致 GPIO 引脚被导出到 sysfs 接口,而且可以被设备树中的 pinctrl 条目以及 pinctrl 等实用程序覆盖。

还需注意的是,从接通电源到更改生效之间会有几秒钟的延迟,如果通过网络或 USB 大容量存储设备启动,延迟时间会更长。

超频选项

内核有一个 CPUFreq驱动程序,默认情况下启用省电调速器,当安装 raspi-config 时,在启动过程中切换为按需调速器。使用按需调速器后,CPU 频率将随处理器负载而变化。您可以使用 *_min 配置选项调整最小值,或通过应用静态缩放调速器(powersave 或 performance)或 force_turbo=1 来禁用动态时钟。

当 SoC 达到 temp_limit(见下文)(默认值为 85°C)时,超频和过压将在运行时被禁用,以降低 SoC 的发热量。Raspberry Pi 1 和 Raspberry Pi 2 应该不会达到这一上限,但 Raspberry Pi 3 及更新版本则更有可能达到这一上限。当检测到电压不足时,超频和过压也会被禁用。

Warning
将任何超频参数设置为 raspi-config所用值以外的值,可能会在 SoC 内设置一个永久位。这样就有可能检测到你的 Raspberry Pi 曾经超频。当 force_turbo 设置为 1,并且任何 over_voltage_* 选项设置为 0 以上时,超频位就会设置。更多信息,请参阅 关于 Turbo 模式的博文

超频

Option Description

arm_freq

Frequency of the ARM CPU in MHz.

arm_boost

Increases arm_freq to the highest supported frequency for the board-type and firmware. Set to 1 to enable.

gpu_freq

Sets core_freq, h264_freq, isp_freq, v3d_freq and hevc_freq together.

core_freq

Frequency of the GPU processor core in MHz. Influences CPU performance because it drives the L2 cache and memory bus; the L2 cache benefits only Raspberry Pi Zero/Raspberry Pi Zero W/Raspberry Pi 1; and there is a small benefit for SDRAM on Raspberry Pi 2 and Raspberry Pi 3. See section below for use on Raspberry Pi 4.

h264_freq

Frequency of the hardware video block in MHz; individual override of the gpu_freq setting.

isp_freq

Frequency of the image sensor pipeline block in MHz; individual override of the gpu_freq setting.

v3d_freq

Frequency of the 3D block in MHz; individual override of the gpu_freq setting. On Raspberry Pi 5, V3D is independent of core_freq, isp_freq and hevc_freq.

hevc_freq

Frequency of the High Efficiency Video Codec block in MHz; individual override of the gpu_freq setting. Raspberry Pi 4 only.

sdram_freq

Frequency of the SDRAM in MHz. SDRAM overclocking on Raspberry Pi 4 or newer is not supported.

over_voltage

CPU/GPU core upper voltage limit. The value should be in the range [-16,8] which equates to the range [0.95V,1.55V] ([0.8,1.4V] on Raspberry Pi 1) with 0.025V steps. In other words, specifying -16 will give 0.95V (0.8V on Raspberry Pi 1) as the maximum CPU/GPU core voltage, and specifying 8 will allow up to 1.55V (1.4V on Raspberry Pi 1). For defaults, see the table below. Values above 6 are only allowed when force_turbo=1 is specified: this sets the warranty bit if over_voltage_* > 0 is also set.

over_voltage_sdram

Sets over_voltage_sdram_c, over_voltage_sdram_i, and over_voltage_sdram_p together.

over_voltage_sdram_c

SDRAM controller voltage adjustment. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Not supported on Raspberry Pi 4 or later devices.

over_voltage_sdram_i

SDRAM I/O voltage adjustment. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Not supported on Raspberry Pi 4 or later devices.

over_voltage_sdram_p

SDRAM phy voltage adjustment. [-16,8] equates to [0.8V,1.4V] with 0.025V steps. Not supported on Raspberry Pi 4 or later devices.

force_turbo

Forces turbo mode frequencies even when the ARM cores are not busy. Enabling this may set the warranty bit if over_voltage_* is also set.

initial_turbo

Enables turbo mode from boot for the given value in seconds, or until cpufreq sets a frequency. The maximum value is 60. The November 2024 firmware update made the following changes:

* changed the default from 0 to 60 to reduce boot time * switched the kernel CPU performance governor from powersave to ondemand

arm_freq_min

Minimum value of arm_freq used for dynamic frequency clocking. Note that reducing this value below the default does not result in any significant power savings, and is not currently supported.

core_freq_min

Minimum value of core_freq used for dynamic frequency clocking.

gpu_freq_min

Minimum value of gpu_freq used for dynamic frequency clocking.

h264_freq_min

Minimum value of h264_freq used for dynamic frequency clocking.

isp_freq_min

Minimum value of isp_freq used for dynamic frequency clocking.

v3d_freq_min

Minimum value of v3d_freq used for dynamic frequency clocking.

hevc_freq_min

Minimum value of hevc_freq used for dynamic frequency clocking.

sdram_freq_min

Minimum value of sdram_freq used for dynamic frequency clocking.

over_voltage_min

Minimum value of over_voltage used for dynamic frequency clocking. The value should be in the range [-16,8] which equates to the range [0.8V,1.4V] with 0.025V steps. In other words, specifying -16 will give 0.8V as the CPU/GPU core idle voltage, and specifying 8 will give a minimum of 1.4V. This setting is deprecated on Raspberry Pi 4 and Raspberry Pi 5.

over_voltage_delta

On Raspberry Pi 4 and Raspberry Pi 5 the over_voltage_delta parameter adds the given offset in microvolts to the number calculated by the DVFS algorithm.

temp_limit

Overheat protection. This sets the clocks and voltages to default when the SoC reaches this value in degree Celsius. Values over 85 are clamped to 85.

temp_soft_limit

3A+/3B+ only. CPU speed throttle control. This sets the temperature at which the CPU clock speed throttling system activates. At this temperature, the clock speed is reduced from 1400MHz to 1200MHz. Defaults to 60, can be raised to a maximum of 70, but this may cause instability.

此表给出了各种Raspberry Pi型号选项的默认值,所有频率均以MHz表示。

Option Pi 0/W Pi1 Pi2 Pi3 Pi3A+/Pi3B+ CM4 & Pi4B ⇐ R1.3 Pi4B R1.4 Pi 400 Pi Zero 2 W Pi 5

arm_freq

1000

700

900

1200

1400

1500

1500 or 1800 if arm_boost=1

1800

1000

2400

core_freq

400

250

250

400

400

500

500

500

400

910

h264_freq

300

250

250

400

400

500

500

500

300

N/A

isp_freq

300

250

250

400

400

500

500

500

300

910

v3d_freq

300

250

250

400

400

500

500

500

300

910

hevc_freq

N/A

N/A

N/A

N/A

N/A

500

500

500

N/A

910

sdram_freq

450

400

450

450

500

3200

3200

3200

450

4267

arm_freq_min

700

700

600

600

600

600

600

600

600

1500

core_freq_min

250

250

250

250

250

200

200

200

250

500

gpu_freq_min

250

250

250

250

250

250

250

250

250

500

h264_freq_min

250

250

250

250

250

250

250

250

250

N/A

isp_freq_min

250

250

250

250

250

250

250

250

250

500

v3d_freq_min

250

250

250

250

250

250

250

250

250

500

sdram_freq_min

400

400

400

400

400

3200

3200

3200

400

4267

此表给出了所有模型中相同的选项的默认值。

Option Default

initial_turbo

0 (seconds)

temp_limit

85 (°C)

over_voltage

0 (1.35V, 1.2V on Raspberry Pi 1)

over_voltage_min

0 (1.2V)

over_voltage_sdram

0 (1.2V)

over_voltage_sdram_c

0 (1.2V)

over_voltage_sdram_i

0 (1.2V)

over_voltage_sdram_p

0 (1.2V)

固件使用自适应电压缩放(AVS)来确定由 over_voltageover_voltage_min 定义的范围内的最佳CPU/GPU内核电压。

特定于Raspberry Pi 4、Raspberry Pi 400和CM4

系统空闲时的最小核心频率必须足够快,以支持显示器的最高像素时钟(忽略消隐)。因此,如果显示模式为4Kp60, core_freq 将被提升到500 MHz以上。

Display option Max core_freq

Default

500

hdmi_enable_4kp60

550

Note
从 Raspberry Pi 5、CM5、Pi 500后无需添加 hdmi_enable_4kp60,因为默认支持双 4Kp60 显示器。
  • 超频需要最新的固件版本。

  • 如果系统超频,最新固件会自动放大电压。手动设置 over_voltage 会禁用超频的自动电压缩放。

  • 超频时建议使用单独的频率设置( isp_freqv3d_freq 等)而不是 gpu_freq ,因为ISP、V3D、HEVC等的最大稳定频率会有所不同。

  • SDRAM频率无法在Raspberry Pi 4或更高版本的设备上配置。

force_turbo

force_turbo=1 会覆盖此行为并强制设置最高频率,即使在ARM内核不忙的情况下也是如此。

时钟关系

Raspberry Pi 4

GPU内核、CPU、SDRAM和GPU都有自己的PLL,并且可以有不相关的频率。h264、v3d和ISP块共享一个PLL。

要查看树莓派的当前频率(以KHz为单位),请键入: cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 。将结果除以1000以找到以MHz为单位的值。请注意,该频率是内核_requested_频率,任何节流(例如在高温下)都可能意味着CPU实际上运行得比报告的要慢。可以使用 vcgencmd measure_clockarm 检索实际ARM CPU频率的瞬时测量值。这以赫兹显示。

监测核心温度

冷却树莓派设备

本白皮书介绍了Raspberry Pi可能变热的原因以及您可能希望将其冷却下来的原因,并提供了冷却过程的选项。

要查看 Raspberry Pi 的温度,请运行以下命令:

$ cat /sys/class/thermal/thermal_zone0/temp

将结果除以 1000 即可得出以摄氏度为单位的数值。或者,您也可以使用 vcgencmd measure_temp 来报告 GPU 温度。

达到温度上限不会对 SoC 造成伤害,但会导致 CPU 节流。散热器有助于控制核心温度,从而提高性能。如果 Raspberry Pi 在机箱内运行,这一点尤其有用。散热片上的气流可提高冷却效率。

达到温度限制不会损坏SoC,但会导致CPU节流。散热器有助于控制核心温度,从而控制性能。如果Raspberry Pi在机箱内运行,这尤其有用。散热器上的气流可以提高冷却效率。

当内核温度在80°C到85°C之间时,ARM内核将被限制。如果温度超过85°C,ARM内核和GPU将被限制。

对于Raspberry Pi 3 Model B+,PCB技术进行了更改,以提供更好的散热和增加的热质量。此外,还引入了软温度限制,目标是最大限度地延长设备在达到85°C的硬限制之前可以 冲刺 的时间。当达到软限制时,时钟速度从1.4GHz降低到1.2GHz,工作电压略有降低。这降低了温度上升的速度:我们将1.4GHz的短周期换成1.2GHz的较长周期。默认情况下,软限制为60°C。这可以通过 config.txt 中的 temp_soft_limit 设置进行更改。

监控电压

保持电源电压在4.8V以上对可靠性能至关重要。请注意,某些USB充电器/电源的电压可能低至4.2V。这是因为它们通常设计用于为3.7V锂电池充电,而不是为计算机提供5V。

要监控Raspberry Pi的PSU电压,您需要使用万用表来测量GPIO上的VCC和GND引脚之间的电压。更多信息可在文档的 电源 部分获得。

如果电压降至4.63V(±5%)以下,ARM内核和GPU将被限制,并将指示低压状态的消息添加到内核日志中。

Raspberry Pi 5 PMIC 内置 ADC,可以测量电源电压。要查看当前电源电压,请运行以下命令:

$ vcgencmd pmic_read_adc EXT5V_V

超频问题

大多数超频问题会在设备无法启动时立即显现。如果由于超频配置更改导致设备无法启动,请使用以下步骤将设备恢复到可启动状态:

  1. 删除 config.txt 中的所有时钟频率的设备树。

  2. 使用 over_voltage_delta 提高核心电压。

  3. 重新应用超频参数,注意避免之前已知的异常超频参数。

条件过滤器

当将单个 SD 卡(或卡图像)与一个 Raspberry Pi 和一个显示器一起使用时,很容易根据特定组合的要求来设置 config.txt 并保持这种状态,仅在发生变化时进行修改。

但是,如果在不同的显示器之间交换一个 Raspberry Pi,或者在多个板之间交换 SD 卡(或卡图像),则一组设置可能不再足够。条件过滤器允许您定义配置文件的某些部分仅在特定情况下使用,从而允许单个 config.txt 在由不同硬件读取时创建不同的配置。

[all] 过滤器

[all] 过滤器是最基本的过滤器。它会重置所有先前设置的过滤器,并允许将其下方列出的任何设置应用于所有硬件。通常,在过滤设置组的末尾添加一个 [all] 过滤器是个好主意,以避免无意中组合过滤器(见下文)。

型号过滤器

条件型号过滤器根据下表应用。

Filter Applicable model(s)

[pi1]

Model 1A, Model 1B, Model 1A+, Model 1B+, Compute Module 1

[pi2]

Model 2B (BCM2836- or BCM2837-based)

[pi3]

Model 3B, Model 3B+, Model 3A+, Compute Module 3, Compute Module 3+

[pi3+]

Model 3A+, Model 3B+ (also sees [pi3] contents)

[pi4]

Model 4B, Pi 400, Compute Module 4, Compute Module 4S

[pi5]

Raspberry Pi 5, Compute Module 5, Pi 500

[pi400]

Pi 400 (also sees [pi4] contents)

[pi500]

Pi 500 (also sees [pi5] contents)

[cm1]

Compute Module 1 (also sees [pi1] contents)

[cm3]

Compute Module 3 (also sees [pi3] contents)

[cm3+]

Compute Module 3+ (also sees [pi3+] contents)

[cm4]

Compute Module 4 (also sees [pi4] contents)

[cm4s]

Compute Module 4S (also sees [pi4] contents)

[cm5]

Compute Module 5 (also sees [pi5] contents)

[pi0]

Zero, Zero W, Zero 2 W

[pi0w]

Zero W (also sees [pi0] contents)

[pi02]

Zero 2 W (also sees [pi0w] and [pi0] contents)

[board-type=Type]

Filter by Type number - see Raspberry Pi Revision Codes E.g [board-type=0x14] would match CM4.

这些对于定义不同的 kernelinitramfscmdline 设置特别有用,因为 Raspberry Pi 1 和 Raspberry Pi 2 需要不同的内核。它们还可用于定义不同的超频设置,因为 Raspberry Pi 1 和 Raspberry Pi 2 具有不同的默认速度。例如,为每个设置定义单独的 initramfs 映像:

[pi1]
initramfs initrd.img-3.18.7+ followkernel
[pi2]
initramfs initrd.img-3.18.7-v7+ followkernel
[all]

请记住在最后使用 [all] 过滤器,以便任何后续设置不仅限于 Raspberry Pi 2 硬件。

Note

某些型号的 Raspberry Pi(包括 Zero、计算模块和键盘型号)可从多个过滤器读取设置。要将设置只应用于一种型号,可采用以下方法

  • 将设置应用于基本型号(例如 [pi4]),然后将设置还原到读取基本型号过滤器的所有型号(例如 [pi400][cm4][cm4s])。

  • 使用带有修订代码的 board-type 过滤器来针对单个型号(例如 [board-type=0x11])。

[none] 过滤器

[none] 过滤器可防止任何后续设置应用于任何硬件。虽然没有 [none] 什么都做不了,但它是一种有用的方法,可以将未使用的设置组保留在 config.txt 中,而不必注释掉每一行。

[tryboot] 过滤器

如果设置了 tryboot 重新启动标志,此过滤器将成功。

它旨在用于 autoboot.txt 中,以在 tryboot 模式下选择不同的 boot_partition 进行故障安全操作系统更新。

[EDID=*] 过滤器

当在 Raspberry Pi 中使用单个 SD 卡在多个显示器之间切换时,如果空白配置不足以自动为每个显示器选择所需的分辨率,则允许根据显示器的 EDID 名称选择特定设置。

要查看所连接显示器的 EDID 名称,您需要按照几个步骤操作。运行以下命令查看 Raspberry Pi 上有哪些输出设备:

$ ls -1 /sys/class/drm/card?-HDMI-A-?/edid

在 Raspberry Pi 4 上,这将打印类似以下内容:

/sys/class/drm/card1-HDMI-A-1/edid
/sys/class/drm/card1-HDMI-A-2/edid

然后,您需要针对每个文件名运行 edid-decode ,例如:

$ edid-decode /sys/class/drm/card1-HDMI-A-1/edid

如果没有显示器连接到特定的输出设备,它就会告诉你 EDID 是空的;否则,它就会为你提供有关显示器功能的信息。您需要查找指定 制造商显示器产品名称 的行。"EDID 名称" 为 <制造商>-<显示器产品名称> ,字符串中的空格用下划线代替。例如,如果您的 edid-decode 输出包括:

....
  Vendor & Product Identification:
    Manufacturer: DEL
....
    Display Product Name: 'DELL U2422H'
....

此监视器的EDID名称为 DEL-DELL_U2422H

然后,您可以将其用作条件过滤器来指定仅在连接此特定监视器时使用的设置:

[EDID=DEL-DELL_U2422H]
cmdline=cmdline_U2422H.txt
[all]

这些设置仅在启动时适用。显示器必须在启动时连接,Raspberry Pi必须能够读取其EDID信息以找到正确的名称。启动后将不同的显示器热插到Raspberry Pi不会选择不同的设置。

在Raspberry Pi 4上,如果两个HDMI端口都在使用中,则将针对它们两个检查EDID过滤器,并应用所有匹配条件过滤器的配置。

Note
此设置在Raspberry Pi 5上不可用。

序列号过滤器

有时设置应该只应用于单个特定的Raspberry Pi,即使您将SD卡交换到不同的SD卡。示例包括许可证密钥和超频设置(尽管许可证密钥已经以不同的方式支持SD卡交换)。您还可以使用它来选择不同的显示设置,即使上面的EDID标识是不可能的,只要您不在Raspberry Pi之间交换显示器。例如,如果您的显示器不提供可用的EDID名称,或者如果您使用复合输出(无法从中读取EDID)。

要查看Raspberry Pi的序列号,请运行以下命令:

cat /proc/cpuinfo

一个16位十六进制值将显示在输出底部附近。您的Raspberry Pi序列号是最后八位十六进制数字。例如,如果您看到:

Serial          : 0000000012345678

序列号是 12345678

Note
在某些Raspberry Pi型号上,前8个十六进制数字包含 0 以外的值。即使在这种情况下,也只使用最后八个十六进制数字作为序列号。

您可以定义仅应用于此特定Raspberry Pi的设置:

[0x12345678]
# settings here are applied only to the Raspberry Pi with this serial
[all]
# settings here are applied to all hardware

GPIO过滤器

您还可以根据GPIO的状态进行过滤。例如:

[gpio4=1]
#如果GPIO 4为高,则应用此处的设置

[gpio2=0]
#如果GPIO 2低,则应用此处的设置

[all]
#这里的设置适用于所有硬件

组合条件过滤器

相同类型的过滤器会相互替换,因此 [pi2] 会覆盖 [pi1] ,因为两者不可能同时为真。

不同类型的过滤器可以通过一个接一个地列出来组合,例如:

# 这里的设置适用于所有硬件
[EDID=VSC-TD2220]
# 仅当连接了监视器VSC-TD2220时才应用此处的设置
[pi2]
# 仅当监视器VSC-TD2220连接*和*在Raspberry Pi 2上时才应用此处的设置

 [all]
# 这里的设置适用于所有硬件

使用 [all] 过滤器重置所有以前的过滤器并避免无意中组合不同的过滤器类型。

内存选项

total_mem

此参数可用于强制Raspberry Pi限制其内存容量:指定您希望Raspberry Pi使用的RAM总量(以兆字节为单位)。例如,要使4GB Raspberry Pi4B表现为1GB型号,请使用以下命令:

total_mem=1024

该值的最小值为 128MB,最大值为电路板上安装的内存大小。

许可证密钥和编解码器选项

通过锁定到 Raspberry Pi 的CPU序列号的 购买许可证,可以启用Raspberry Pi 3和更早型号上的附加编解码器的硬件解码。

树莓派4永久禁用了MPEG2和VC1的硬件解码器。这些编解码器无法启用,因此不需要硬件编解码器许可证密钥。MPEG2和VC1文件的软件解码在典型用例中表现良好。

Raspberry Pi 5具有H.265(HEVC)硬解。默认情况下启用此解码,因此不需要硬件编解码器许可证密钥。

decode_MPG2

decode_MPG2 是允许硬件MPEG-2解码的许可证密钥,例如 decode_MPG2=0x12345678

decode_WVC1

decode_WVC1是允许硬件VC-1解码的许可证密钥,例如decode_WVC1=0x12345678。

如果您有多个Raspberry Pi,并且为每个Raspberry Pis都购买了编解码器许可证,您可以在单个 config.txt 中列出最多八个许可证密钥,例如 decode_MPG2=0x12345678,0xabcdabcd,0x87654321 。这使您能够在不同的Raspberry Pi之间交换相同的SD卡,而无需每次都编辑 config.txt

视频选项

HDMI模式

要控制 HDMI 设置,请使用 cmdline.txt 中的 屏幕配置实用程序KMS 视频设置

树莓派4-系列的HDMI

为了支持双显示器和高达 4Kp60 的模式,Raspberry Pi 4、CM4、和Pi 400 在每个时钟周期生成 2 个输出像素。

每种 HDMI 模式都有一个时序列表,用于控制同步脉冲持续时间周围的所有参数。这些时序通常通过像素时钟、活动像素数量、前廊、同步脉冲以及水平和垂直方向的后廊来定义。

以每时钟 2 像素的速度运行所有程序意味着4-系列设备不能支持任何不能被 2 整除的时序。

CEA 和 DMT标准中只有一种不兼容的模式:DMT模式81、1366x768@60Hz。这种模式的水平同步和后门廊时序具有奇数值,宽度不能被8整除。

如果您的显示器具有这种分辨率,4-系列设备会自动降到显示器所宣传的下一模式;通常为 1280x720。

树莓派5-系列的HDMI

从 Raspberry Pi 5 开始的旗舰机型、从 CM5 开始的计算模块机型以及从 Pi 500 开始的键盘机型也在每个时钟周期输出 2 个像素。这些型号对奇数时序有特殊处理,可以直接处理这些模式

复合视频模式

复合视频输出可以在每个型号的Raspberry Pi计算机上找到:

model composite output

Raspberry Pi 1 A and B

RCA jack

Raspberry Pi Zero

Unpopulated TV header

Raspberry Pi Zero 2 W

Test pads on underside of board

Raspberry Pi 5

J7 pad next to HDMI socket

All other models

3.5mm AV jack

Note
键盘系列产品上不提供复合视频输出。

enable_tvout

设置为 1 以启用复合视频输出,设置为 0 以禁用。从 Raspberry Pi 4 开始的旗舰机型、从 CM4 开始的计算模块以及 Zero 机型上均可使用,复合输出仅在您将其设置为 1 时可用,这也会禁用HDMI输出。键盘系列产品上不提供复合输出。

Model Default

Pi 4, 5 and 400

0

All other models

1

在所有支持此功能的型号上,需要禁用HDMI输出才能启用复合输出。当没有连接/检测到HDMI显示器时,HDMI输出被禁用。设置 enable_tvout=0 以防止在禁用HDMI时启用复合。

要启用复合输出,请在 /boot/firmware/config.txt 中的 dtoverlay=vc4-kms-v3d 行末尾添加 ,composite

dtoverlay=vc4-kms-v3d,composite

默认情况下,这会输出复合NTSC视频。要选择不同的模式,请将以下内容附加到 /boot/firmware/cmdline.txt 中的单行:

vc4.tv_norm=<video_mode>

<video_mode> 占位符替换为以下值之一:

  • NTSC

  • NTSC-J

  • NTSC-443

  • PAL

  • PAL-M

  • PAL-N

  • PAL60

  • SECAM

LCD显示器和触摸屏

ignore_lcd

默认情况下,在I2C总线上检测到Raspberry Pi Touch Display时使用。 ignore_lcd=1 跳过此检测阶段。这会阻止使用LCD显示屏。

disable_touchscreen

启用和禁用触摸屏。

disable_touchscreen=1 禁用官方Raspberry Pi Touch Display的触摸屏组件。

通用显示选项

disable_fw_kms_setup

默认情况下,固件会解析任何连接的 HDMI 显示器的 EDID,选择合适的视频模式,然后通过内核命令行上的设置将该模式的分辨率和帧频(以及过扫描参数)传递给 Linux 内核。在极少数情况下,固件可能会选择与设备不兼容的 EDID 以外的模式。使用 disable_fw_kms_setup=1 禁用视频模式参数传递,可以避免这一问题。Linux 视频模式系统 (KMS) 会自行解析 EDID 并选择合适的模式。

Note
在 Raspberry Pi 5 上,该参数默认为 1

相机设置

disable_camera_led

disable_camera_led 设置为 1 可防止红色相机LED在录制视频或拍摄静态照片时打开。这对于防止反射很有用,例如当相机面对窗口时。

awb_auto_is_greyworld

awb_auto_is_greyworld 设置为 1 允许内部不支持greyworld选项的库或应用程序使用NoIR相机捕获有效的图像和视频。它会切换自动awb模式以使用greyworld算法。这应该只适用于NoIR相机,或者当高质量相机具有其 IR过滤器已删除 时才需要。

本页内容