RK3328 存储 adb
为什么在3328 android10.0上外接u盘重启后每次都需要格式化呢?怎样去解决这个问题呢?
回帖(1)
2022-3-9 13:39:42
测试平台
Platform: RK3399/RK3328
OS: Android10.0
现象
在3328 android10.0上外接u盘/移动硬盘(u***/pcie)开机提示需要格式化,格式化后可以正常使用,但是重启后会再次提示需要格式化
分析
查看log,发现是系统获取LOST.DIR信息时出错,提示No space in …
log忘记保存
开机格式化后,重启前用adb进入外接存储删除LOST.DIR目录,重启后发现没有提示格式化也可以正常使用.
解决
diff --git a/external/fsck_msdos/dir.c b/external/fsck_msdos/dir.c
index 38c7014..31a4663 100644
--- a/external/fsck_msdos/dir.c
+++ b/external/fsck_msdos/dir.c
@@ -964,6 +964,7 @@ reconnect(int dosfs, struct bootblock *boot, struct fatEntry *fat, cl_t head)
if (lfcl < CLUST_FIRST || lfcl >= boot->NumClusters) {
/* Extend LOSTDIR? XXX */
pwarn("No space in %sn", LOSTDIR);
+ lfcl = (lostDir->head < boot->NumClusters) ? lostDir->head : 0;
return FSERROR;
}
lfoff = lfcl * boot->ClusterSize
测试平台
Platform: RK3399/RK3328
OS: Android10.0
现象
在3328 android10.0上外接u盘/移动硬盘(u***/pcie)开机提示需要格式化,格式化后可以正常使用,但是重启后会再次提示需要格式化
分析
查看log,发现是系统获取LOST.DIR信息时出错,提示No space in …
log忘记保存
开机格式化后,重启前用adb进入外接存储删除LOST.DIR目录,重启后发现没有提示格式化也可以正常使用.
解决
diff --git a/external/fsck_msdos/dir.c b/external/fsck_msdos/dir.c
index 38c7014..31a4663 100644
--- a/external/fsck_msdos/dir.c
+++ b/external/fsck_msdos/dir.c
@@ -964,6 +964,7 @@ reconnect(int dosfs, struct bootblock *boot, struct fatEntry *fat, cl_t head)
if (lfcl < CLUST_FIRST || lfcl >= boot->NumClusters) {
/* Extend LOSTDIR? XXX */
pwarn("No space in %sn", LOSTDIR);
+ lfcl = (lostDir->head < boot->NumClusters) ? lostDir->head : 0;
return FSERROR;
}
lfoff = lfcl * boot->ClusterSize
举报