树莓派目录结构
/boot 放置Linux内核以及其他用来启动树莓派的软件包
/bin 放置与Raspbian有关(包括运行图形界面所需的)的二进制可执行文件
/dev 这是虚拟文件夹之一,用来访问所有连接设备,包括存储卡
/etc 系统管理和配置文件
/home Linux上的我的文档,包含用户名命名的文件夹
/lib 各种应用需要的代码库
/lost+found 一般情况下是空的,当系统非法关机后,这里就存放了一些文件
/media 放置可移动存储驱动器,比如USB和CD
/mnt 用来手动挂在外部硬件驱动器或存储设备
/opt 可选软件文件夹,非系统部分的软件将会放置在这里
/sbin 放置超级用户使用的系统管理命令
/sys 放置操作系统文件
/tmp 放置临时文件
/usr 放置用户使用的程序
/var 虚拟文件,用于程序保存数据
1./boot分区内的文件都有什么用?
树莓派引导文件存储在SD卡的第一个分区中,即/boot分区,该分区的文件系统是FAT,所以可以在Windows,macOS和Linux设备上读取这个分区。
当树莓派通电时,它将从启动分区(/boot)中加载各种文件以启动各种处理器,然后启动Linux内核。
当Linux启动后,启动分区将挂载为/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
树莓派因为没有BIOS,所以Raspbian对设备的加载都是依赖在 /boot/config.txt 中的配置来加载。当Linux内核加载时,会读取 /boot/config.txt 中的设备配置和设备参数配置来把设备动态加载到Device Tree(DT)中。
dtoverlay=<device>
dtparam=<param1>,<param2>,...
-
dtoverlay上配你想要加载设备,这些设备都必须是Raspbian支持的,它们位于
/boot/overlays
下。这是设备他们的说明位于/boot/overlays/README
,可以在这里查看到Raspbian支持的每个设备的具体信息和参数(也可以直接在官方Github查阅最新的设备支持) -
dtparam是设备的参数,具体信息可根据
/boot/overlays/README
中的说明来配置
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
。它们包含树莓派各种模型的硬件定义,并在启动时用于根据检测到的树莓派模型来设置内核。
内核文件
引导文件夹将包含用于不同树莓派型号的各种内核映像文件:
文档名称 | 处理器 | Raspberry Pi模型 | 笔记 |
---|---|---|---|
kernel.img | BCM2835 | Pi zero,Pi 1 | |
kernel7.img | BCM2836,BCM2837 | Pi 2,Pi 3 | 后来的Pi 2使用BCM2837 |
kernel7l.img | BCM2711 | Pi 4 | 大型物理地址扩展(LPAE) |
kernel8.img | BCM2837,BCM2711 | Pi 2,Pi 3,Pi 4 | Beta 64位内核1。带有BCM2836的早期Pi 2不支持64位。 |
注:lscpu
该架构报告是 armv7l
,表示用于32位系统(即除了kernel8.img一切),以及 aarch64
用于64位系统。所述的 armv7l
情况下指的是被架构小端,而不是 LPAE
如由所指示l
的 kernel7l.img
文件名。
设备树覆盖
在overlays
子文件夹中包含设备树覆盖。这些用于配置可能连接到系统的各种硬件设备,例如Raspberry Pi Touch Display或第三方音板。使用以下条目中的条目来选择这些覆盖层config.txt。