Platform: RK3368

OS: Android 6.0

Kernel: 3.10.0


文章目录

  • 现象
  • 解决办法

现象

重启进recovery升级update.zip时,不进升级界面,而是进入recovery界面。并有打印错误"“E:failed to mount /cache /dev/block/rknand_cache (No such file or directory)”

升级日志:

Starting recovery (pid 156) on Mon Jan 21 09:21:53 2013
read cmdline
cmdline=earlyprintk=uart8250-32bit,0xff690000 console=ttyS2 androidboot.baseband=N/A androidboot.selinux=enforcing androidboot.hardware=rk30board androidboot.console=ttyS2 init=/init mtdparts=rk29xxnand:0x00002000@0x00000000(parameter),0x00002000@0x00002000(uboot),0x00002000@0x00004000(trust),0x00002000@0x00006000(misc),0x00008000@0x00008000(resource),0x00008000@0x00010000(kernel),0x00010000@0x00018000(boot),0x00010000@0x00028000(recovery),0x00038000@0x00038000(backup),0x00040000@0x00070000(cache),0x00002000@0x000B0000(kpanic),0x00200000@0x000B2000(system),0x00008000@0x002B2000(metadata),0x00002000@0x002BA000(baseparamer),0x00020000@0x002BC000(radical_update),-@0x002DC000(userdata) storagemedia=nand loader_charged uboot_logo=0x02000000@0x7dc00000:0x01000000 loader.timestamp=2018-12-12_17:12:58bootmode = unknown
recovery filesystem table
=========================0 /mnt/internal_sd vfat /dev/block/rknand_user 01 /mnt/external_sd vfat /dev/block/mmcblk0p1 02 /system ext4 /dev/block/rknand_system 03 /cache ext4 /dev/block/rknand_cache 04 /metadata ext4 /dev/block/rknand_metadata 05 /data ext4 /dev/block/rknand_userdata 06 /cust ext4 /dev/block/rknand_cust 07 /custom ext4 /dev/block/rknand_custom 08 /radical_update ext4 /dev/block/rknand_radical_update 09 /misc mtd misc 010 /uboot mtd uboot 011 /charge mtd charge 012 /resource mtd resource 013 /parameter mtd parameter 014 /boot mtd boot 015 /recovery mtd recovery 016 /backup mtd backup 017 /trust mtd trust 018 /baseparamer mtd baseparamer 019 /tmp ramdisk ramdisk 0I/ [File] : bootable/recovery/recovery.cpp; [Line] : 1301; [Func] : SetSdcardRootPath; InternalSD_ROOT: /mnt/internal_sd
I/ [File] : bootable/recovery/recovery.cpp; [Line] : 1303; [Func] : SetSdcardRootPath; ExternalSD_ROOT: /mnt/external_sd
D/ [File] : bootable/recovery/recovery.cpp; [Line] : 1980; [Func] : main; to dump args befor get_args() : 1 argument(s) : /sbin/recovery
matches 0, mtdnum -1, mtdsize 0, mtderasesize 0, mtdname
matches 4, mtdnum 0, mtdsize 400000, mtderasesize 4000, mtdname parameter
matches 4, mtdnum 1, mtdsize 400000, mtderasesize 4000, mtdname uboot
matches 4, mtdnum 2, mtdsize 400000, mtderasesize 4000, mtdname trust
matches 4, mtdnum 3, mtdsize 400000, mtderasesize 4000, mtdname misc
matches 4, mtdnum 4, mtdsize 1000000, mtderasesize 4000, mtdname resource
matches 4, mtdnum 5, mtdsize 1000000, mtderasesize 4000, mtdname kernel
matches 4, mtdnum 6, mtdsize 2000000, mtderasesize 4000, mtdname boot
matches 4, mtdnum 7, mtdsize 2000000, mtderasesize 4000, mtdname recovery
matches 4, mtdnum 8, mtdsize 7000000, mtderasesize 4000, mtdname backup
matches 4, mtdnum 9, mtdsize 8000000, mtderasesize 4000, mtdname cache
matches 4, mtdnum 10, mtdsize 400000, mtderasesize 4000, mtdname kpanic
matches 4, mtdnum 11, mtdsize 40000000, mtderasesize 4000, mtdname system
matches 4, mtdnum 12, mtdsize 1000000, mtderasesize 4000, mtdname metadata
matches 4, mtdnum 13, mtdsize 400000, mtderasesize 4000, mtdname baseparamer
matches 4, mtdnum 14, mtdsize 4000000, mtderasesize 4000, mtdname radical_update
matches 4, mtdnum 15, mtdsize 8E800000, mtderasesize 4000, mtdname userdata
find_partition : p->name parameter, name misc
find_partition : p->name uboot, name misc
find_partition : p->name trust, name misc
find_partition : p->name misc, name misc260 : devname : /dev/block/rknand_misc
E:Can't find misc
E/ [File] : bootable/recovery/bootloader.cpp; [Line] : 82; [Func] : get_bootloader_message_mtd; Can't find misc
failed to create /cache dir,err=File exists!
mount /cache /dev/block/rknand_cache (ext4)
E:failed to mount /cache /dev/block/rknand_cache (No such file or directory)
E/ [File] : bootable/recovery/roots.cpp; [Line] : 139; [Func] : ensure_path_mounted; f0.

解决办法

由于rk3368是在init.rc中加载flash驱动,所以在recovery运行时,block设备节点可能还未生成。

on fsinsmod /rk30xxnand_ko.ko

