Chipset: msm8926
OS: Android4.4
Kernel: 3.4.0
在N久之前的会议上留下了两个问题:
1. 内核在加载emmc驱动时是如何知道当前有几个分区的?
2. 如何知道/dev/mmcblkXpX对应的是哪个分区呢?
读取分区
加载sd/emmc驱动的时候,有如下流程:
来看看Check_partition():
核心的部分是check_part这个结构体,里面放的都是对应的解析分区的算法:
算法不是我们需要关注的,解析哪一块区域等小弟看了partition再给大家解释吧。
解析完成之后放到struct parsed_partitions也就是这里的state变量的parts元素里:
然后通过add_partition()将这些part信息添加到disk里去。
有多少分区可以从开机Log看到:
确实我们在8926平台上定义的分区个数是34个:
[non_hlos\common\build\partition_f5.xml]
分区对应label
其实Linux已经在/dev/block下提供了查看方法:
从本质上来说,这些信息是从解析出来的struct parsed_partitions中的info变量获取的:
对应的volname存的就是分区的label name.
Kris.Fei
2014/09/11
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/37924.html