config.txt文件解析
- 注意事项
- 什么时候去读取这个配置文件呢?
- 如何查看配置情况?
- 举例某些常见参数
- 常见硬件参数
- `camera_auto_detect`
- `display_auto_detect `
- `dtparam`
- `arm_boost` (Raspberry Pi 4 Only)
- `start_file, fixup_file`
- `cmdline`
- `arm_64bit`
- `otg_mode (Raspberry Pi 4 Only)`
- 超频参数
- ref
注意事项
在Bookworm系统版本之前,树莓派操作系统将引导分区存储在/boot/。
自Bookworm以来,引导分区位于/boot/firmware/。
树莓派使用的是一个配置文件,而不是传统PC上的BIOS。
传统上使用BIOS编辑和存储的系统配置参数,现在存储在一个名为config.txt的可选文本文件中。
什么时候去读取这个配置文件呢?
在ARM CPU和Linux初始化之前由GPU读取的。
因此,它必须位于SD卡的第一个(引导)分区上,旁边是bootcode.bin和start.elf。
该文件通常在Linux中以/boot/firmware/config.txt的形式访问,并且必须以root用户进行编辑。
任何更改只有在重新启动树莓派后才会生效。
如何查看配置情况?
Linux启动后,可以使用以下命令查看当前活动设置
- 直接看文件内容
cat /boot/config.txt
or
cat /boot/firmware/config.txt
-
还有一种是用
vcgencmd
命令查看:vcgencmd get_config <config>
: 展示config的值,比如vcgencmd get_config arm_freq
就是获取arm_freq的参数设置值vcgencmd get_config int
: 展示整数参数非0值的参数vcgencmd get_config str
: 展示字符串格式的非空参数值注意事项:vcgencmd不是万能的。有一些配置设置不能使用vcgencmd检索。
举例某些常见参数
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
此行启用音频功能,它会加载snd_bcm2835
音频驱动,使得树莓派上的音频接口可以正常工作。
# Automatically load overlays for detected cameras
camera_auto_detect=1
此行设置树莓派自动检测并加载与其相连的摄像头模块。当摄像头模块连接到树莓派时,系统会自动识别并加载相应的驱动程序,无需用户手动配置。
# Automatically load overlays for detected DSI displays
display_auto_detect=1
与上面的摄像头自动检测类似,此行设置树莓派自动检测并加载与其相连的DSI(Display Serial Interface)显示屏。当DSI显示屏连接到树莓派时,系统会自动识别并加载相应的驱动程序,实现显示屏的正常工作。
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
此行启用VC4显卡的DRM(Direct Rendering Manager)驱动,具体使用的是V3D驱动。DRM是Linux内核中的一个子系统,用于管理显卡资源并提供直接的渲染接口。通过启用VC4显卡的DRM驱动,可以充分利用树莓派上的图形硬件资源,提高图形渲染的性能和效率。
常见硬件参数
camera_auto_detect
camera_auto_detect = 1
启用此设置( Raspberry Pi OS),固件将自动加载它识别的CSI相机的overlay.
display_auto_detect
display_auto_detect = 1
启用此设置(which it is in Raspberry Pi OS), firmware自动加载它识别的DSI显示的overlay.
dtoverlay
dtoverlay
是树莓派(Raspberry Pi)配置中的一个参数,用于动态覆盖设备树(Device
Tree)。设备树是描述硬件配置的数据结构,在Linux内核启动过程中被加载,用于初始化硬件设备。dtoverlay
允许用户在不需要修改内核的情况下,通过加载额外的设备树覆盖层来扩展或修改硬件配置。在树莓派中,
dtoverlay
参数通常用于启用或配置特定的硬件设备,例如摄像头、显示屏、音频接口等。通过在配置文件中添加dtoverlay
行,并指定要加载的设备树覆盖层的名称,可以告诉内核在启动过程中加载相应的设备树覆盖层,从而实现对硬件设备的支持和配置。
例如,dtoverlay=vc4-kms-v3d
表示加载名为vc4-kms-v3d
的设备树覆盖层,该覆盖层用于启用VC4显卡的DRM(Direct Rendering Manager)驱动,以充分利用树莓派上的图形硬件资源。
dtparam
什么是dt?
DT:device tree
Raspberry Pis的设备树配置文件支持许多参数,例如启用I2C和SPI接口。许多DT overlay可以通过使用参数进行配置。这两种类型的参数都可以使用dtparam设置来提供。此外,可以将overlay参数附加到overlay选项中,用逗号分隔,但要注意行长度限制为98个字符。
arm_boost
(Raspberry Pi 4 Only)
所有树莓派400s和更新版本的树莓派4B都为SoC电压轨配备了第二个开关模式电源,这允许默认的涡轮模式时钟从1.5GHz增加到1.8GHz。此更改在树莓派操作系统中默认启用。将arm_boost=0设置为禁用。
- 这个从参数用于将ARM频率(arm_freq)增加到硬件支持的最高频率。简而言之,它可以提高树莓派(Raspberry Pi)上ARM处理器的时钟频率,从而提升处理性能。但需要注意的是,提高时钟频率也会导致功耗和热量的增加,因此在使用arm_boost时要权衡性能和散热之间的关系。
start_file, fixup_file
这些选项指定在启动之前传输到VideoCore GPU的firmware文件。
start_file
指定要使用的VideoCore固件文件。
fixup_file
指定用于修复start_file中使用的内存位置以匹配GPU内存分割的文件。
注意,start_file和fixup_file是一对匹配的文件——使用不匹配的文件将阻止单板启动。这是一个高级选项,所以我们建议您使用start_x和start_debug而不是这个选项。
cmdline
cmdline是引导分区上读取内核命令行字符串的备选文件名;默认值为“cmdline.txt”
cmdline参数在boot引导内核启动时传递给内核,它的作用是指导内核启动。
在内核启动阶段,内核会解析cmdline,并根据cmdline的内容进行配置和运行。
cmdline参数通常以“项目名=项目值”的形式存在,内核解析时会将这些参数一一解析并使用。
例如,
cmdline中可能包含root参数,用于指定根文件系统的位置;
console参数,用于指定控制台输出设备等。
这些参数对于内核在启动过程中的配置非常重要,它们确保了系统能够正确地初始化并运行。
arm_64bit
arm_64bit参数用于启用或禁用ARM的64位模式。
当设置为启用(enabled)时,它可以使ARM处理器在64位模式下运行,从而支持更大的内存寻址空间和更高效的数据处理能力。64位模式可以提供更大的虚拟地址空间,更多的通用寄存器以及更高的性能。
然而,需要注意的是,启用64位模式也会增加功耗和热量生成。因此,在使用arm_64bit参数时,需要权衡性能提升和散热要求之间的关系。
在一些特定的应用场景中,如需要处理大量数据或运行内存密集型任务时,启用64位模式可能更加有利。但对于一些资源有限或对功耗要求较高的环境,禁用64位模式可能更为合适。
总而言之,arm_64bit参数的作用是控制ARM处理器是否在64位模式下运行,从而影响系统的性能和功耗。正确的设置取决于具体的应用需求和硬件配置。
64位内核只适用于树莓派3,3 +,4,400,Zero 2w和2B rev 1.2,以及树莓派计算模块3,3 +和4。
树莓派5只支持64位内核,因此此参数已被删除。
otg_mode (Raspberry Pi 4 Only)
树莓派的otg_mode
参数用于启用或禁用USB OTG(On-The-Go)模式。USB OTG是一种USB规范,允许USB设备在不需要主机(如电脑)的情况下互相通信。通过启用otg_mode
参数,树莓派可以作为USB OTG设备,与其他USB设备直接进行数据传输和通信。
当otg_mode
设置为启用时,树莓派上的USB接口将作为OTG接口,可以支持USB设备的连接和通信。这使得树莓派可以与其他USB设备(如智能手机、平板电脑或其他USB外设)进行连接和数据交换,扩展了树莓派的功能和应用场景。
然而,需要注意的是,启用otg_mode
参数可能会影响树莓派上其他USB接口的正常工作。因此,在使用otg_mode
参数时,需要确保对USB接口的使用没有冲突,并根据实际需求进行适当的配置。
总而言之,otg_mode
参数用于控制树莓派是否启用USB OTG模式,从而实现与其他USB设备的直接连接和通信。正确的设置取决于具体的应用需求和硬件配置。
USB on - on -
go(通常缩写为OTG)是一种允许支持USB设备使用适当的OTG电缆将自己配置为USB主机的功能。在旧的Raspberry Pi上,在USB
host 和device mode下使用单个USB 2控制器。 树莓派4B和树莓派400(不是CM4或CM4IO)增加了一个高性能的USB
3控制器,通过PCIe连接,以驱动主USB端口。USB- c电源连接器上仍然可以使用传统的USB
2控制器作为设备(otg_mode=0,默认值)。otg_mode=1请求将功能更强大的XHCI USB 2控制器用作该USB- c连接器上的另一个主机控制器。
由于CM4和CM4IO不包括外部USB 3控制器,因此树莓派操作系统映像在CM4上设置otg_mode=1以获得更好的性能。
超频参数
ref
官网