跳到主要内容

传统config.txt

传统选项

这里描述的 config.txt 选项被视为遗留设置,树莓派OS Bookworm 并不使用它们,官方也不再支持它们。它们要么与固件图形驱动程序等旧版软件有关,要么已被弃用,要么大多数人都不太可能使用。不过,由于它们对旧版操作系统用户或进行裸机开发的人员可能仍有帮助,因此在此保留记录。

传统启动选项

(另请参阅 config.txt 启动选项)。

start_x、start_debug

这些选项提供了一些替代 start_filefixup_file 设置的快捷方式,是选择固件配置的推荐方法。

start_x=1 表示

start_file=start_x.elf
fixup_file=fixup_x.dat

在树莓派4上,如果存在 start4x.elffixup4x.dat 文件,则将使用这些文件。

start_debug=1 意味着

start_file=start_db.elf
fixup_file=fixup_db.dat

disable_commandline_tags

disable_commandline_tags 命令设为 1,以阻止 start.elf 在启动内核前填写 ATAGS(0x100 开始的内存)。

arm_control

警告

此设置已被弃用。请使用 arm_64bit 来启用 64 位内核。

设置板卡特定的控制位。

armstub

armstub 是引导分区中加载 ARM 存根的文件名。默认 ARM 存根存储在固件中,并根据树莓派型号和各种设置自动选择。

存根是先于内核运行的一小段 ARM 代码。它的任务是在将控制权传递给内核之前设置中断控制器等低级硬件。

arm_peri_high

arm_peri_high 设为 1 可在树莓派4上启用高外设模式。如果加载了合适的 DTB,它会自动设置。

注意

在没有兼容设备树的情况下启用高外设模式将导致系统无法启动。目前缺少 ARM 存根支持,因此还需要使用 armstub 加载合适的文件。

kernel_address

kernel_address 是加载内核映像的内存地址。默认情况下,32 位内核加载到地址 0x8000,64 位内核加载到地址 0x200000。如果设置了 kernel_old,内核将被加载到 0x0 地址。

kernel_old

kernel_old 设为 1,可将内核加载到内存地址 0x0

init_uart_baud

init_uart_baud 是初始 UART 波特率。默认值为 115200

init_uart_clock

init_uart_clock 是初始 UART 时钟频率。默认值为 48000000(48MHz)。请注意,该时钟仅适用于 UART0(Linux 中为 ttyAMA0),而且 UART 的最大波特率限制为时钟的 1/16。树莓派3 和树莓派Zero 的默认 UART 为 UART1(Linux 中为 ttyS0),其时钟为核心 VPU 时钟 - 至少 250MHz。

bootcode_delay bootcode_delay 命令在加载 start.elf 之前,在 bootcode.bin 中延迟给定的秒数:默认值为 0

如果树莓派和显示器的电源相同,但显示器的启动时间比树莓派长,那么在读取显示器的 EDID 之前插入一个延迟就非常有用。如果初始启动时显示器检测错误,但在软启动树莓派而不移除显示器电源时检测正确,请尝试设置该值。

boot_delay

boot_delay 命令会在加载内核前在 start.elf 中强制等待指定秒数:默认值为 0。以毫秒为单位的总延迟计算公式为 (1000 x boot_delay) + boot_delay_ms。如果你的 SD 卡在 Linux 从它启动之前需要一段时间准备就绪,这将非常有用。

boot_delay_ms

boot_delay_ms 命令表示在加载内核前等待 start.elfboot_delay 中给定的毫秒数。默认值为 0

enable_gic(仅限树莓派4)

在树莓派4B 上,如果将此值设为 0,中断将使用传统中断控制器路由到 Arm 内核,而不是通过 GIC-400。默认值为 1

sha256

如果设置为非零,将启用由 sha256sum 工具生成的已加载文件(内核、initramfs、设备树 .dtb 文件和覆盖层)的 SHA256 哈希值日志。如果启用,日志输出将发送到 UART,也可通过 sudo vclog --msg 访问。该选项在调试启动问题时可能有用,但代价是启动时间可能会增加很多秒。在所有平台上默认为 0。

uart_2ndstage

设置 uart_2ndstage=1 会导致第二阶段加载器(树莓派4之前设备上的 bootcode.bin,或树莓派4设备 EEPROM 中的启动代码)和主固件(start*.elf)向 UART0 输出诊断信息。

请注意,输出可能会干扰蓝牙操作,除非禁用(dtoverlay=disable-bt)或切换到其他 UART(dtoverlay=miniuart-bt),而且如果同时访问 UART 从 Linux 输出,则可能会发生数据丢失,导致输出损坏。只有在诊断早期启动加载问题时才需要使用该功能。

upstream_kernel

