GetEcVersion.sh 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. #!/bin/bash
  2. MYDIR=$(dirname $(readlink -f "$0"))
  3. if [ $UID -ne 0 ]; then
  4. echo "请以root用户身份运行!"
  5. echo "提示: sudo -s 或 su root 可以切换到root用户"
  6. exit 1
  7. fi
  8. ARCH=$(arch)
  9. usage()
  10. {
  11. echo "输入错误!"
  12. echo "支持:睡眠(suspend)/休眠(hibernate)/重启(warnboot)/冷重启(coldboot)测试。"
  13. echo "用法:./RunTest [suspend/hibernate/warnboot/coldboot] [次数]"
  14. echo "例如: 循环300次重启测试: ./RunTest.sh warnboot 300"
  15. exit 1
  16. }
  17. if [ $# -lt 2 ]; then
  18. usage
  19. fi
  20. info(){
  21. # 获取key所在的行
  22. info_line=`sed -n "/^$1=/p" $2`
  23. if [[ -z $info_line ]];then
  24. echo ""
  25. fi
  26. # 返回key对应的value值
  27. echo $info_line|awk -F '=' '{print $2}'
  28. }
  29. install_ec_tools()
  30. {
  31. if [ ! -f "/proc/ec_control/resume_timer" ];then
  32. cd EcTools
  33. insmod ./ec_operation.ko >> /dev/null 2>&1
  34. if [ ! -f "/proc/ec_control/resume_timer" ];then
  35. echo "install ec tools ..."
  36. make >> $login_user_home/debug.log 2>&1
  37. insmod ./ec_operation.ko >> $login_user_home/debug.log
  38. if [ $? -ne 0 ];then
  39. echo "ERROR: install ec tools fail"
  40. read
  41. exit 1
  42. fi
  43. else
  44. echo "ec tools ready"
  45. fi
  46. cd $MYDIR
  47. fi
  48. }
  49. set_autorun_uos()
  50. {
  51. #设置关闭自动更新
  52. echo 设置关闭自动更新
  53. dbus-send --system --dest=com.deepin.lastore --type=method_call /com/deepin/lastore com.deepin.lastore.Updater.SetAutoCheckUpdates boolean:false > /dev/null 2>&1
  54. #设置关闭更新提醒
  55. dbus-send --system --dest=com.deepin.lastore --type=method_call /com/deepin/lastore com.deepin.lastore.Updater.SetUpdateNotify boolean:false > /dev/null 2>&1
  56. # set autologin
  57. sed -i 's/^#\(autologin-user=\)$/\1'${login_user_name}'/' /etc/lightdm/lightdm.conf || echo "设置自动登陆失败,请手动设置自动登陆,已经设置请忽略"
  58. echo "更改系统设置。。。"
  59. su $login_user_name <<EOF
  60. bash $MYDIR/set_power_plan.sh;
  61. exit;
  62. EOF
  63. cat > $login_user_home/.config/autostart/reboot.desktop <<EOF
  64. [Desktop Entry]
  65. Type=Application
  66. Exec=$MYDIR/reboot.sh
  67. Name=运行量产测试
  68. StartupNotify=false
  69. Terminal=true
  70. EOF
  71. }
  72. set_autorun_kylin()
  73. {
  74. sed -i "\$a\*\/${interval:=2} * * * * root cd \/${MYDIR} && .\/reboot.sh" /etc/crontab
  75. # sed -i "\$a\*\/${interval:=2} * * * * root cd \/${MYDIR} && DISPLAY=:0.0 mate-terminal -e .\/reboot.sh" /etc/crontab
  76. }
  77. login_user_id=$(grep '^\<UID_MIN\>' /etc/login.defs | awk '{print $2}')
  78. login_user_name=$(cat /etc/passwd | awk -v id="$login_user_id" -F: '{if ($3==id) print $1}')
  79. login_user_home=$(cat /etc/passwd | awk -v id="$login_user_id" -F: '{if ($3==id) print $6}')
  80. case "$ARCH" in
  81. mips64)
  82. # ifconfig enp1s0 down > /dev/null 2>&1
  83. # # 关闭WiFi
  84. # rfkill block 0 > /dev/null 2>&1
  85. ;;
  86. loongarch64)
  87. # ifconfig enp1s0 down > /dev/null 2>&1
  88. # # 关闭WiFi
  89. # rfkill block 0 > /dev/null 2>&1
  90. ;;
  91. aarch64)
  92. echo ""
  93. # ifconfig enp3s0 down > /dev/null 2>&1
  94. # # 关闭WiFi
  95. # rfkill block 0 > /dev/null 2>&1
  96. ;;
  97. x86_64)
  98. chmod +x ec$ARCH
  99. ;;
  100. *)
  101. echo "未支持 $ARCH 架构,测试未进行!"
  102. exit 1
  103. ;;
  104. esac
  105. date >> $login_user_home/debug.log
  106. chmod +x boot_test_v16/*.sh
  107. #chmod +x rtc_resume rtc_resume_la
  108. # chmod +x mem
  109. chmod +x boot_test_v16/ec*
  110. if [ $2 -le 0 ]; then
  111. echo "输入有误! 循环次数必须大于0 请重新运行"
  112. usage
  113. fi
  114. LOG_FILE=$1`date +%Y%m%d`.log
  115. echo "日志文件: ${LOG_FILE}"
  116. TIMECTRL=`date '+%s'`
  117. sed -i "s#^TIMECTRL=.*#TIMECTRL=$TIMECTRL#" ./boot_test_v16/action.cfg
  118. sed -i "s#^LOG=.*#LOG=$LOG_FILE#" ./boot_test_v16/action.cfg
  119. sed -i "s#^ACTION=.*#ACTION=$1#" ./boot_test_v16/action.cfg
  120. #echo "timesLeft=$2" > ./times.left
  121. echo "测试即将开始。。。"
  122. case "$1" in
  123. ec)
  124. #./S3S4.sh
  125. echo -ne "read EC version:"
  126. master=`echo 111111 | sudo -S ${MYDIR}/ec$ARCH -r -a 0x00`
  127. slave=`echo 111111 | sudo -S ${MYDIR}/ec$ARCH -r -a 0x01`
  128. test1=`echo 111111 | sudo -S ${MYDIR}/ec$ARCH -r -a 0x02`
  129. test2=`echo 111111 | sudo -S ${MYDIR}/ec$ARCH -r -a 0x03`
  130. echo "$master:$slave:$test1:$test2" | awk -F':' '{print $1"."$2"."$3$4}' | sed 's/0x//g' #sed 's/0x0//g;s/0x//g'
  131. #exit 0
  132. ;;
  133. register)
  134. $set_autorun
  135. chown $login_user_name:$login_user_name $MYDIR -R
  136. #./reboot.sh
  137. ;;
  138. status)
  139. chown $login_user_name:$login_user_name $MYDIR -R
  140. #./S3S4.sh
  141. ;;
  142. expression)
  143. $set_autorun
  144. #./reboot.sh
  145. ;;
  146. *)
  147. usage
  148. ;;
  149. esac