所以需要等block设备节点生成后再挂载cache分区。在bootable/recovery/recovery.cpp的main函数中做以下修改:

    printf("Starting recovery (pid %d) on %s", getpid(), ctime(&start));if(check_sdboot()==0) bSDBoot = true;   else if(check_usbboot()==0)bUsbBoot = true;load_volume_table();SetSdcardRootPath();
#ifdef LogToSDCardcopy_log_to_sd();
#endif
+    //cache may not ready,so wait a few seconds.
+    for(int n = 0; n < 3; n++) {
+        if(0 == ensure_path_mounted(CACHE_LOG_DIR)){
+            break;
+        }else {
+             printf("delay 1sec\n");
+             sleep(1);
+        }
+    }

recovery升级系统时挂载cache分区失败相关推荐

  1. 服务器装系统提示获取分区失败,U盘重装系统时获取硬盘分区失败如何解决?...

    使用U盘重装系统非常方便,但是当我们使用U盘一键装系统时,如果出现获取硬盘分区失败,这时候应该怎么办?下面小编就来教你具体的解决方法. U盘一键重装系统,小编推荐>>>系统之家U盘一 ...

  2. 服务器装系统提示获取分区失败,u盘装系统时获取硬盘分区失败怎么办

    我们使用U盘一键装系统时,如果出现获取硬盘分区失败,这时候应该怎么办?下面和 先回到PE系统中,尝试打开资源管理器中能否看到盘符,如果不行说明是硬盘问题,需要更换硬盘:如果可以,重启电脑后进入BIOS ...

  3. 计算机为动态分区无法安装系统,装系统时提示目标分区是动态磁盘的gpt分区,需要在pe环境下进行备份或还原怎么解决...

    很多用户在重装系统的时候,都喜欢借助一些工具来重装,比如一键重装工具,但是有用户在使用一键重装工具装系统时出现了"目标分区是动态磁盘的gpt分区,需要在pe环境下进行备份或还原"的 ...

  4. Linux系统下挂载Windows分区

    1. 手工挂载 在Linux中也可以读取Windows分区,包括fat32格式的和ntfs格式的.首先你得知道Linux下对硬盘分区的称呼.比如Windows下的C盘通常是hda1,D盘是hda5,E ...

  5. gpt分区android系统备份,装系统时提示目标分区是动态磁盘的gpt分区,需要在pe环境下进行备份或还原怎么解决...

    很多用户在重装系统的时候,都喜欢借助一些工具来重装,比如一键重装工具,但是有用户在使用一键重装工具装系统时出现了"目标分区是动态磁盘的gpt分区,需要在pe环境下进行备份或还原"的 ...

  6. ghostwin7系统时不小心分区了的找到数据办法

    重新分区是因为在重装系统时,选择了错误的选项导致全盘分区了,装完之后文件全部丢失.想要恢复丢失分区的文件,需要注意,别往现在的这个盘存入新的文件(因为现在存入的文件可能会覆盖原先DEF盘的文件).可以 ...

  7. 升级系统服务器出错,win10更新失败80070002错误怎么办

    win10更新失败80070002错误怎么办?很多用户在更新系统时会出现提示80070002错误,或者在打补丁时也会出现这样的错误提示,那该怎么办呢,下面小编就告诉大家win10更新失败8007000 ...

  8. 问题已解决:重装系统遇到的问题(2)——在pe界面装系统时出现“还原[C:]失败,错误代码:2”

    为下载的iso文件有问题,最后直接用小白一键重装系统,自动下载镜像文件,成功解决.

  9. 计算机更新80072f76,更新升级win10系统时出现错误代码0x80072f76怎么办

    win10系统更新升级时出现错误代码0x80072f76怎么办?最近使用win10系统的朋友越来越多了,随之而来的就是win10更新升级系统时出现的问题:今天给大家分享的是更新升级win10系统时,出 ...

最新文章

  1. TSNE 附有codechina代码
  2. 从命令行传递其他变量来制作
  3. FPGA篇(八)FPGA学习经典网站推荐 (转)
  4. element-ui table点击某行,修改背景颜色(即高亮)
  5. dede如何做SEO,一起探讨下
  6. angularjs 事件指令
  7. Leetcode-MySQL-180. 连续出现的数字
  8. Bootstrap3 屏幕阅读器和键盘导航
  9. 哈希分区和顺序分区_SQL Server中的哈希分区
  10. 机械自动化算不算计算机相关专业,机械设计制造及其自动化专业属于什么类别...
  11. startup.bat闪退解决
  12. 局域网内如何通过代理上网
  13. lammps案例:分子自由落体运动模拟
  14. 在c语言中 不可表示的字符是什么,C 语言易错点综合
  15. Kubernetes 1.25 正式发布,多方面重大突破
  16. matlab2010 notebook,Matlab在Win10 64位下用notebook的问题
  17. AsyncTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
  18. 说大数据杀熟,这锅可不背!
  19. 计算机科学荣誉理学学士学位,伦敦大学金史密斯学院计算机科学本科讲述.pdf...
  20. aws scp上传下载文件

热门文章

  1. 05-jQuery对象(CSS)
  2. Acsl竞赛要考哪种计算机语言,美国计算机奥赛(ACSL)开始纳新
  3. 多渔:对于人性,规则和赚钱的思考!
  4. 思科瘦AP转胖AP操作步骤-附1602、3602系列AP下载链接
  5. python迭代器、生成器及装饰器
  6. 进程分配算法(FCFS,SJF,RR)
  7. 世界最大主跨径飞燕式系杆拱桥成功吊装首节主拱
  8. netfilter/iptables详解
  9. 以太网交换机(计算机网络)
  10. Python遍历目录报错:NotADirectoryError: [WinError 267] 目录名称无效