如果使用 upstream_kernel=1,固件会将 os_prefix 设置为 "upstream/",除非明确将其设置为其他值,但与其他 os_prefix 值一样,如果使用该前缀时无法找到所需的内核和 .dtb 文件,该值将被忽略。

固件还会优先使用上游 Linux 名称来命名 DTB(例如,用 bcm2837-rpi-3-b.dtb 代替 bcm2710-rpi-3-b.dtb)。如果找不到上游文件,固件将加载下游变体,并自动应用 "上游 "覆盖进行一些调整。请注意,这一过程是在确定 os_prefix 之后进行的。

传统GPIO控制

(另请参阅 config.txt GPIO控制)。

enable_jtag_gpio

设置 enable_jtag_gpio=1 可为 GPIO 引脚 22-27 选择 Alt4 模式,并设置一些内部 SoC 连接,从而启用 Arm CPU 的 JTAG 接口。它适用于所有型号的树莓派。

引脚编号功能
GPIO22ARM_TRST
GPIO23ARM_RTCK
GPIO24ARM_TDO
GPIO25ARM_TCK
GPIO26ARM_TDI
GPIO27ARM_TMS

传统超频选项

(另请参阅 config.txt 超频选项)。

超频

never_over_voltage

在一次性可编程(OTP)内存中设置一个位,防止设备过压。这样做的目的是锁定树莓派,使其无法通过使用无效过压无意或恶意地设置保修位。

disable_auto_turbo

在树莓派2和3上,设置此标志将禁止 GPU 进入Turbo模式,在特定负载下,GPU 可以进入Turbo模式。

传统的条件过滤器

(另请参阅 config.txt 条件筛选器)。

[HDMI:*] 过滤器

注意

此过滤器仅适用于树莓派4。

树莓派4 有两个 HDMI 端口,对于许多与 HDMI 相关的 config.txt 命令,有必要指定所指的是哪个 HDMI 端口。HDMI 条件将后续 HDMI 配置过滤为特定端口。

 [HDMI:0]
hdmi_group=2
hdmi_mode=45
[HDMI:1]
hdmi_group=2
hdmi_mode=67

所有特定端口的 HDMI 命令都有另一种变量:索引语法。您可以使用下面的语法,它与前面的示例相同:

 hdmi_group:0=2
hdmi_mode:0=45
hdmi_group:1=2
hdmi_mode:1=67

传统内存选项

