问题描述
希望了解其Nvidia Shield(Tegra K1)平板电脑的内部存储是否仍然健康。该设备可能使用的是eMMC存储芯片,由于其较旧,因此想要查询存储介质的磨损级别信息。
解决方案
请注意,以下操作需要设备具有root权限,且仅适用于eMMC存储芯片。对于UFS存储芯片,相关信息可能不可用或需要进一步研究。
方案1:使用mmc
工具查询eMMC存储芯片的磨损级别信息
- 安装
mmc-utils
:首先,你需要安装mmc-utils
工具包,它包含了用于查询eMMC存储芯片磨损级别的命令行工具。
sh
sudo apt-get install mmc-utils - 查询磨损级别信息:使用
mmc extcsd read
命令读取eMMC存储芯片的EXT_CSD
寄存器,该寄存器包含了存储芯片的内部信息和磨损级别估计。
sh
sudo mmc extcsd read /dev/block/mmcblk0 | grep -E 'LIFE|EOL'
输出示例:
sh
eMMC Life Time Estimation A [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_A]: 0x03
eMMC Life Time Estimation B [EXT_CSD_DEVICE_LIFE_TIME_EST_TYP_B]: 0x03
eMMC Pre EOL information [EXT_CSD_PRE_EOL_INFO]: 0x01
解释: 0x03
表示健康状况估计在20%到30%的设备寿命之间。0x01
表示正常预寿终状态。通过
sysfs
接口查询磨损级别信息:同样地,你也可以通过sysfs
接口查询这些信息。
sh
cat /sys/devices/soc/7824900.sdhci/mmc_host/mmc0/mmc0:0001/life_time
cat /sys/devices/soc/7824900.sdhci/mmc_host/mmc0/mmc0:0001/pre_eol_info
输出示例:
sh
0x03
0x01
方案2:通过debugfs
查询eMMC存储芯片的磨损级别信息
- 查询
ext_csd
寄存器:使用cat /sys/kernel/debug/mmc0/mmc0:0001/ext_csd
命令直接读取ext_csd
寄存器的内容。
sh
cat /sys/kernel/debug/mmc0/mmc0:0001/ext_csd
需要注意的是,解析ext_csd
寄存器的原始输出需要额外的工作,具体解析方法可以参考相关文档。
方案3:查询UFS存储芯片的磨损级别信息(可能不可用)
对于UFS存储芯片,目前没有明确的信息表明其提供了磨损级别的估计功能。UFS存储芯片通常支持SCSI命令集,但其健康监测系统可能类似于SMART系统,具体情况需要进一步研究。
注意事项
- 由于eMMC和UFS存储芯片的通信协议不同,查询磨损级别信息的方法也有所不同。
- 上述方法仅适用于具有root权限的设备。
- 如果设备已经出现性能下降的情况,建议考虑更换存储芯片以延长设备使用寿命。
希望以上解决方案能够帮助你了解Android设备上存储介质的磨损级别信息。
正文完