OPENWRT 教程第十章 OpenWRT flash分区、文件系统

在linux系统中对闪存类存储器是采用MTD(内存技术设备)类设备驱动实现的,MTD是用于访问闪存类设备(ROM,FLASH)的linux驱动子系统。它的主要目的是使Flash闪存类设备更加容易的被访问,为此它在硬件和上层提供了一个抽象的接口使得在操作系统下我们可以像操作硬盘一样操作这类设备。仔细观察过linux启动信息的朋友会看到以下一段话。

3.291376] nand: 512 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    3.295094] 25 ofpart partitions found on MTD device qcom_nand.0
[    3.302578] Creating 25 MTD partitions on "qcom_nand.0":
[    3.308758] 0x000000000000-0x000000100000 : "0:SBL1"
[    3.315642] 0x000000100000-0x000000200000 : "0:MIBIB"
[    3.320495] 0x000000200000-0x000000280000 : "0:BOOTCONFIG"
[    3.325100] 0x000000280000-0x000000300000 : "0:BOOTCONFIG1"
[    3.330483] 0x000000300000-0x000000600000 : "0:QSEE_1"
[    3.337874] 0x000000600000-0x000000900000 : "0:QSEE"
[    3.343099] 0x000000900000-0x000000980000 : "0:DEVCFG_1"
[    3.346308] 0x000000980000-0x000000a00000 : "0:DEVCFG"
[    3.351498] 0x000000a00000-0x000000a80000 : "0:APDP"
[    3.356496] 0x000000a80000-0x000000b00000 : "0:APDP_1"
[    3.361601] 0x000000b00000-0x000000b80000 : "0:RPM_1"
[    3.366584] 0x000000b80000-0x000000c00000 : "0:RPM"
[    3.371717] 0x000000c00000-0x000000c80000 : "0:CDT_1"
[    3.376428] 0x000000c80000-0x000000d00000 : "0:CDT"
[    3.381630] 0x000000d00000-0x000000d80000 : "0:APPSBLENV"
[    3.386347] 0x000000d80000-0x000000e80000 : "0:APPSBL_1"
[    3.392203] 0x000000e80000-0x000000f80000 : "0:APPSBL"
[    3.397583] 0x000000f80000-0x000001000000 : "0:ART"
[    3.402148] 0x000001000000-0x000006600000 : "rootfs_1"
[    3.470810] 0x000006600000-0x000006f00000 : "0:WIFIFW_1"
[    3.478369] 0x000006f00000-0x00000c500000 : "rootfs"
[    3.543701] mtd: device 20 (rootfs) set to be root fi3.543963] mtdspli"0:WIFIFW"
[    3.560628] 0x00000ce00000-0x00000ce80000 : "0:ETHPHYFW"
[    3.561844] 0x00000ce80000-0x00000cf80000 : "0:board_data"
[    3.566604] 0x00000cf80000-0x00001e000000 : "0:arc_data"
[    3.775504] spmi spmi-0: PMIC Arb Version-2 (0x20010000)
知识兔
reating 25 MTD partitions on "qcom_nand.0":
知识兔

这段话的意思是,系统在qcom_nand 设备上创建了是25个分区,这几个分区的说明如表所示

分区id号分区位置分区大小分区作用
0:SBL10x000000000000-0x000000100000192KB引导程序
0:MIBIB0x000000030000-0x00000004000064KB引导程序配置
0:BOOTCONFIG0x000000040000-0x00000005000064KBMT7628初始参数
0:BOOTCONFIG10x000000050000-0x00000100000015.68MB 
0:QSEE_10x0000001853f2-0x00000100000014827KB

固件分区

文件系统子集

0:QSEE0x0000
00670000-0x000001000000
9792KB

固件分区

文件系统子集

可写分区子集

0:DEVCFG_1   
0:DEVCFG   
0:APDP   
0:APDP_1   
0:RPM_1   
0:RPM   
0:CDT_1   
0:CDT   
0:APPSBLENV   
0:APPSBL_1   

0:APPSBL

   
0:APPSBL   
0:ART   
rootfs_1   
0:WIFIFW_1   
rootfs   
0:ETHPHYFW   
0:board_data   
0:arc_data   
    

由于嵌入式的Flash容量很小,没有调整的必要,所以分区都是固定的,也因此不需要"分区表"这种在计算机

计算机