系列文章:
Android存储分区与Rockchip平台的分区命名及U-Boot配置
Rockchip u-boot阶段命令行和代码方式读取u盘内容并解析
Android存储分区与Rockchip平台的分区命名及U-Boot配置
在Android和其他嵌入式系统中,存储设备和其分区的管理是一个核心组件。本文将探讨Android系统中的存储分区,特别是在Rockchip平台上的命名、管理以及U-Boot的配置和使用。
1. Android的存储分区
Android设备上的主要分区可能包括boot
、system
、data
、cache
、recovery
等。每个分区都有其特定的用途。
2. Rockchip平台的分区命名
在Rockchip平台上,分区的命名和配置通常是由设备树(DTB/DTBO)定义的。例如,mmc 0:a
中的0
代表第0个存储设备,而a
是一个十六进制数,代表10,所以它对应于第10个分区。
rk3568_r:/ # df Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 1001716 824 1000892 1% /dev tmpfs 1001716 12 1001704 1% /mnt /dev/block/mmcblk0p11 11760 144 11616 2% /metadata /dev/block/dm-0 956964 954064 2900 100% / /dev/block/dm-5 692224 96 692128 1% /mnt/scratch overlay 692224 96 692128 1% /system overlay 692224 96 692128 1% /vendor overlay 692224 96 692128 1% /odm overlay 692224 96 692128 1% /product overlay 692224 96 692128 1% /system_ext tmpfs 1001716 0 1001716 0% /apex tmpfs 1001716 264 1001452 1% /linkerconfig /dev/block/mmcblk0p10 364504 1084 363420 1% /cache /dev/block/mmcblk0p12 3952 20 3932 1% /mnt/private /dev/block/dm-6 25528320 41636 25486684 1% /data tmpfs 1001716 0 1001716 0% /data_mirror /dev/fuse 25528320 41636 25486684 1% /mnt/user/0/emulated
在代码里ext4load mmc 0:a
就等于/dev/block/mmcblk0p10 /cache
,Linux系统下是ext4load mmc 0:8
就等于/dev/block/mmcblk0p8 /
。
3. 使用ext4ls
命令查看分区内容
ext4ls
是uboot中用来查看存储设备的ext2/3/4分区里的内容的命令。
4. 如何确定分区的用途
要确定Android设备上各个分区的用途,可以使用以下方法:
- 使用
fastboot
工具查看设备的分区信息。 - 查看
/proc/mounts
文件来查看当前挂载的所有文件系统及其挂载点。 - 查看
/etc/fstab
文件获取分区的详细信息(linux)。 - 使用第三方应用,如"DiskInfo",来显示设备的分区信息(linux)。
5. Rockchip平台上的U-Boot配置和使用
- 一级loader模式: 如果Rockchip设备使用的是一级loader模式,可以在系统启动时通过调试串口长按ctrl+c进入U-Boot命令模式(刚上电的适合快速按ctrl+c, 部分系统是按任意键)。
- 二级loader模式: 如果Rockchip设备使用的是二级loader模式,需要在开机时有1秒的倒计时,在串口输入任意键即可进入U-Boot命令模式。如果想设置U-Boot默认不进入命令行模式,可以修改
u-boot/include/configs/evb3568.h
文件中的CONFIG_BOOTDELAY
宏为0。 - 串口波特率问题: 如果Rockchip Linux系统使用的是一级loader模式,但串口波特率设置不正确,导致无法通过ctrl+c进入U-Boot命令模式。可以尝试修改
u-boot/include/configs/evb3568.h
文件中的CONFIG_BAUDRATE
宏为正确的波特率。 - U-Boot启动倒计时问题: 如果的Rockchip Linux系统使用的是二级loader模式,但U-Boot启动倒计时设置为0,导致无法通过输入任意键进入U-Boot命令模式。可以尝试修改
u-boot/include/configs/evb3568.h
文件中的CONFIG_BOOTDELAY
宏为大于0的值。
结论
理解Android设备上的存储分区、其命名以及U-Boot的配置和使用是嵌入式系统开发和管理的关键部分。特别是在像Rockchip这样的特定平台上,了解其分区命名、结构以及U-Boot的配置可以帮助我们了解原理加速板砖。