(另请参阅 config.txt 内存选项

注意

树莓派5不代表操作系统分配 GPU 内存,因此以下设置没有影响。

gpu_mem

指定保留多少内存(以兆字节为单位)供 GPU 独用:剩余内存分配给 Arm CPU 供操作系统使用。对于内存小于 1GB 的树莓派s,默认值为 64;对于内存大于等于 1GB 的树莓派s,默认值为 76

重要

与 x86 机器上的 GPU(增加内存可提高 3D 性能)不同,VideoCore 的架构意味着指定大于必要值的内存不会带来任何性能优势,而且这样做实际上会损害性能。

为确保 Linux 的最佳性能,应将 gpu_mem 设置为尽可能小的值。如果某个图形功能无法正常工作,可以尝试增加 gpu_mem 的值,但要注意下面显示的建议最大值。

在树莓派4上,GPU 的 3D 组件有自己的内存管理单元 (MMU),不会使用 gpu_mem 分配的内存。内存是在 Linux 中动态分配的。这样,在树莓派4上指定的 gpu_mem 值就比以前的型号小。

在传统内核中,分配给 GPU 的内存用于显示、3D、编解码器、摄像头以及一些基本的固件内务管理。下面指定的最大值假定您正在使用所有这些功能。如果没有,则应使用较小的 gpu_mem 值。

建议的最大值如下

总内存gpu_mem 建议最大值
256MB128
512MB384
1GB 或更大512,树莓派4 上为 76
重要

树莓派OS 上的相机堆栈(libcamera)使用 Linux CMA 内存分配缓冲区,而不是 GPU 内存,因此增加 GPU 内存大小没有任何好处。

可以将 gpu_mem 设置为更大的值,但应避免这样做,因为这会导致问题,例如阻止 Linux 启动。最小值为 16,但这会禁用某些 GPU 功能。

还可以使用 gpu_mem_256gpu_mem_512gpu_mem_1024,以便在内存容量不同的树莓派之间交换同一张 SD 卡,而不必每次都编辑 config.txt

gpu_mem_256

gpu_mem_256 命令以 MB 为单位为拥有 256MB 内存的树莓派设置 GPU 内存。如果内存大小不是 256MB,该命令将被忽略。该命令覆盖 gpu_mem

gpu_mem_512

gpu_mem_512 命令以 MB 为单位为配备 512MB 内存的树莓派设置 GPU 内存。如果内存大小不是 512MB,该命令将被忽略。该命令覆盖 gpu_mem

gpu_mem_1024

gpu_mem_1024 命令以 MB 为单位为配备 1GB 或更多内存的树莓派设置 GPU 内存。如果内存小于 1GB,该命令将被忽略。该命令覆盖 gpu_mem

disable_l2cache

将此值设为 1 将禁止 CPU 访问 GPU 的二级缓存,并需要相应的二级缓存禁用内核。在 BCM2836、BCM2837、BCM2711 和 BCM2712 上,ARM 拥有自己的二级缓存,因此默认值为 1。标准的树莓派kernel.img 和 kernel7.img 版本反映了缓存设置的这种差异。

传统视频选项

(另请参阅 config.txt 视频选项

HDMI模式

注意

由于树莓派4和树莓派400有两个 HDMI 端口,因此某些 HDMI 命令可应用于任一端口。您可以使用 <command>:<port> 语法(其中 port 为 0 或 1)指定设置应应用于哪个端口。如果没有指定端口,默认值为 0。 如果在不需要端口号的命令中指定端口号,端口将被忽略。有关语法和替代机制的更多详情,请参阅文档中条件部分的 HDMI 子部分。

hdmi_safe

hdmi_safe 设置为 1 将导致使用 "安全模式" 设置,尝试以最大 HDMI 兼容性启动。这与设置以下参数相同:

hdmi_force_hotplug=1
hdmi_ignore_edid=0xa5000080
config_hdmi_boost=4
hdmi_group=2
hdmi_mode=4
disable_overcan=0
overscan_left=24
overscan_right=24
overscan_top=24
overscan_bottom=24

hdmi_ignore_edid

如果显示器没有准确的 EDID,将 hdmi_ignore_edid 设置为 0xa5000080 可忽略 EDID/显示数据。它需要这个不寻常的值,以确保不会意外触发。

hdmi_edid_file

hdmi_edid_file 设置为 1 将导致 GPU 从启动分区中的 edid.dat 文件读取 EDID 数据,而不是从显示器读取。

hdmi_edid_filename

在树莓派4B上,可以使用 hdmi_edid_filename 命令指定要使用的 EDID 文件的文件名,还可以指定该文件要应用到哪个端口。这还要求 hdmi_edid_file=1 以启用 EDID 文件。

例如

hdmi_edid_file=1
hdmi_edid_filename:0=FileForPortZero.edid
hdmi_edid_filename:1=FileForPortOne.edid

hdmi_force_edid_audio

hdmi_force_edid_audio 设置为 1 时,显示屏会假装支持所有音频格式,即使报告不支持 DTS/AC3 也允许直通。

hdmi_ignore_edid_audio

将 hdmi_ignore_edid_audio 设置为 1 时,显示屏将假装不支持所有音频格式。这意味着 ALSA 将默认使用模拟音频(耳机)插孔。

hdmi_force_edid_3d

hdmi_force_edid_3d 设置为 1 时,即使 EDID 并不显示支持 3D,也会假定所有 CEA 模式都支持 3D。

hdmi_ignore_cec_init

hdmi_ignore_cec_init 设置为 1 将阻止在启动过程中发送初始活动信号源信息。这样可以防止启用了 CEC 的电视在重新启动树莓派时从待机状态切换频道。

hdmi_ignore_cec

hdmi_ignore_cec 设置为 1 时,显示器将假装完全不支持 CEC。不支持任何 CEC 功能。

cec_osd_name

cec_osd_name 命令用于设置设备的初始 CEC 名称。默认为树莓派。

hdmi_pixel_encoding

hdmi_pixel_encoding 命令强制像素编码模式。默认情况下,它将使用从 EDID 请求的模式,因此无需更改。

hdmi_pixel_encoding结果
0默认(RGB 限制用于 CEA,RGB 完全用于 DMT)
1RGB 受限(16-235)
2RGB 全屏(0-255)
3YCbCr 受限(16-235)
4全 YCbCr(0-255)

hdmi_max_pixel_freq

固件和 KMS 使用像素频率过滤 HDMI 模式。注意,这与帧频不同。它规定了有效模式的最大频率,从而筛选出更高频率的模式。例如,如果您想禁用所有 4K 模式,您可以指定最大频率为 200000000,因为所有 4K 模式的频率都高于此值。

hdmi_blanking

hdmi_blanking 命令控制当操作系统要求使用 DPMS 将显示器置于待机模式以节省电能时发生的情况。如果未设置该选项或将其设置为 0,HDMI 输出将处于空白状态,但不会关闭。为了模仿其他电脑的行为,可以将此选项设置为 1,从而将 HDMI 输出也设置为关闭:连接的显示器将进入低功耗待机模式。

注意

在树莓派4上,设置 hdmi_blanking=1 不会导致 HDMI 输出关闭,因为该功能尚未实现。在使用不使用帧缓冲器的应用程序(如 omxplayer)时,此功能可能会导致问题。

hdmi_blanking结果
0HDMI 输出将处于空白状态
1HDMI 输出将关闭并消隐

hdmi_drive

使用 hdmi_drive 命令可以在 HDMI 和 DVI 输出模式之间进行选择。

hdmi_drive结果
1正常 DVI 模式(无声音)
2正常 HDMI 模式(如果支持并启用,将发送声音)

onfig_hdmi_boost

配置 HDMI 接口的信号强度。最小值为 0,最大值为 11

原始型号 B 和 A 的默认值为 2,型号 B+ 和所有后续型号的默认值为 5

如果出现 HDMI 问题(斑点、干扰),请尝试 7。很长的 HDMI 电缆可能需要多达 11 个值,但除非绝对必要,否则不应使用这么高的值。

此选项在树莓派4上被忽略。

hdmi_group

hdmi_group 命令将 HDMI 输出组定义为 CEA(消费电子协会,电视机通常使用的标准)或 DMT(显示监视器定时,监视器通常使用的标准)。该设置应与 hdmi_mode 结合使用。

hdmi_group结果
0从 EDID 自动检测
1CEA
2DMT

hdmi_mode

hdmi_modehdmi_group 一起定义 HDMI 输出格式。格式模式编号源自 CTA 规范

注意

并非所有模式都适用于所有型号。

这些值在 hdmi_group=1 (CEA) 时有效:

hdmi_mode分辨率频率宽高比备注
1VGA(640x480)60Hz4:3
2480p60Hz4:3
3480p60Hz16:9
4720p60Hz16:9
51080i60Hz16:9
6480i60Hz4:3
7480i60Hz16:9
8240p60Hz4:3
9240p60Hz16:9
10480i60Hz4:3四倍像素
11480i60Hz16:9四倍像素
12240p60Hz4:3四倍像素
13240p60Hz16:9四倍像素
14480p60Hz4:3双倍像素
15480p60Hz16:9双倍像素
161080p60Hz16:9
17576p50Hz4:3
18576p50Hz16:9
19720p50Hz16:9
201080i50Hz16:9
21576i50Hz4:3
22576i50Hz16:9
23288p50Hz4:3
24288p50Hz16:9
25576i50Hz4:3四倍像素
26576i50Hz16:9四倍像素
27288p50Hz4:3四倍像素
28288p50Hz16:9四倍像素
29576p50Hz4:3双倍像素
30576p50Hz16:9双倍像素
311080p50Hz16:9
321080p24Hz16:9
331080p25Hz16:9
341080p30Hz16:9
35480p60Hz4:3四倍像素
36480p60Hz16:9四倍像素
37576p50Hz4:3四倍像素
38576p50Hz16:9四倍像素
391080i50Hz16:9减少熄屏
401080i100Hz16:9
41720p100Hz16:9
42576p100Hz4:3
43576p100Hz16:9
44576i100Hz4:3
45576i100Hz16:9
461080i120Hz16:9
47720p120Hz16:9
48480p120Hz4:3
49480p120Hz16:9
50480i120Hz4:3
51480i120Hz16:9
52576p200Hz4:3
53576p200Hz16:9
54576i200Hz4:3
55576i200Hz16:9
56480p240Hz4:3
57480p240Hz16:9
58480i240Hz4:3
59480i240Hz16:9
60720p24Hz16:9
61720p25Hz16:9
62720p30Hz16:9
631080p120Hz16:9
641080p100Hz16:9
65Custom
66720p25Hz64:27Pi 4
67720p30Hz64:27Pi 4
68720p50Hz64:27Pi 4
69720p60Hz64:27Pi 4
70720p100Hz64:27Pi 4
71720p120Hz64:27Pi 4
721080p24Hz64:27Pi 4
731080p25Hz64:27Pi 4
741080p30Hz64:27Pi 4
751080p50Hz64:27Pi 4
761080p60Hz64:27Pi 4
771080p100Hz64:27Pi 4
781080p120Hz64:27Pi 4
791680x72024Hz64:27Pi 4
801680x72025Hz64:27Pi 4
811680x72030Hz64:27Pi 4
821680x72050Hz64:27Pi 4
831680x72060Hz64:27Pi 4
841680x720100Hz64:27Pi 4
851680x720120Hz64:27Pi 4
862560x72024Hz64:27Pi 4
872560x72025Hz64:27Pi 4
882560x72030Hz64:27Pi 4
892560x72050Hz64:27Pi 4
902560x72060Hz64:27Pi 4
912560x720100Hz64:27Pi 4
922560x720120Hz64:27Pi 4
932160p24Hz16:9Pi 4
942160p25Hz16:9Pi 4
952160p30Hz16:9Pi 4
962160p50Hz16:9Pi 4
972160p60Hz16:9Pi 4
984096x216024Hz256:135Pi 4
994096x216025Hz256:135Pi 4
1004096x216030Hz256:135Pi 4
1014096x216050Hz256:135Pi 41
1024096x216060Hz256:135Pi 41
1032160p24Hz64:27Pi 4
1042160p25Hz64:27Pi 4
1052160p30Hz64:27Pi 4
1062160p50Hz64:27Pi 4
1072160p60Hz64:27Pi 4

1. 仅在核心频率超频时可用:设置 core_freq_min=600 core_freq=600。参见超频

像素双倍和四倍表示更高的时钟频率,每个像素分别重复两次或四次。

这些值在 hdmi_group=2 (DMT) 时有效:

hdmi_mode分辨率频率宽高比备注
1640x35085Hz
2640x40085Hz16:10
3720x40085Hz
4640x48085Hz4:3
5640x48060Hz4:3
6640x48072Hz4:3
7640x48075Hz4:3
8800x60085Hz4:3
9800x60060Hz4:3
10800x60072Hz4:3
11800x60075Hz4:3
12800x60085Hz4:3
13800x600120Hz4:3
14848x48060Hz16:9
151024x76843Hz4:3与树莓派不兼容
161024x76860Hz4:3
171024x76870Hz4:3
181024x76875Hz4:3
191024x76885Hz4:3
201024x768120Hz4:3
211152x86475Hz4:3
221280x76860Hz15:9减少熄屏
231280x76860Hz15:9
241280x76875Hz15:9
251280x76885Hz15:9
261280x768120Hz15:9减少熄屏
271280x80060Hz16:10减少熄屏
281280x80060Hz16:10
291280x80075Hz16:10
301280x80085Hz16:10
311280x800120Hz16:10减少熄屏
321280x96060Hz4:3
331280x96085Hz4:3
341280x960120Hz4:3减少熄屏
351280x102460Hz5:4
361280x102475Hz5:4
371280x102485Hz5:4
381280x1024120Hz5:4减少熄屏
391360x76860Hz16:9
401360x768120Hz16:9减少熄屏
411400x105060Hz4:3减少熄屏
421400x105060Hz4:3
431400x105075Hz4:3
441400x105085Hz4:3
451400x1050120Hz4:3减少熄屏
461440x90060Hz16:10减少熄屏
471440x90060Hz16:10
481440x90075Hz16:10
491440x90085Hz16:10
501440x900120Hz16:10减少熄屏
511600x120060Hz4:3
521600x120065Hz4:3
531600x120070Hz4:3
541600x120075Hz4:3
551600x120085Hz4:3
561600x1200120Hz4:3减少熄屏
571680x105060Hz16:10减少熄屏
581680x105060Hz16:10
591680x105075Hz16:10
601680x105085Hz16:10
611680x1050120Hz16:10减少熄屏
621792x134460Hz4:3
631792x134475Hz4:3
641792x1344120Hz4:3减少熄屏
651856x139260Hz4:3
661856x139275Hz4:3
671856x1392120Hz4:3减少熄屏
681920x120060Hz16:10减少熄屏
691920x120060Hz16:10
701920x120075Hz16:10
711920x120085Hz16:10
721920x1200120Hz16:10减少熄屏
731920x144060Hz4:3
741920x144075Hz4:3
751920x1440120Hz4:3减少熄屏
762560x160060Hz16:10减少熄屏
772560x160060Hz16:10
782560x160075Hz16:10
792560x160085Hz16:10
802560x1600120Hz16:10减少熄屏
811366x76860Hz16:9Pi4不支持
821920x108060Hz16:91080p
831600x90060Hz16:9减少熄屏
842048x115260Hz16:9减少熄屏
851280x72060Hz16:9720p
861366x76860Hz16:9减少熄屏
注意

像素时钟有限制。Raspberry Pi 4 之前的型号支持的最高模式是 60Hz 的 1920×1200,减少了消隐,而 Raspberry Pi 4 可支持高达 60Hz 的 4096×2160(俗称 4k)。另外需要注意的是,如果您同时使用 Raspberry Pi 4 的两个 HDMI 端口进行 4k 输出,那么两个端口的频率都将被限制在 30Hz。

hdmi_timings

可为自定义模式设置原始 HDMI 时序值,使用 hdmi_group=2hdmi_mode=87 选择。

hdmi_timings=<h_active_pixels> <h_sync_polarity> <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity> <v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a> <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
<h_active_pixels> = horizontal pixels (width)
<h_sync_polarity> = invert hsync polarity
<h_front_porch> = horizontal forward padding from DE active edge
<h_sync_pulse> = hsync pulse width in pixel clocks
<h_back_porch> = vertical back padding from DE active edge
<v_active_lines> = vertical pixels height (lines)
<v_sync_polarity> = invert vsync polarity
<v_front_porch> = vertical forward padding from DE active edge
<v_sync_pulse> = vsync pulse width in pixel clocks
<v_back_porch> = vertical back padding from DE active edge
<v_sync_offset_a> = leave at zero
<v_sync_offset_b> = leave at zero
<pixel_rep> = leave at zero
<frame_rate> = screen refresh rate in Hz
<interlaced> = leave at zero
<pixel_freq> = clock frequency (h_active_pixels + h_front_porch + h_sync_pulse + h_back_porch)
* (v_active_lines + v_front_porch + v_sync_pulse + v_back_porch)
* framerate
<aspect_ratio> = [see footnote]

宽高比可以设置为八个值之一。从以下值中选择一个代表与您的屏幕最相似的宽高比的值:

宽高比名称
4:3HDMI_ASPECT_4_31
14:9HDMI_ASPECT_14_92
16:9HDMI_ASPECT_16_93
5:4HDMI_ASPECT_5_44
16:10HDMI_ASPECT_16_105
15:9HDMI_ASPECT_15_96
21:9HDMI_ASPECT_21_97
64:27HDMI_ASPECT_64_278

hdmi_force_mode

设置为 1 将从内部列表中删除除 hdmi_modehdmi_group 指定模式以外的所有其他模式,这意味着它们不会出现在任何模式枚举列表中。如果显示器似乎忽略了 hdmi_modehdmi_group 设置,该选项可能会有所帮助。

edid_content_type

强制 EDID 内容类型为特定值。

选项如下

  • 0 = EDID_ContentType_NODATA,内容类型无
  • 1 = EDID_ContentType_Graphics,内容类型为图形,ITC 必须设为 1
  • 2 = EDID_ContentType_Photo,内容类型为照片
  • 3 = EDID_ContentType_Cinema,内容类型为影院
  • 4 = EDID_ContentType_Game,内容类型为游戏

哪些值对我的显示器有效?

您的 HDMI 显示器可能只支持有限的一组格式。要了解支持哪些格式,请使用以下方法:

  • 将输出格式设置为 VGA 60Hz(hdmi_group=1hdmi_mode=1)并启动树莓派
  • 输入以下命令以显示 CEA 支持的模式列表: /opt/vc/bin/tvservice -m CEA
  • 输入以下命令查看 DMT 支持的模式列表: /opt/vc/bin/tvservice -m DMT
  • 输入以下命令显示当前状态: /opt/vc/bin/tvservice -s
  • 输入以下命令从监视器转储更多详细信息: /opt/vc/bin/tvservice -d edid.dat; /opt/vc/bin/edidparser edid.dat

在排除默认 HDMI 模式的故障时,也应提供 edid.dat

自定义模式

如果您的显示器需要的模式不在上表中,则可以为其定义自定义 CVT 模式:

hdmi_cvt=<width> <height> <framerate> <aspect> <margins> <interlace> <rb>
值名称默认描述
width(required)像素宽
height(required)像素高
framerate(required)刷新率Hz
aspect3宽高比 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9
margins00=禁用边距,1=启用边距
interlace00=逐行扫描,1=隔行扫描
rb00=正常,1=减少熄屏

可以省略末尾的字段,使用默认值。

请注意,这只是创建了模式(第 2 组模式 87)。为了让树莓派默认使用该模式,必须添加一些额外设置。例如,选择 800×480 分辨率并启用音频驱动:

hdmi_cvt=800 480 60 6
hdmi_group=2
hdmi_mode=87
hdmi_drive=2

如果显示器不支持标准 CVT 时序,此方法可能不起作用。

复合视频模式

sdtv_mode

sdtv_mode 命令定义用于复合视频输出的电视标准:

sdtv_mode结果
0正常 NTSC
1日本版 NTSC - 无底座
2普通 PAL 制式
3巴西版 PAL - 525/60,而非 625/50,不同的子载波
16逐行扫描 NTSC
18逐行扫描 PAL 制式

sdtv_aspect

sdtv_aspect 命令定义复合视频输出的宽高比。默认值为 1

sdtv_aspect结果
14:3
214:9
316:9

sdtv_disable_colourburst

sdtv_disable_colourburst 设置为 1 将禁用复合视频输出上的色块。图像将以单色显示,但可能看起来更清晰。

液晶显示器和触摸屏

display_default_lcd

如果检测到树莓派触摸显示器,它将被用作默认显示器并显示帧缓冲。设置 display_default_lcd=0 将确保 LCD 不是默认显示器,这通常意味着 HDMI 输出将是默认显示器。液晶显示屏仍可通过从支持的应用程序(如 omxplayer)中选择显示编号来使用。

lcd_framerate

指定树莓派触摸显示器的帧频,单位为 Hz/fps。默认为 60Hz。

lcd_rotate

使用 LCD 的内置翻转功能翻转显示屏,这比使用基于 GPU 的旋转操作计算成本更低。

例如,lcd_rotate=2 将补偿倒置的显示屏。

enable_dpi_lcd

启用连接到 DPI GPIO 的 LCD 显示屏。这将允许使用并行显示接口的第三方 LCD 显示器。

dpi_group、dpi_mode、dpi_output_format

dpi_groupdpi_mode config.txt 参数用于设置预定模式(如上述 HDMI 使用的 DMT 或 CEA 模式)。用户可以用与 HDMI 基本相同的方式生成自定义模式(参见 dpi_timings 部分)。

dpi_output_format 是一个位掩码,指定了用于设置显示格式的各种参数。

dpi_timings

可为自定义模式设置原始 DPI 时序值,使用 dpi_group=2dpi_mode=87 选择。

dpi_timings=<h_active_pixels> <h_sync_polarity> <h_front_porch> <h_sync_pulse> <h_back_porch> <v_active_lines> <v_sync_polarity> <v_front_porch> <v_sync_pulse> <v_back_porch> <v_sync_offset_a> <v_sync_offset_b> <pixel_rep> <frame_rate> <interlaced> <pixel_freq> <aspect_ratio>
<h_active_pixels> = horizontal pixels (width)
<h_sync_polarity> = invert hsync polarity
<h_front_porch> = horizontal forward padding from DE active edge
<h_sync_pulse> = hsync pulse width in pixel clocks
<h_back_porch> = vertical back padding from DE active edge
<v_active_lines> = vertical pixels height (lines)
<v_sync_polarity> = invert vsync polarity
<v_front_porch> = vertical forward padding from DE active edge
<v_sync_pulse> = vsync pulse width in pixel clocks
<v_back_porch> = vertical back padding from DE active edge
<v_sync_offset_a> = leave at zero
<v_sync_offset_b> = leave at zero
<pixel_rep> = leave at zero
<frame_rate> = screen refresh rate in Hz
<interlaced> = leave at zero
<pixel_freq> = clock frequency (h_active_pixels + h_front_porch + h_sync_pulse + h_back_porch)
* (v_active_lines + v_front_porch + v_sync_pulse + v_back_porch)
* framerate
<aspect_ratio> = [see footnote]

宽高比可以设置为八个值之一。从以下值中选择一个代表与您的屏幕最相似的宽高比的值:

宽高比名称
4:3hdmi_aspect_4_31
14:9hdmi_aspect_14_92
16:9hdmi_aspect_16_93
5:4hdmi_aspect_5_44
16:10hdmi_aspect_16_105
15:9hdmi_aspect_15_96
21:9hdmi_aspect_21_97
64:27hdmi_aspect_64_278

通用显示选项

hdmi_force_hotplug

hdmi_force_hotplug 设置为 1 会假定 HDMI 热插拔信号已被确认,因此看起来像是连接了 HDMI 显示器。换句话说,即使没有检测到 HDMI 显示器,也将使用 HDMI 输出模式。

hdmi_ignore_hotplug

hdmi_ignore_hotplug 设置为 1 时,HDMI 热插拔信号将被视为未断言,因此看起来像是未连接 HDMI 显示器。因此,即使连接了显示器,HDMI 输出也将被禁用。

disable_overscan

disable_overscan 的默认值为 0,这使得高清 CEA 模式的左、右、上、下边缘的默认过扫描值分别为 48、标清 CEA 模式的 32 和 DMT 模式的 0。

disable_overscan 设为 1 可禁用固件设置的默认过扫描值。

overscan_left

overscan_left 命令用于指定在固件默认的屏幕左边缘过扫描值基础上增加的像素数。默认值为 0

如果文本偏离屏幕左边缘,则增加该值;如果屏幕左边缘和文本之间有黑色边框,则减少该值。

overscan_right

overscan_right 命令指定在固件默认的屏幕右边缘过扫描值基础上增加的像素数。默认值为 0

如果文本从屏幕右边缘流出,则增加该值;如果屏幕右边缘和文本之间有黑色边框,则减少该值。

overscan_top

overscan_top 命令用于指定在固件默认的屏幕顶部边缘过扫描值基础上增加的像素数。默认值为 0

如果文本从屏幕上边缘流出,则增加该值;如果屏幕上边缘和文本之间有黑色边框,则减少该值。

overscan_bottom

overscan_bottom(过扫描底部)命令用于指定在固件默认值的基础上增加屏幕底部边缘过扫描的像素数。默认值为 0

如果文本从屏幕底边流出,则增加该值;如果屏幕底边和文本之间有黑色边框,则减少该值。

overscan_scale

overscan_scale 设置为 1,可强制任何非框架缓冲层符合过扫描设置。默认值为 0

提示

一般不建议使用此功能:它会降低图像质量,因为显示屏上的所有图层都将被 GPU 缩放。建议选择禁用显示屏本身的过扫描功能,以避免图像被两次缩放(GPU 和显示屏)。

framebuffer_width

framebuffer_width 命令以像素为单位指定控制台帧缓存宽度。默认值为显示宽度减去总水平过扫描量。

framebuffer_height

framebuffer_height 命令以像素为单位指定控制台帧缓存高度。默认值为显示屏高度减去总的垂直过扫描量。

max_framebuffer_height, max_framebuffer_width

指定内部帧缓冲区的最大尺寸。

framebuffer_depth

使用 framebuffer_depth 指定控制台帧缓存深度(以每像素比特为单位)。默认值为 16

| framebuffer_depth | 结果 | 说明 | | 8 | 8 位帧缓冲 | 默认 RGB 调色板使屏幕无法读取 | | 16 | 16 位帧缓冲 | | | 24 | 24 位帧缓冲 | 可能导致显示损坏 | | 32 | 32 位帧缓冲器 | 可能需要与 framebuffer_ignore_alpha=1 结合使用 | | | | |

framebuffer_ignore_alpha

framebuffer_ignore_alpha 设置为 1 可禁用 alpha 通道。这有助于显示 32 位的 framebuffer_depth

framebuffer_priority

在使用传统(pre-KMS)图形驱动程序的多显示器系统中,该选项会强制将特定的内部显示设备作为第一个 Linux 帧缓冲器(即 /dev/fb0)。

可设置的选项有

显示ID
主 LCD0
辅助 LCD1
HDMI 02
复合3
HDMI 17

max_framebuffers

此配置项用于设置可创建的固件帧缓存的最大数量。有效选项为 0、1 和 2。在树莓派4之前的设备上,默认设置为 1,因此在使用多个显示器(例如 HDMI 和 DSI 或 DPI 显示器)时,需要将其增加到 2。树莓派4的配置默认设置为 2,因为它有两个 HDMI 端口。

在大多数情况下,将该值设置为 2 是安全的,因为只有在实际检测到连接设备时才会创建帧缓存。

在无显示器模式下使用时,将此值设为 0 可以减少内存需求,因为它将阻止分配任何帧缓存。

test_mode

test_mode 命令在启动过程中显示测试图像和声音(仅通过复合视频和模拟音频输出),持续指定秒数,然后继续正常启动操作系统。这将用作生产测试;默认值为 0

display_hdmi_rotate

使用 display_hdmi_rotate 可旋转或翻转 HDMI 显示屏方向。默认值为 0

display_hdmi_rotate结果
0不旋转
1顺时针旋转 90 度
2顺时针旋转 180 度
3顺时针旋转 270 度
0x10000水平翻转
0x20000垂直翻转

请注意,90 度和 270 度旋转选项需要额外的 GPU 内存,因此这些选项无法在 16MB GPU 分割下运行。

您可以将旋转设置和翻转设置加在一起。您也可以用同样的方法进行水平和垂直翻转。例如,带有垂直和水平翻转的 180 度旋转将是 0x20000 + 0x10000 + 2 = 0x30002。

display_lcd_rotate

对于传统图形驱动程序(树莓派4之前型号的默认设置),使用 display_lcd_rotate 旋转或翻转 LCD 方向。参数与 display_hdmi_rotate 相同。另请参阅 lcd_rotate

display_rotate

在最新固件中,display_rotate 已被弃用。保留它只是为了向后兼容。请使用 display_lcd_rotatedisplay_hdmi_rotate 代替。

使用 display_rotate 旋转或翻转屏幕方向。参数与 display_hdmi_rotate 相同。

其他选项

dispmanx_offline

强制在两个离屏帧缓存中离线完成 dismanx 合成。这样可以合成更多的 dispmanx 元素,但速度较慢,可能会将屏幕帧频限制在 30fps 左右。

传统树莓派4 HDMI管道

重要

使用 VC4 KMS 图形驱动程序时,整个显示管道由 Linux 管理,其中包括 HDMI 输出。这些设置仅适用于传统的 FKMS 和基于固件的图形驱动程序。

树莓派4无法通过 HDMI 以 1366×768 @ 60Hz 进行输出。某些显示器可以配置为 1360×768 @ 60Hz。它们通常不会通过 EDID 宣传这种模式,因此无法自动选择,但可以通过添加手动选择:

hdmi_group=2
hdmi_mode=87
hdmi_cvt=1360 768 60

...到 config.txt

通过 config.txt 中的 hdmi_timings= 行手动指定的定时也需要遵守所有水平定时参数均可被 2 整除的限制。

dpi_timings= 则不受此限制,因为该流水线每个时钟周期仍只能运行一个像素。

传统杂项选项

avoid_warnings

avoid_warnings=2 允许在出现低电压时使用turbo模式。

logging_level

设置 VideoCore 日志记录级别。该值是特定于 VideoCore 的位掩码。


中文翻译版以英文版相同知识授权方式共享:CC-BY-SA 4.0。交流 Q群:498908352