55 lines
1.3 KiB
Bash
Executable File
55 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
RESULT_DIR=/userdata/rockchip-test/
|
|
RESULT_LOG=${RESULT_DIR}/suspend_resume.txt
|
|
SUSPEND_TIME=60 # Fixed suspend time to 60 seconds (1 minute)
|
|
WAKE_DELAY=5 # Delay after wake-up before next action
|
|
MAX_CYCLES=10000
|
|
|
|
# Enable Debug
|
|
# echo N > /sys/module/printk/parameters/console_suspend
|
|
# echo 1 > /sys/power/pm_print_times
|
|
|
|
# Check if RTC is present
|
|
if [ ! -e "/sys/class/rtc/rtc0/wakealarm" ]; then
|
|
echo "RTC not present, please check if RTC is enabled"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
# Function to generate random number
|
|
# random() {
|
|
# hexdump -n 2 -e '/2 "%u"' /dev/urandom
|
|
# }
|
|
|
|
# Create result directory
|
|
mkdir -p ${RESULT_DIR}
|
|
|
|
|
|
auto_suspend_resume_rtc() {
|
|
cnt=0
|
|
|
|
# Sync system time to RTC
|
|
hwclock --systohc
|
|
echo "$(date): auto_suspend_resume_rtc starts" > ${RESULT_LOG}
|
|
|
|
while [ $cnt -lt $MAX_CYCLES ]; do
|
|
echo "Completed $cnt suspend/resume cycles"
|
|
|
|
# Set new wake time 1 minute into the future
|
|
echo 0 > /sys/class/rtc/rtc0/wakealarm
|
|
echo "+${SUSPEND_TIME}" > /sys/class/rtc/rtc0/wakealarm
|
|
pm-suspend
|
|
|
|
echo "Waking for $WAKE_DELAY seconds"
|
|
# System wakes up here
|
|
sleep $WAKE_DELAY # Wait for 5 seconds after wake-up
|
|
|
|
echo "$(date): Cycle: $cnt - Sleep: $SUSPEND_TIME Wake Delay: $WAKE_DELAY" >> ${RESULT_LOG}
|
|
|
|
cnt=$((cnt + 1))
|
|
done
|
|
}
|
|
|
|
auto_suspend_resume_rtc
|