rtcwake support on BeagleBone Blue

Hello,

I am experimenting with rtcwake on BeagleBone Blue. Running command:

sudo rtcwake -d /dev/rtc0 -m standby -s 20

does make board to switch off but it doesn’t come back online by itself. Pressing power button brings board online very fast (in few seconds) and even keeps original ssh connection so I assume standby mode works but clock might be an issue. I have synchronised hardware clock with system clock by running:

sudo hwclock -w

and I see clocks are in sync.

I am powering BBB from 2S LiPo as my barrel connector is fried by accidentally attaching laptop charger (19V).

I tried to check time before and after standby by running:

sudo hwclock && date && sudo rtcwake -d /dev/rtc0 -m standby -s 20 && date && sudo hwclock
2021-04-17 21:42:40.123908+00:00
Sat 17 Apr 2021 09:42:40 PM UTC
rtcwake: wakeup from “standby” using /dev/rtc0 at Sat Apr 17 21:43:02 2021
Sat 17 Apr 2021 09:43:06 PM UTC
2021-04-17 21:43:07.802256+00:00

Last 2 time lines are printed after manual wake up by pressing power button. They seem to be showing that only twenty some seconds passed but actually much more time passed until I pressed power button. Which is weird because if RTC doesn’t work then I would expect time to be reset. If it does work it should be correct time.

I wanted to ask if anyone managed rtcwake working or it is not even supposed to work on BeagleBone Blue? This thread https://groups.google.com/g/beagleboard/c/wJln2crGaFA indicates that it should be possible but I am not sure which board it is about. BeagleBone Black seems to be not supported (see https://groups.google.com/g/beagleboard/c/bZFcV4y9QWQ).

Best regards,
Mykolas

Hello,

I am experimenting with rtcwake on BeagleBone Blue. Running command:

  Note that there is no REAL RTC on most BeagleBone variants (I don't
know if the Blue has an add-on RTC). cf:
https://learn.adafruit.com/adding-a-real-time-clock-to-beaglebone-black/overview

I tried to check time before and after standby by running:

sudo hwclock && date && sudo rtcwake -d /dev/rtc0 -m standby -s 20 && date
&& sudo hwclock
2021-04-17 21:42:40.123908+00:00
Sat 17 Apr 2021 09:42:40 PM UTC
rtcwake: wakeup from "standby" using /dev/rtc0 at Sat Apr 17 21:43:02 2021
Sat 17 Apr 2021 09:43:06 PM UTC
2021-04-17 21:43:07.802256+00:00

Last 2 time lines are printed after manual wake up by pressing power
button. They seem to be showing that only twenty some seconds passed but
actually much more time passed until I pressed power button. Which is weird
because if RTC doesn't work then I would expect time to be reset. If it
does work it should be correct time.

  Beaglebones periodically save the system clock value, and use that to
reload the system clock on startup. The value you are seeing is likely that
of the last time this fake hwclock was written... cf:
https://manpages.debian.org/jessie/fake-hwclock/fake-hwclock.8.en.html

Also...
https://unix.stackexchange.com/questions/187261/automatically-update-hwclock-at-boot
https://groups.google.com/g/beagleboard/c/n1noGnM30sQ

Thank you for a comprehensive answer. I will look into external clocks.