emmc设备节点创建时间太迟原因

2019-04-14 16:37发布

背景

emmc设备节点创建时间太晚导致启动挂载emmc脚本中判断设备节点不存在挂载失败,后面被hotplug的tf_mount挂载。

分析

1、查看emmc的VCCQ上电时间,经过测量发现上电开机时就被单片机拉上电。 2、查看时间点信息(单位秒): 驱动加载时间:03 emmc_mount挂载时间:09 没有节点 设备节点创建时间:13 hotplug挂载时间:13 3、查看hotplug挂载脚本 /lib/mountd/tfmount.sh extern_mount(){挂载函数 etc/hotplug.d/block/10-mount:140: extern_mount() { return 1; } etc/hotplug.d/block/10-mount:142: extern_mount "$mde_fstype" "$mde_device" "$mde_target" "$mde_options" hotplug.d hotplug2-common.rules hotplug2-init.rules hotplug2.rules 4、查看设备节点时间 crw-r--r-- 1 root root 234, 0 Jan 1 1970 ubi2 brw-r--r-- 1 root root 179, 1 Jan 22 11:37 mmcblk0p1 brw-r--r-- 1 root root 179, 0 Jan 22 11:37 mmcblk0 【不应该在这儿】 brw-r--r-- 1 root root 179, 32 Jan 22 11:37 mmcblk0rpmb Jan 22 11:37:03 www user.info kernel: mmcblk0: mmc1:0001 DG4008 7.28 GiB eason Jan 22 11:37:03 www user.info kernel: mmcblk0rpmb: mmc1:0001 DG4008 partition2 3 4.00 MiB Jan 22 11:37:03 www user.info kernel: mmcblk0: p1 root@www:~# stat /dev/mmcblk0 File: /dev/mmcblk0 Size: 0 Blocks: 0 IO Block: 4096 block special file Device: 10h/16d Inode: 14685 Links: 1 Device type: b3,0 Access: (0644/brw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2019-01-22 11:37:13.000000000 Modify: 2019-01-22 11:37:13.000000000 Change: 2019-01-22 11:37:13.000000000 5、查看hotplug没有发现异常,发现dts中有配置异常: &sdhc_1 { qcom,nonhotplug; 注释掉dts中sdhc_1中的qcom,nonhotplug;,设备时间节点正常创建和挂载。

总结

dts中配置为不支持热拔插设备,导致设备节点创建延后出现问题。