linuxOS_AP06/external/rockchip-test/suspend_resume/suspend_resume.sh
2025-06-03 12:28:32 +08:00

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