Спячка и резюме по ARM - PullRequest
       19

Спячка и резюме по ARM

0 голосов
/ 18 декабря 2018

Проблема: 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" swap "= swap"dev / mmcblk0p12: UUID = "a435d0a3-7ec3-4b83-b4c1-6468399eda6d" TYPE = "ext4" / dev / mmcblk0p13: UUID = "52d53a11-af79-49c3-a2bf-1161f242 / dev4" t4 "t4" t4 "t4" t4 t4 "t4" t4 "t4" t4 "t4" t4 "t4" t4 t4) t4UUID = "00a957a1-4463-4723-98a8-9e075611c670" TYPE = "ext4"

Причина, по-видимому, в том, что PM не может найти /dev/mmcblk0p11 при загрузке системы.Журналы загрузки:

  1. [0.899349] ==> PM: software_resume
  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: kernel / linux-4.9 /init / do_mounts.c 217, / dev / mmcblk0p11
  7. [0.942177] ==> DM: не удается найти mmcblk0p11
  8. [0.946558] ==> PM: software_resume 869
  9. [0.950487] PM: Образ гибернации отсутствует или не может быть загружен.
  10. [0.957535] ==> DM: kernel / linux-4.9 / init / do_mounts.c 217, / dev / mmcblk0p10
  11. [0.968795] ==> DM: не удалось найти mmcblk0p10
  12. [0.973188] -> kernel / linux-4.9 / init / do_mounts_initrd.c initrd_load 121
  13. [0.984341] --> kernel / linux-4.9 / init / do_mounts_initrd.c initrd_load 123
  14. [0.995556] Ожидание корневого устройства /dev/mmcblk0p10...
  15. [1.000971] ==> DM: kernel / linux-4.9 / init / do_mounts.c 217, /dev / mmcblk0p10
  16. [1.012220] ==> DM: не удается найти mmcblk0p10
  17. [1.016610] ==> ждать root dev ...
  18. [1.033183] random:быстрая инициализация выполнена
  19. [1.125418] ==> DM: kernel / linux-4.9 / init / do_mounts.c 217, / dev / mmcblk0p10
  20. [1.136657] ==> DM: не удаетсянайдено mmcblk0p10
  21. [1.141038] ==> ждать корня dev ...
  22. [1.195807] mmc0: новая карта HS200 MMC по адресу 0001
  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 * 10 * 1070 [10BB]1.222778] mmcblk0rpmb: mmc0: 0001 H8G1e раздел 3 4.00 МБ
  26. [1.231753] mmcblk0: bst bld ptb atf pba при секундах от lnx swp добавить adc raw
  27. [1.245428] ==>: kernel / linux-4.9 / init / do_mounts.c 217,/ dev / mmcblk0p10
  28. [1.256644] ==> DM: найден успех mmcblk0p10

Я обнаружил, что mmc не готов, когда PM пытается возобновить работу.PM пытается возобновить со строки 2, но mmc запускает init со строки 22.

То, что я сделал для того, чтобы попытаться это исправить.
1. добавьте ожидание возобновления в строку CMD ядра, в результате ядро ​​будет бесконечно ждатьmmcblk0p11 готов.

...