配置ABOOT:MTD分区与根文件系统

需积分: 17 1 下载量 168 浏览量 更新于2024-09-09 收藏 5KB TXT 举报
"这篇文档是关于‘aboot config’的txt日记文档,主要涉及Linux启动过程中设置环境变量和bootloader参数。" 在嵌入式Linux系统中,`aboot`通常指的是引导加载器(bootloader),它是系统启动时运行的第一段代码,负责加载操作系统内核并传递控制权。在配置aboot时,我们关注的关键点是设置环境变量和boot arguments (`bootargs`),这些设置直接影响系统的启动过程和挂载文件系统。 1. **bootargs**: `bootargs` 是传递给内核的一系列启动参数,它定义了系统启动时的一些关键配置,例如根文件系统类型、内存分配等。例如: - `root=/dev/mtdblock1rw`: 这里指定了根文件系统位于mtdblock1设备,并且以读写模式挂载。 - `rootfstype=jffs2`: 表示根文件系统类型为JFFS2(Journaling Flash File System 2)。 - `mtdparts`: 用于定义物理映射闪存(`phys_mapped_flash`)的分区,如kernel、rootfs、Boot、Env等。 - `console=ttyS0,115200n8`: 设置串行控制台在ttyS0上,波特率115200,数据位8,无奇偶校验,停止位1。 2. **mtdparts**: MTD(Memory Technology Device)是Linux内核中的驱动框架,用于处理非易失性存储器,如闪存。`mtdparts`环境变量用于定义MTD设备的分区,如上例所示,定义了不同的分区大小和用途,如kernel、rootfs、Boot、Env等。 3. **setenv** 和 **saveenv**: `setenv` 用于设置环境变量,而 `saveenv` 命令则将这些设置保存到非易失性存储中,以便在下一次启动时使用。 4. **bootcmd**: `bootcmd` 是一个特殊的环境变量,包含了启动命令序列。例如,`bootm 0xbf000000` 会执行位于地址0xbf000000的代码,这通常是加载和启动内核。 5. **保护与安全**: 文档中提到了`protect off all`,这可能是指解除所有Flash区域的写保护,以便进行更新或配置。`saveenv`之后通常需要保护环境变量区域,防止意外修改。 6. **设备树**: 在某些系统中,设备树(`fdt`)被用来描述硬件结构,以便内核能够正确识别和初始化硬件。在`bootargs`中指定`fdt`分区位置有助于内核加载设备树 blob。 7. **文件系统类型**: 文档提到了几种不同的文件系统类型,如ext2、jffs2、squashfs,这些都是针对嵌入式设备常见的文件系统,每种都有其优缺点和适用场景。 在配置aboot时,需要根据具体硬件和系统需求调整这些参数。正确设置这些值对于确保系统正常启动和运行至关重要。