1*4882a593Smuzhiyun#!/bin/bash 2*4882a593Smuzhiyun 3*4882a593Smuzhiyundelay=8 4*4882a593Smuzhiyuntotal=${1:-10000} 5*4882a593Smuzhiyunfudev=/dev/sda 6*4882a593SmuzhiyunCNT=/data/rockchip-test/reboot_cnt 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunif [ ! -e "/data/rockchip-test" ]; then 9*4882a593Smuzhiyun echo "no /data/rockchip-test" 10*4882a593Smuzhiyun mkdir -p /data/rockchip-test 11*4882a593Smuzhiyunfi 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunif [ ! -e "/data/rockchip-test/auto_reboot.sh" ]; then 14*4882a593Smuzhiyun cp -f /rockchip-test/auto_reboot/auto_reboot.sh /data/rockchip-test/ 15*4882a593Smuzhiyun cp -f /rockchip-test/auto_reboot/auto_reboot_test.sh /etc/init.d/ 16*4882a593Smuzhiyun cp -f /rockchip-test/auto_reboot/rockchip_reboot.service /lib/systemd/system/ 17*4882a593Smuzhiyun ln -sf /lib/systemd/system/rockchip_reboot.service /etc/systemd/system/multi-user.target.wants/ 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun echo $total > /data/rockchip-test/reboot_total_cnt 20*4882a593Smuzhiyun sync 21*4882a593Smuzhiyunfi 22*4882a593Smuzhiyun 23*4882a593Smuzhiyunwhile true 24*4882a593Smuzhiyundo 25*4882a593Smuzhiyun 26*4882a593Smuzhiyun#if [ ! -e "$fudev" ]; then 27*4882a593Smuzhiyun# echo "Please insert a U disk to start test!" 28*4882a593Smuzhiyun# exit 0 29*4882a593Smuzhiyun#fi 30*4882a593Smuzhiyun 31*4882a593Smuzhiyunif [ -e $CNT ] 32*4882a593Smuzhiyunthen 33*4882a593Smuzhiyun cnt=`cat $CNT` 34*4882a593Smuzhiyunelse 35*4882a593Smuzhiyun echo reset Reboot count. 36*4882a593Smuzhiyun echo 0 > $CNT 37*4882a593Smuzhiyunfi 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunecho Reboot after $delay seconds. 40*4882a593Smuzhiyun 41*4882a593Smuzhiyunlet "cnt=$cnt+1" 42*4882a593Smuzhiyun 43*4882a593Smuzhiyunif [ $cnt -ge $total ] 44*4882a593Smuzhiyunthen 45*4882a593Smuzhiyun echo AutoReboot Finisned. 46*4882a593Smuzhiyun echo "off" > $CNT 47*4882a593Smuzhiyun echo "do cleaning ..." 48*4882a593Smuzhiyun rm -rf /data/rockchip-test/auto_reboot.sh 49*4882a593Smuzhiyun rm -rf /data/rockchip-test/reboot_total_cnt 50*4882a593Smuzhiyun rm -f $CNT 51*4882a593Smuzhiyun sync 52*4882a593Smuzhiyun exit 0 53*4882a593Smuzhiyunfi 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunecho $cnt > $CNT 56*4882a593Smuzhiyunecho "current cnt = $cnt, total cnt = $total" 57*4882a593Smuzhiyunecho "You can stop reboot by: echo off > /data/rockchip-test/reboot_cnt" 58*4882a593Smuzhiyunsleep $delay 59*4882a593Smuzhiyuncnt=`cat $CNT` 60*4882a593Smuzhiyunif [ $cnt != "off" ]; then 61*4882a593Smuzhiyun sync 62*4882a593Smuzhiyun if [ -e /var/lib/systemd/pstore/console-ramoops-0 ]; then 63*4882a593Smuzhiyun echo "check console-ramoops-o message" 64*4882a593Smuzhiyun grep -q "Restarting system" /var/lib/systemd/pstore/console-ramoops-0 65*4882a593Smuzhiyun if [ $? -ne 0 -a $cnt -ge 2 ]; then 66*4882a593Smuzhiyun echo "no found 'Restarting system' log in last time kernel message" 67*4882a593Smuzhiyun echo "consider kernel crash in last time reboot test" 68*4882a593Smuzhiyun echo "quit reboot test" 69*4882a593Smuzhiyun rm -rf /data/rockchip-test/auto_reboot.sh 70*4882a593Smuzhiyun rm -rf /data/rockchip-test/reboot_total_cnt 71*4882a593Smuzhiyun sync 72*4882a593Smuzhiyun exit 1 73*4882a593Smuzhiyun else 74*4882a593Smuzhiyun reboot 75*4882a593Smuzhiyun fi 76*4882a593Smuzhiyun else 77*4882a593Smuzhiyun reboot 78*4882a593Smuzhiyun fi 79*4882a593Smuzhiyunelse 80*4882a593Smuzhiyun echo "Auto reboot is off" 81*4882a593Smuzhiyun rm -rf /data/rockchip-test/auto_reboot.sh 82*4882a593Smuzhiyun rm -rf /data/rockchip-test/reboot_total_cnt 83*4882a593Smuzhiyun rm -f $CNT 84*4882a593Smuzhiyun sync 85*4882a593Smuzhiyunfi 86*4882a593Smuzhiyunexit 0 87*4882a593Smuzhiyundone 88