传统config.txt
传统选项
这里描述的 config.txt
选项被视为遗留设置,树莓派OS Bookworm 并不使用它们,官方也不再支持它们。它们要么与固件图形驱动程序等旧版软件有关,要么已被弃用,要么大多数人都不太可能使用。不过,由于它们对旧版操作系统用户或进行裸机开发的人员可能仍有帮助,因此在此保留记录。
传统启动选项
(另请参阅 config.txt 启动选项)。
start_x、start_debug
这些选项提供了一些替代 start_file
和 fixup_file
设置的快捷方式,是选择固件配置的推荐方法。
start_x=1
表示
start_file=start_x.elf
fixup_file=fixup_x.dat
在树莓派4上,如果存在 start4x.elf
和 fixup4x.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.elf
和 boot_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 接口。它适用于所有型号的树莓派。
引脚编号 | 功能 |
---|---|
GPIO22 | ARM_TRST |
GPIO23 | ARM_RTCK |
GPIO24 | ARM_TDO |
GPIO25 | ARM_TCK |
GPIO26 | ARM_TDI |
GPIO27 | ARM_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 建议最大值 |
---|---|
256MB | 128 |
512MB | 384 |
1GB 或更大 | 512,树莓派4 上为 76 |
树莓派OS 上的相机堆栈(libcamera)使用 Linux CMA 内存分配缓冲区,而不是 GPU 内存,因此增加 GPU 内存大小没有任何好处。
可以将 gpu_mem
设置为更大的值,但应避免这样做,因为这会导致问题,例如阻止 Linux 启动。最小值为 16
,但这会禁用某些 GPU 功能。
还可以使用 gpu_mem_256
、gpu_mem_512
和 gpu_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) |
1 | RGB 受限(16-235) |
2 | RGB 全屏(0-255) |
3 | YCbCr 受限(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 | 结果 |
---|---|
0 | HDMI 输出将处于空白状态 |
1 | HDMI 输出将关闭并消隐 |
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 自动检测 |
1 | CEA |
2 | DMT |
hdmi_mode
hdmi_mode
与 hdmi_group
一起定义 HDMI 输出格式。格式模式编号源自 CTA 规范。
并非所有模式都适用于所有型号。
这些值在 hdmi_group=1
(CEA) 时有效:
hdmi_mode | 分辨率 | 频率 | 宽高比 | 备注 |
---|---|---|---|---|
1 | VGA(640x480) | 60Hz | 4:3 | |
2 | 480p | 60Hz | 4:3 | |
3 | 480p | 60Hz | 16:9 | |
4 | 720p | 60Hz | 16:9 | |
5 | 1080i | 60Hz | 16:9 | |
6 | 480i | 60Hz | 4:3 | |
7 | 480i | 60Hz | 16:9 | |
8 | 240p | 60Hz | 4:3 | |
9 | 240p | 60Hz | 16:9 | |
10 | 480i | 60Hz | 4:3 | 四倍像素 |
11 | 480i | 60Hz | 16:9 | 四倍像素 |
12 | 240p | 60Hz | 4:3 | 四倍像素 |
13 | 240p | 60Hz | 16:9 | 四倍像素 |
14 | 480p | 60Hz | 4:3 | 双倍像素 |
15 | 480p | 60Hz | 16:9 | 双倍像素 |
16 | 1080p | 60Hz | 16:9 | |
17 | 576p | 50Hz | 4:3 | |
18 | 576p | 50Hz | 16:9 | |
19 | 720p | 50Hz | 16:9 | |
20 | 1080i | 50Hz | 16:9 | |
21 | 576i | 50Hz | 4:3 | |
22 | 576i | 50Hz | 16:9 | |
23 | 288p | 50Hz | 4:3 | |
24 | 288p | 50Hz | 16:9 | |
25 | 576i | 50Hz | 4:3 | 四倍像素 |
26 | 576i | 50Hz | 16:9 | 四倍像素 |
27 | 288p | 50Hz | 4:3 | 四倍像素 |
28 | 288p | 50Hz | 16:9 | 四倍像素 |
29 | 576p | 50Hz | 4:3 | 双倍像素 |
30 | 576p | 50Hz | 16:9 | 双倍像素 |
31 | 1080p | 50Hz | 16:9 | |
32 | 1080p | 24Hz | 16:9 | |
33 | 1080p | 25Hz | 16:9 | |
34 | 1080p | 30Hz | 16:9 | |
35 | 480p | 60Hz | 4:3 | 四倍像素 |
36 | 480p | 60Hz | 16:9 | 四倍像素 |
37 | 576p | 50Hz | 4:3 | 四倍像素 |
38 | 576p | 50Hz | 16:9 | 四倍像素 |
39 | 1080i | 50Hz | 16:9 | 减少熄屏 |
40 | 1080i | 100Hz | 16:9 | |
41 | 720p | 100Hz | 16:9 | |
42 | 576p | 100Hz | 4:3 | |
43 | 576p | 100Hz | 16:9 | |
44 | 576i | 100Hz | 4:3 | |
45 | 576i | 100Hz | 16:9 | |
46 | 1080i | 120Hz | 16:9 | |
47 | 720p | 120Hz | 16:9 | |
48 | 480p | 120Hz | 4:3 | |
49 | 480p | 120Hz | 16:9 | |
50 | 480i | 120Hz | 4:3 | |
51 | 480i | 120Hz | 16:9 | |
52 | 576p | 200Hz | 4:3 | |
53 | 576p | 200Hz | 16:9 | |
54 | 576i | 200Hz | 4:3 | |
55 | 576i | 200Hz | 16:9 | |
56 | 480p | 240Hz | 4:3 | |
57 | 480p | 240Hz | 16:9 | |
58 | 480i | 240Hz | 4:3 | |
59 | 480i | 240Hz | 16:9 | |
60 | 720p | 24Hz | 16:9 | |
61 | 720p | 25Hz | 16:9 | |
62 | 720p | 30Hz | 16:9 | |
63 | 1080p | 120Hz | 16:9 | |
64 | 1080p | 100Hz | 16:9 | |
65 | Custom | |||
66 | 720p | 25Hz | 64:27 | Pi 4 |
67 | 720p | 30Hz | 64:27 | Pi 4 |
68 | 720p | 50Hz | 64:27 | Pi 4 |
69 | 720p | 60Hz | 64:27 | Pi 4 |
70 | 720p | 100Hz | 64:27 | Pi 4 |
71 | 720p | 120Hz | 64:27 | Pi 4 |
72 | 1080p | 24Hz | 64:27 | Pi 4 |
73 | 1080p | 25Hz | 64:27 | Pi 4 |
74 | 1080p | 30Hz | 64:27 | Pi 4 |
75 | 1080p | 50Hz | 64:27 | Pi 4 |
76 | 1080p | 60Hz | 64:27 | Pi 4 |
77 | 1080p | 100Hz | 64:27 | Pi 4 |
78 | 1080p | 120Hz | 64:27 | Pi 4 |
79 | 1680x720 | 24Hz | 64:27 | Pi 4 |
80 | 1680x720 | 25Hz | 64:27 | Pi 4 |
81 | 1680x720 | 30Hz | 64:27 | Pi 4 |
82 | 1680x720 | 50Hz | 64:27 | Pi 4 |
83 | 1680x720 | 60Hz | 64:27 | Pi 4 |
84 | 1680x720 | 100Hz | 64:27 | Pi 4 |
85 | 1680x720 | 120Hz | 64:27 | Pi 4 |
86 | 2560x720 | 24Hz | 64:27 | Pi 4 |
87 | 2560x720 | 25Hz | 64:27 | Pi 4 |
88 | 2560x720 | 30Hz | 64:27 | Pi 4 |
89 | 2560x720 | 50Hz | 64:27 | Pi 4 |
90 | 2560x720 | 60Hz | 64:27 | Pi 4 |
91 | 2560x720 | 100Hz | 64:27 | Pi 4 |
92 | 2560x720 | 120Hz | 64:27 | Pi 4 |
93 | 2160p | 24Hz | 16:9 | Pi 4 |
94 | 2160p | 25Hz | 16:9 | Pi 4 |
95 | 2160p | 30Hz | 16:9 | Pi 4 |
96 | 2160p | 50Hz | 16:9 | Pi 4 |
97 | 2160p | 60Hz | 16:9 | Pi 4 |
98 | 4096x2160 | 24Hz | 256:135 | Pi 4 |
99 | 4096x2160 | 25Hz | 256:135 | Pi 4 |
100 | 4096x2160 | 30Hz | 256:135 | Pi 4 |
101 | 4096x2160 | 50Hz | 256:135 | Pi 41 |
102 | 4096x2160 | 60Hz | 256:135 | Pi 41 |
103 | 2160p | 24Hz | 64:27 | Pi 4 |
104 | 2160p | 25Hz | 64:27 | Pi 4 |
105 | 2160p | 30Hz | 64:27 | Pi 4 |
106 | 2160p | 50Hz | 64:27 | Pi 4 |
107 | 2160p | 60Hz | 64:27 | Pi 4 |
1. 仅在核心频率超频时可用:设置 core_freq_min=600
和 core_freq=600
。参见超频。
像素双倍和四倍表示更高的时钟频率,每个像素分别重复两次或四次。
这些值在 hdmi_group=2
(DMT) 时有效:
hdmi_mode | 分辨率 | 频率 | 宽高比 | 备注 |
---|---|---|---|---|
1 | 640x350 | 85Hz | ||
2 | 640x400 | 85Hz | 16:10 | |
3 | 720x400 | 85Hz | ||
4 | 640x480 | 85Hz | 4:3 | |
5 | 640x480 | 60Hz | 4:3 | |
6 | 640x480 | 72Hz | 4:3 | |
7 | 640x480 | 75Hz | 4:3 | |
8 | 800x600 | 85Hz | 4:3 | |
9 | 800x600 | 60Hz | 4:3 | |
10 | 800x600 | 72Hz | 4:3 | |
11 | 800x600 | 75Hz | 4:3 | |
12 | 800x600 | 85Hz | 4:3 | |
13 | 800x600 | 120Hz | 4:3 | |
14 | 848x480 | 60Hz | 16:9 | |
15 | 1024x768 | 43Hz | 4:3 | 与树莓派不兼容 |
16 | 1024x768 | 60Hz | 4:3 | |
17 | 1024x768 | 70Hz | 4:3 | |
18 | 1024x768 | 75Hz | 4:3 | |
19 | 1024x768 | 85Hz | 4:3 | |
20 | 1024x768 | 120Hz | 4:3 | |
21 | 1152x864 | 75Hz | 4:3 | |
22 | 1280x768 | 60Hz | 15:9 | 减少熄屏 |
23 | 1280x768 | 60Hz | 15:9 | |
24 | 1280x768 | 75Hz | 15:9 | |
25 | 1280x768 | 85Hz | 15:9 | |
26 | 1280x768 | 120Hz | 15:9 | 减少熄屏 |
27 | 1280x800 | 60Hz | 16:10 | 减少熄屏 |
28 | 1280x800 | 60Hz | 16:10 | |
29 | 1280x800 | 75Hz | 16:10 | |
30 | 1280x800 | 85Hz | 16:10 | |
31 | 1280x800 | 120Hz | 16:10 | 减少熄屏 |
32 | 1280x960 | 60Hz | 4:3 | |
33 | 1280x960 | 85Hz | 4:3 | |
34 | 1280x960 | 120Hz | 4:3 | 减少熄屏 |
35 | 1280x1024 | 60Hz | 5:4 | |
36 | 1280x1024 | 75Hz | 5:4 | |
37 | 1280x1024 | 85Hz | 5:4 | |
38 | 1280x1024 | 120Hz | 5:4 | 减少熄屏 |
39 | 1360x768 | 60Hz | 16:9 | |
40 | 1360x768 | 120Hz | 16:9 | 减少熄屏 |
41 | 1400x1050 | 60Hz | 4:3 | 减少熄屏 |
42 | 1400x1050 | 60Hz | 4:3 | |
43 | 1400x1050 | 75Hz | 4:3 | |
44 | 1400x1050 | 85Hz | 4:3 | |
45 | 1400x1050 | 120Hz | 4:3 | 减少熄屏 |
46 | 1440x900 | 60Hz | 16:10 | 减少熄屏 |
47 | 1440x900 | 60Hz | 16:10 | |
48 | 1440x900 | 75Hz | 16:10 | |
49 | 1440x900 | 85Hz | 16:10 | |
50 | 1440x900 | 120Hz | 16:10 | 减少熄屏 |
51 | 1600x1200 | 60Hz | 4:3 | |
52 | 1600x1200 | 65Hz | 4:3 | |
53 | 1600x1200 | 70Hz | 4:3 | |
54 | 1600x1200 | 75Hz | 4:3 | |
55 | 1600x1200 | 85Hz | 4:3 | |
56 | 1600x1200 | 120Hz | 4:3 | 减少熄屏 |
57 | 1680x1050 | 60Hz | 16:10 | 减少熄屏 |
58 | 1680x1050 | 60Hz | 16:10 | |
59 | 1680x1050 | 75Hz | 16:10 | |
60 | 1680x1050 | 85Hz | 16:10 | |
61 | 1680x1050 | 120Hz | 16:10 | 减少熄屏 |
62 | 1792x1344 | 60Hz | 4:3 | |
63 | 1792x1344 | 75Hz | 4:3 | |
64 | 1792x1344 | 120Hz | 4:3 | 减少熄屏 |
65 | 1856x1392 | 60Hz | 4:3 | |
66 | 1856x1392 | 75Hz | 4:3 | |
67 | 1856x1392 | 120Hz | 4:3 | 减少熄屏 |
68 | 1920x1200 | 60Hz | 16:10 | 减少熄屏 |
69 | 1920x1200 | 60Hz | 16:10 | |
70 | 1920x1200 | 75Hz | 16:10 | |
71 | 1920x1200 | 85Hz | 16:10 | |
72 | 1920x1200 | 120Hz | 16:10 | 减少熄屏 |
73 | 1920x1440 | 60Hz | 4:3 | |
74 | 1920x1440 | 75Hz | 4:3 | |
75 | 1920x1440 | 120Hz | 4:3 | 减少熄屏 |
76 | 2560x1600 | 60Hz | 16:10 | 减少熄屏 |
77 | 2560x1600 | 60Hz | 16:10 | |
78 | 2560x1600 | 75Hz | 16:10 | |
79 | 2560x1600 | 85Hz | 16:10 | |
80 | 2560x1600 | 120Hz | 16:10 | 减少熄屏 |
81 | 1366x768 | 60Hz | 16:9 | Pi4和5不支持 |
82 | 1920x1080 | 60Hz | 16:9 | 1080p |
83 | 1600x900 | 60Hz | 16:9 | 减少熄屏 |
84 | 2048x1152 | 60Hz | 16:9 | 减少熄屏 |
85 | 1280x720 | 60Hz | 16:9 | 720p |
86 | 1366x768 | 60Hz | 16: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=2
和 hdmi_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:3 | HDMI_ASPECT_4_3 | 1 |
14:9 | HDMI_ASPECT_14_9 | 2 |
16:9 | HDMI_ASPECT_16_9 | 3 |
5:4 | HDMI_ASPECT_5_4 | 4 |
16:10 | HDMI_ASPECT_16_10 | 5 |
15:9 | HDMI_ASPECT_15_9 | 6 |
21:9 | HDMI_ASPECT_21_9 | 7 |
64:27 | HDMI_ASPECT_64_27 | 8 |
hdmi_force_mode
设置为 1
将从内部列表中删除除 hdmi_mode
和 hdmi_group
指定模式以外的所有其他模式,这意味着它们不会出现在任何模式枚举列表中。如果显示器似乎忽略了 hdmi_mode
和 hdmi_group
设置,该选项可能会有所帮助。
edid_content_type
强制 EDID 内容类型为特定值。
选项如下
0
=EDID_ContentType_NODATA
,内容类型无1
=EDID_ContentType_Graphics
,内容类型为图形,ITC 必 须设为 12
=EDID_ContentType_Photo
,内容类型为照片3
=EDID_ContentType_Cinema
,内容类型为影院4
=EDID_ContentType_Game
,内容类型为游戏
哪些值对我的显示器有效?
您的 HDMI 显示器可能只支持有限的一组格式。要了解支持哪些格式,请使用以下方法:
- 将输出格式设置为 VGA 60Hz(
hdmi_group=1
和hdmi_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 |
aspect | 3 | 宽高比 1=4:3, 2=14:9, 3=16:9, 4=5:4, 5=16:10, 6=15:9 |
margins | 0 | 0=禁用边距,1=启用边距 |
interlace | 0 | 0=逐行扫描,1=隔行扫描 |
rb | 0 | 0=正常,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 | 结果 |
---|---|
1 | 4:3 |
2 | 14:9 |
3 | 16: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_group
和 dpi_mode
config.txt
参数用于设置预定模式(如上述 HDMI 使用的 DMT 或 CEA 模式)。用户可以用与 HDMI 基本相同的方式生成自定义模式(参见 dpi_timings
部分)。
dpi_output_format
是一个位掩码,指定了用于设置显示格式的各种参数。
dpi_timings
可为自定义模式设置原始 DPI 时序值,使用 dpi_group=2
和 dpi_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:3 | hdmi_aspect_4_3 | 1 |
14:9 | hdmi_aspect_14_9 | 2 |
16:9 | hdmi_aspect_16_9 | 3 |
5:4 | hdmi_aspect_5_4 | 4 |
16:10 | hdmi_aspect_16_10 | 5 |
15:9 | hdmi_aspect_15_9 | 6 |
21:9 | hdmi_aspect_21_9 | 7 |
64:27 | hdmi_aspect_64_27 | 8 |
通用显示选项
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 |
---|---|
主 LCD | 0 |
辅助 LCD | 1 |
HDMI 0 | 2 |
复合 | 3 |
HDMI 1 | 7 |
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_rotate
和 display_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