54 lines
1.3 KiB
Bash
Raw Normal View History

2025-05-10 21:49:39 +08:00
#!/bin/bash
RESULT_DIR=/userdata/rockchip-test/
RESULT_LOG=${RESULT_DIR}/suspend_resume.txt
SUSPEND_MAX=60
SUSPEND_MIN=30
SUSPEND_INTERVAL=$(($SUSPEND_MAX - $SUSPEND_MIN + 1 ))
WAKE_MAX=60
WAKE_MIN=30
WKAE_INTERVAL=$(($WAKE_MAX - $WAKE_MIN + 1 ))
MAX_CYCLES=10000
if [ ! -e "/sys/class/rtc/rtc0/wakealarm" ];then
echo "non-existent rtc, please check if rtc enabled"
exit
fi
mkdir -p ${RESULT_DIR}
random() {
hexdump -n 2 -e '/2 "%u"' /dev/urandom
}
auto_suspend_resume_rtc()
{
cnt=0
# set sys time same with rtc
hwclock --systohc
hwclock -w
echo "$(date): auto_suspend_resume_rtc start" > ${RESULT_LOG}
while true; do
echo "have done $cnt suspend/resume"
if [ $cnt -ge $MAX_CYCLES ]
then
echo "run $MAX_CYCLES cycles, finish test"
exit 0
fi
sus_time=$(( ( $(random) % $SUSPEND_INTERVAL ) + $SUSPEND_MIN ))
echo "sleep for $sus_time second"
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo "+${sus_time}" > /sys/class/rtc/rtc0/wakealarm
pm-suspend
wake_time=$(( ( $(random) % $WKAE_INTERVAL ) + $WAKE_MIN ))
echo "wake for $wake_time second"
sleep $wake_time
echo "$(date): Count: $cnt - sleep: $sus_time wake: $wake_time " >> ${RESULT_LOG}
let "cnt=$cnt+1"
done
}
auto_suspend_resume_rtc