m 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. #!/bin/sh
  2. if [ $# == 3 ]
  3. then
  4. if [ "$1" = "ls" ]
  5. then
  6. if [ ! -d $2 ]
  7. then
  8. mkdir $2
  9. fi
  10. /bin/ls $2 > $3
  11. exit 0
  12. fi
  13. fi
  14. #app_from_nfs=y
  15. app_name=335x_dftu
  16. app_jffs2_name=app_"$app_name".jffs2
  17. image_flash_name=flash_"$app_name".bin
  18. nfs_server=192.168.64.250
  19. app_ko="$app_name".ko
  20. app_nfs=/mnt/nfs/app/"$app_ko"
  21. app_flash=/app/"$app_ko"
  22. app_flash_bak=/app/"$app_ko".bak
  23. env_file=/tmp/env.dat
  24. app_disable=`printenv app_disable`
  25. PIDS=`pidof gprs_app`
  26. lsmod | grep "gprs_driver" > /dev/null
  27. if [ $? != 0 ]
  28. then
  29. insmod /app/gprs_driver.ko
  30. fi
  31. # sunxi 20191022 added start
  32. pidof cat > /dev/null
  33. if [ $? -eq 1 ]; then
  34. cat /proc/kmsg >> /tmp/kmsg &
  35. fi
  36. mkdir -p /app/IEC61850
  37. mkdir -p /app/IEC61850/appdata
  38. mkdir -p /app/IEC61850/cfg
  39. stty cols 168
  40. # sunxi 20191024 added end
  41. printenv updapp | grep "$app_jffs2_name" > /dev/null
  42. if [ $? != 0 ]
  43. then
  44. setenv updapp "tftp \${loadaddr} $app_jffs2_name;erase 800000 ffffff;cp.b \${loadaddr} 800000 \${filesize}"
  45. fi
  46. printenv updall | grep "$image_flash_name" > /dev/null
  47. if [ $? != 0 ]
  48. then
  49. setenv updall "tftp \${loadaddr} $image_flash_name;prot off 0 7ffff;erase 0 ffffff;cp.b \${loadaddr} 0 \${filesize}"
  50. fi
  51. if test -n "`pidof rt_console`"; then
  52. kill -INT `pidof rt_console`
  53. echo "rt_console stop!"
  54. fi
  55. mode=${1:-start}
  56. if [ "$mode" = "kill" ]
  57. then
  58. # remove module
  59. lsmod | grep "$app_name" > /dev/null
  60. if [ $? == 0 ]
  61. then
  62. rmmod "$app_name"
  63. fi
  64. #
  65. insmod /$app_flash m_reset=1
  66. fi
  67. if [ "$mode" = "stop" ]
  68. then
  69. # remove module
  70. lsmod | grep "$app_name" > /dev/null
  71. if [ $? == 0 ]
  72. then
  73. rmmod "$app_name"
  74. fi
  75. # umount nfs
  76. mount | grep nfs > /dev/null
  77. if [ $? == 0 ]
  78. then
  79. umount /mnt/nfs
  80. fi
  81. if test -n "`pidof gprs_app`"; then
  82. kill -INT `pidof gprs_app`
  83. echo "gprs_app stop!"
  84. fi
  85. if test -n "`pidof pppd`"; then
  86. kill -INT `pidof pppd`
  87. echo "pppd stop!"
  88. fi
  89. fi
  90. if [ "$mode" = "start" ]
  91. then
  92. # show all kernel log messages
  93. echo 8 > /proc/sys/kernel/printk
  94. #
  95. echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
  96. echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore
  97. echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
  98. #time zone
  99. export TZ="CST-8"
  100. #env file
  101. echo ethact=`printenv ethact` > $env_file
  102. echo ipaddr=`printenv ipaddr` >> $env_file
  103. echo netmask=`printenv netmask` >> $env_file
  104. echo gatewayip=`printenv gatewayip` >> $env_file
  105. echo ver_u_boot=`printenv version` >> $env_file
  106. echo ver_kernel=`cat /proc/kernel_version` >> $env_file
  107. echo ver_root_fs=`cat /etc/rootfs-release` >> $env_file
  108. echo auth=`printenv auth 2>/dev/null` >> $env_file
  109. echo mt_port_on=`printenv mt_port_on 2>/dev/null` >> $env_file
  110. # echo mt_port_on=1 >> $env_file
  111. echo pid=`printenv pid 2>/dev/null` >> $env_file
  112. echo net1mac=`printenv net1mac 2>/dev/null` >> $env_file
  113. echo net2mac=`printenv net2mac 2>/dev/null` >> $env_file
  114. echo net3mac=`printenv net3mac 2>/dev/null` >> $env_file
  115. echo goose_enable=1 >> $env_file
  116. # mount nfs
  117. if [ "$app_from_nfs" = "y" ]
  118. then
  119. mount | grep nfs > /dev/null
  120. if [ $? != 0 ]
  121. then
  122. echo mount -t nfs $nfs_server:/tftpboot/ltib/ /mnt/nfs -o nolock
  123. mount -t nfs $nfs_server:/tftpboot/ltib/ /mnt/nfs -o nolock
  124. fi
  125. fi
  126. # rmmod
  127. lsmod | grep "$app_name" > /dev/null
  128. if [ $? == 0 ]
  129. then
  130. rmmod "$app_name"
  131. fi
  132. # insmod
  133. if [ "$app_from_nfs" = "y" ]
  134. then
  135. echo Load $app_nfs from nfs:$nfs_server...
  136. # check crc
  137. crc_target -c $app_nfs
  138. if [ $? == 0 ]
  139. then
  140. echo CRC Check OK!
  141. insmod $app_nfs
  142. else
  143. echo CRC Check Error,Stop Load!
  144. fi
  145. else
  146. #update file
  147. # sunxi 20191113 注释掉以下脚本
  148. # if [ -e $app_flash_bak ]
  149. # then
  150. # crc_target -c $app_flash_bak
  151. # if [ $? == 0 ]
  152. # then
  153. # echo $app_flash_bak CRC Check OK!
  154. # echo update file...
  155. # rm $app_flash
  156. # mv $app_flash_bak $app_flash
  157. # else
  158. # echo CRC Check Error,rm $app_flash_bak!
  159. # rm $app_flash_bak
  160. # fi
  161. # fi
  162. ifconfig eth1 192.168.2.100
  163. if [ $app_disable == "1" ]
  164. then
  165. echo "app_disable == 1"
  166. exit
  167. fi
  168. echo Load $app_flash from flash...
  169. #check crc
  170. crc_target -c $app_flash
  171. if [ $? == 0 ]
  172. then
  173. echo CRC Check OK!
  174. call_server
  175. if [ $? == 0 ]
  176. then
  177. echo "The application was disabled by pc tool!"
  178. exit 0
  179. fi
  180. # sunxi 20191113 备份ko文件
  181. if [ ! -e $app_flash_bak ]; then
  182. cp $app_flash $app_flash_bak
  183. fi
  184. insmod /$app_flash
  185. if test -z "$PIDS"; then
  186. chmod +x /app/gprs_app
  187. cp /app/gprs_app /var/
  188. chmod +x /var/gprs_app
  189. cd /var
  190. ./gprs_app &
  191. echo "gprs_app start running"
  192. fi
  193. pidof "ghc1000" > /dev/null
  194. if [ $? != 0 -a -e "/app/ghc1000" ]
  195. then
  196. cd /app
  197. chmod +x ./ghc1000
  198. ./ghc1000 &
  199. fi
  200. else
  201. echo CRC Check Error,Stop Load!
  202. # sunxi 20191113 恢复ko文件
  203. if [ -e $app_flash_bak ]; then
  204. crc_target -c $app_flash_bak
  205. if [ $? == 0 ]; then
  206. echo "恢复ko文件,请不要断电......"
  207. cp $app_flash_bak $app_flash
  208. echo "恢复成功,重启系统......"
  209. sleep 1
  210. reboot -f
  211. fi
  212. fi
  213. fi
  214. fi
  215. fi