1

问题:Linux 可以成功休眠到交换分区(/dev/mmcblk0p11)echo disk > /sys/power/state,但无法从该分区恢复。

  • Linux版本:4.9.110
  • 存储:EMMC
  • 内核 CMD 行:console=ttyS0 root=/dev/mmcblk0p10 rw rootfstype=ext4 rootwait init=/linuxrc resume=/dev/mmcblk0p11 no_console_suspend

/dev/mmcblk0p9: UUID="b744d4f3-df1c-4b90-a0da-919f4396d529" TYPE="ext4" /dev/mmcblk0p10: UUID="cf79a362-220f-42fc-8078-01d7777fda99" TYPE="ext4" /dev/mmcblk0p11 : UUID="5686ee03-1120-4454-9c52-fa603adfeee5" TYPE="swap" /dev/mmcblk0p12: UUID="a435d0a3-7ec3-4b83-b4c1-6468399eda6d" TYPE="ext4" /dev/mmcblk0p13: UUID=" 52d53a11-af79-49c3-a2bf-1161f242f858" TYPE="ext4" /dev/mmcblk0p14: UUID="00a957a1-4463-4723-98a8-9e075611c670" TYPE="ext4"

/dev/mmcblk0p11原因似乎是 PM在系统启动时找不到。启动日志:

  1. [0.899349] ==>下午:软件简历
  2. [0.902921] ==> PM:检查休眠映像分区/dev/mmcblk0p11
  3. [0.909827] ==>DM:/home/tekdev/tsdk-s5l/s5l_linux_sdk/ambarella/kernel/linux-4.9/init/do_mounts.c 217,/dev/mmcblk0p11
  4. [0.921074] ==> DM: 找不到 mmcblk0p11
  5. [0.925472] ==> PM:software_resume 853,/dev/mmcblk0p11
  6. [0.930939] ==>DM:内核/linux-4.9/init/do_mounts.c 217,/dev/mmcblk0p11
  7. [0.942177] ==> DM: 找不到 mmcblk0p11
  8. [0.946558] ==>下午:软件简历869
  9. [0.950487] PM:休眠图像不存在或无法加载。
  10. [0.957535] ==>DM:内核/linux-4.9/init/do_mounts.c 217,/dev/mmcblk0p10
  11. [0.968795] ==> DM: 找不到 mmcblk0p10
  12. [0.973188]-->内核/linux-4.9/init/do_mounts_initrd.c initrd_load 121
  13. [0.984341]-->内核/linux-4.9/init/do_mounts_initrd.c initrd_load 123
  14. [0.995556]等待根设备/dev/mmcblk0p10 ...
  15. [1.000971] ==>DM:内核/linux-4.9/init/do_mounts.c 217,/dev/mmcblk0p10
  16. [1.012220] ==> DM: 找不到 mmcblk0p10
  17. [1.016610] ==>等待根开发...
  18. [1.033183]随机:快速初始化完成
  19. [1.125418] ==>DM:内核/linux-4.9/init/do_mounts.c 217,/dev/mmcblk0p10
  20. [1.136657] ==> DM:找不到 mmcblk0p10
  21. [1.141038] ==>等待根开发...
  22. [1.195807] mmc0:地址 0001 处的新 HS200 MMC 卡
  23. [1.202359]mmcblk0:mmc0:0001 H8G1e 7.28 GiB
  24. [1.208214]mmcblk0boot0:mmc0:0001 H8G1e 分区 1 4.00 MiB
  25. [1.215503]mmcblk0boot1:mmc0:0001 H8G1e 分区 2 4.00 MiB
  26. [1.222778]mmcblk0rpmb:mmc0:0001 H8G1e 分区 3 4.00 MiB
  27. [1.231753] mmcblk0: bst bld ptb atf pba pri sec bak rom lnx swp 添加 adc raw
  28. [1.245428] ==>DM:内核/linux-4.9/init/do_mounts.c 217,/dev/mmcblk0p10
  29. [1.256644] ==> DM: 成功找到 mmcblk0p10

我发现当 PM 尝试恢复时 mmc 还没有准备好。PM 尝试在第 2 行恢复,但 mmc 在第 22 行启动 init。

我做了什么试图修复它。
1.在Kernel CMD行添加resumewait,结果是内核将无限等待mmcblk0p11准备好。

4

0 回答 0