分享免费的编程资源和教程

网站首页 > 技术教程 正文

树莓派系统文件解析

goqiw 2024-09-12 16:21:31 技术教程 13 ℃ 0 评论

本篇blog来分析和总结下树莓派系统文件以及他们的作用。使用的系统是Raspberry Pi OS with desktop

System: 64-bit

Kernel version: 6.1

Debian version: 12 (bookworm)

先看一下顶级目录/root有如下的文件和文件夹

其中,

  1. LICENCE.broadcom: 这是 Broadcom 公司的许可证文件,包含了与 Broadcom 相关的许可信息。
  2. bcm2710-rpi-*.dtb 和 bcm2711-rpi-*.dtb: 这些是设备树二进制文件,它们描述了 Raspberry Pi 板上的硬件组件信息,如处理器、外设等。不同的文件对应于不同型号的 Raspberry Pi。
  3. cmdline.txt: 这个文件包含了内核启动时的命令行参数,例如根文件系统的位置、启动选项等。
  4. config.txt: 这是 Raspberry Pi 的配置文件,用于配置系统启动时的参数,如分辨率、内存分配等。
  5. fixup*.dat: 这些是固件文件,包含了一些用于修复和初始化硬件的固件信息。
  6. initramfs*: 这些文件是初始内存文件系统(Initial RAM Filesystem)的镜像,用于在启动过程中提供临时的文件系统。
  7. overlays/: 这个目录包含了一系列的设备树覆盖文件,可以在不修改主设备树的情况下对硬件进行配置。
  8. start*.elf: 这是 Raspberry Pi 启动加载器(bootloader)的主要组件之一,负责加载内核和启动树。
  9. System Volume Information/: 这是一个 Windows 特定的隐藏系统目录,通常会出现在 FAT 文件系统中。
  10. bootcode.bin: 这是 Raspberry Pi 启动加载器的一个关键组件,负责初始化硬件并加载 start*.elf 文件。
  11. issue.txt: 这是一个文本文件,包含了一些有关系统的信息。

总的来说,这些文件组成了树莓派系统的启动和配置环境,它们协同工作以确保系统能够正确启动并运行。

我们再来细致的看一下cmdline.txt的内容。cmdline.txt 是树莓派操作系统中一个非常重要的配置文件,它包含了启动内核时传递给内核的参数。具体来说,cmdline.txt 文件包含了一个命令行参数字符串,这些参数会在树莓派启动时传递给 Linux 内核。这些参数可以控制内核的行为,例如设置根文件系统的位置、指定启动模式等。

在我使用的debian bookworm版本系统中,cmdline.txt的内容是这样的:

console=serial0,115200 console=tty1 root=PARTUUID=f6a7c4bd-02 rootfstype=ext4 fsck.repair=yes rootwait quiet init=/usr/lib/raspberrypi-sys-mods/firstboot splash plymouth.ignore-serial-consoles

我们来解释一下其中的内容:

  1. console=serial0,115200:将串口0(也就是 UART 接口)设置为控制台,波特率为 115200。这意味着可以通过串口连接来进行通信和调试。
  2. console=tty1:在控制台 1(也就是图形用户界面)上显示系统信息。
  3. root=PARTUUID=f6a7c4bd-02:指定根文件系统的位置,这里是通过 PARTUUID(分区唯一标识符)来指定的。这确保了根文件系统会被正确地挂载。
  4. rootfstype=ext4:指定根文件系统的类型,这里是 ext4 文件系统。
  5. fsck.repair=yes:在启动时如果检测到文件系统错误,将自动尝试修复。
  6. rootwait:等待根文件系统准备好后再继续启动。
  7. quiet:禁止显示大量启动信息,使启动过程更为安静。
  8. init=/usr/lib/raspberrypi-sys-mods/firstboot:指定要运行的第一个初始化程序。这通常用于执行一些系统初始化的任务。
  9. splash:允许显示启动画面(如果系统配置了这个功能的话)。
  10. plymouth.ignore-serial-consoles:忽略串口控制台,以避免干扰启动画面的显示。

我们再来看一下config.txt文件。config.txt 是 Raspberry Pi 系统中的一个重要配置文件,用于控制硬件参数和设置。它位于启动分区中,由 bootloader 在启动时读取并应用。

以下是 config.txt 文件的一些常见用途:

  1. 分辨率和显示设置:可以通过修改 config.txt 来设置显示器的分辨率、刷新率和其他显示参数。
  2. 超频:可以在 config.txt 中配置 Raspberry Pi 的CPU、GPU和内存的超频参数,以提升性能。
  3. 内存分配:可以调整系统中内存的分配方式,例如将 GPU 内存大小调整为满足特定需求。
  4. 电源管理:可以通过 config.txt 控制供电管理的行为,例如禁用通过 USB 端口供电。
  5. 设备树配置:可以在 config.txt 中加载特定的设备树文件,以配置硬件或启用外部设备。
  6. 启动选项:可以设置启动时的一些选项,例如禁用 splash 屏幕、指定根文件系统等。
  7. Overlays:可以通过 config.txt 加载一些硬件特定的功能或功能模块,例如 GPIO 扩展板。
  8. 音频设置:可以配置音频参数,如选择音频输出设备或配置 I2S 音频等。

总的来说,config.txt 提供了一种在硬件级别上对 Raspberry Pi 进行配置和定制的方法,以满足特定应用或需求。然而,编辑此文件时应小心,因为错误的配置可能会导致系统启动问题或硬件损坏。

在我使用的debian bookworm版本系统中,config.txt文件的内容是这样的:

# For more options and information see
# http://rptl.io/configtxt
# Some settings may impact device functionality. See link above for details
 
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
 
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
 
# Additional overlays and parameters are documented
# /boot/firmware/overlays/README
 
# Automatically load overlays for detected cameras
camera_auto_detect=1
 
# Automatically load overlays for detected DSI displays
display_auto_detect=1
 
# Automatically load initramfs files, if found
auto_initramfs=1
 
# Enable DRM VC4 V3D driver
dtoverlay=vc4-kms-v3d
max_framebuffers=2
 
# Don't have the firmware create an initial video= setting in cmdline.txt.
# Use the kernel's default instead.
disable_fw_kms_setup=1
 
# Run in 64-bit mode
arm_64bit=1
 
# Disable compensation for displays with overscan
disable_overscan=1
 
# Run as fast as firmware / board allows
arm_boost=1
 
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
otg_mode=1
 
[all]

点击树莓派系统文件解析 - 古月居可查看全文

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表