树莓派/boot分区内的文件有什么用?
树莓派引导文件存储在SD卡的第一个分区中,即/boot分区,该分区的文件系统是FAT,所以可以在Windows,macOS和Linux设备上读取这个分区。
当树莓派通电时,它将从启动分区(/boot)中加载各种文件以启动各种处理器,然后启动Linux内核。
当Linux启动后,启动分区将挂载为/boot。
/boot分区内都有哪些文件?
分区内的文件如下:
bcm2708-rpi-b.dtb bcm2711-rpi-4-b.dtb fixup.dat overlays
bcm2708-rpi-b-plus.dtb bootcode.bin fixup_db.dat start4cd.elf
bcm2708-rpi-cm.dtb cmdline.txt fixup_x.dat start4db.elf
bcm2708-rpi-zero.dtb config.txt start4.elf
bcm2708-rpi-zero-w.dtb COPYING.linux issue.txt start4x.elf
bcm2709-rpi-2-b.dtb fixup4cd.dat kernel7.img start_cd.elf
bcm2710-rpi-2-b.dtb fixup4.dat kernel7l.img start_db.elf
bcm2710-rpi-3-b.dtb fixup4db.dat kernel8.img start.elf
bcm2710-rpi-3-b-plus.dtb fixup4x.dat kernel.img start_x.elf
bcm2710-rpi-cm3.dtb fixup_cd.dat LICENCE.broadcom
/boot分区内的文件都有什么用?
bootcode.bin
这是引导加载程序,由SoC在引导时加载,它执行一些非常基本的设置,然后加载其中一个start*.elf文件。Raspberry Pi 4上未使用bootcode.bin,因为它已由板载EEPROM中的启动代码替换。
start.elf,start_x.elf,start_db.elf,start_cd.elf,start4.elf,start4x.elf,start4cd.elf,start4db.elf
这些是二进制Blob(固件),已加载到SoC中的VideoCore上,然后接管启动过程。 start.elf是基本固件,start_x.elf包括相机驱动程序和编解码器,start_db.elf是固件的调试版本,start_cd.elf是简化版本,不支持编解码器和3D之类的硬件模块,并且在gpu_mem=16中指定时使用config.txt。
start4.elf,start4x.elf,start4cd.elf,和start4db.elf是树莓派4的固件文件。
fixup* .dat
这些是链接器文件,与start*.elf上一节中列出的文件配对。
cmdline.txt
引导时,内核命令行会传递到内核。
例如:
pi@raspberrypi:/boot $ cat cmdline.txt
console=serial0,115200 console=tty1 root=PARTUUID=d9b3f436-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
config.txt
包含许多用于设置树莓派的配置参数。
例如:
pi@raspberrypi:/boot $ cat config.txt
# For more options and information see
# http://rpf.io/configtxt
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
issue.txt
一些基于文本的管家信息,其中包含分发的日期和git commit ID。
例如:
pi@raspberrypi:/boot $ cat issue.txt
Raspberry Pi reference 2019-09-26
Generated using pi-gen, https://github.com/RPi-Distro/pi-gen, 80d486687ea77d31fc3fc13cf3a2f8b464e129be, stage4
ssh或ssh.txt
如果存在此文件,则将在启动时启用SSH。内容无关紧要,可以为空。否则默认情况下禁用SSH。
wpa_supplicant.conf
这是用于配置无线网络设置的文件(如果硬件具备此功能)。编辑国家代码和网络部分以适合您的情况。使用方式可以参考这篇文章设置树莓派wifi的几种方式。
设备树文件
有各种设备树blob文件,其扩展名为.dtb。它们包含树莓派各种模型的硬件定义,并在启动时用于根据检测到的树莓派模型来设置内核。
内核文件
引导文件夹将包含用于不同树莓派型号的各种内核映像文件:
注:lscpu该架构报告是armv7l,表示用于32位系统(即除了kernel8.img一切),以及aarch64用于64位系统。所述的armv7l情况下指的是被架构小端,而不是LPAE如由所指示l的kernel7l.img文件名。
设备树覆盖
在overlays子文件夹中包含设备树覆盖。这些用于配置可能连接到系统的各种硬件设备,例如Raspberry Pi Touch Display或第三方音板。使用以下条目中的条目来选择这些覆盖层config.txt。
原文作者:科技爱好者博客