Advertisement
Guest User

Untitled

a guest
Apr 15th, 2020
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2006-2010 OpenWrt.org
  3. # Copyright (C) 2015-09-22 by yuxw.
  4.  
  5. START=99
  6. STOP=50
  7.  
  8. . /lib/functions/leds.sh
  9.  
  10.  
  11. #***********************************************************
  12. # ETH_IN_DISABLE_4G: 1, auto 3g,eth wan
  13. 0: 3g allways, eth lan
  14. #***********************************************************
  15.  
  16. ETH_IN_DISABLE_4G="0"
  17.  
  18. ETH_WAN_OK_DISABLE_4G="1"
  19.  
  20. DATE=`date '+%F %T'`
  21. USE_PROCD=1
  22. PROG=/bin/usbdongled
  23.  
  24. PROC_NAME=usbdongled
  25.  
  26. ctrl_3g_power_file=/sys/class/gpio/3g_power/value
  27.  
  28. led_3g_green=/sys/class/leds/3g_green/brightness
  29. led_3g_red=/sys/class/leds/3g_red/brightness
  30.  
  31. eth_sys=/sys/class/net/eth0.2/carrier
  32.  
  33. init_file=/var/run/usbdongle_init
  34.  
  35. lock_file_stop=/var/run/usbdongle_lock_stop
  36. lock_file_start=/var/run/usbdongle_lock_start
  37.  
  38. eth_green_led=/sys/class/leds/eth_green/brightness
  39.  
  40.  
  41. eth_state="`cat $eth_sys`"
  42.  
  43. eth_wan_led="`cat $eth_green_led`"
  44.  
  45.  
  46. LOG()
  47. {
  48. echo $1 >> /var/run/debug_usbdongle
  49. }
  50.  
  51. DONGLE_LOCK()
  52. {
  53. while [ -f "$lock_file_stop" -o -f "$lock_file_start" ]
  54. do
  55. LOG "$DATE sleep."
  56. sleep 3
  57. done
  58. }
  59.  
  60. DONGLE_UNLOCK()
  61. {
  62. rm -f $1
  63.  
  64. }
  65.  
  66. led_turn_off_3g_green()
  67. {
  68. led_off 3g_green
  69. }
  70.  
  71. led_turn_on_3g_green()
  72. {
  73. led_on 3g_green
  74. }
  75.  
  76.  
  77. led_turn_off_3g_red()
  78. {
  79. led_off 3g_red
  80. }
  81.  
  82. led_turn_on_3g_red()
  83. {
  84. led_on 3g_red
  85. }
  86.  
  87.  
  88.  
  89.  
  90. enable_3g_power()
  91. {
  92. echo 1 > $ctrl_3g_power_file
  93. }
  94.  
  95. disable_3g_power()
  96. {
  97. echo 0 > $ctrl_3g_power_file
  98. }
  99.  
  100. ####################################
  101. #
  102. # START
  103. #
  104. ###################################
  105. start_service()
  106. {
  107. DONGLE_LOCK
  108. touch $lock_file_start
  109.  
  110.  
  111. LOG "$DATE +++ START usbdongled + start +"
  112. killall -9 $PROC_NAME
  113.  
  114. if [ $ETH_IN_DISABLE_4G == "1" ];then
  115. #echo "eth_state = $eth_state "
  116. if [ $eth_state = "1" -a ! -f "$init_file" ]; then
  117. touch $init_file
  118. LOG "first init because eth is inserted."
  119. led_turn_off_3g_green
  120. led_turn_off_3g_red
  121.  
  122. DONGLE_UNLOCK $lock_file_start
  123.  
  124. disable_3g_power
  125. LOG "$DATE ETH_IN_DISABLE_4G = 1 "
  126. return
  127. fi
  128. fi
  129.  
  130. if [ $ETH_WAN_OK_DISABLE_4G == "1" ];then
  131. #echo "eth_wan_led: $eth_wan_led"
  132. if [ $eth_wan_led = "255" ];then
  133. LOG "wan is eth, return."
  134. led_turn_off_3g_green
  135. led_turn_off_3g_red
  136.  
  137. DONGLE_UNLOCK $lock_file_start
  138. disable_3g_power
  139.  
  140. LOG "$DATE ETH_WAN_OK_DISABLE_4G = 1 "
  141.  
  142. return
  143. fi
  144. fi
  145.  
  146. led_turn_off_3g_green
  147. led_turn_on_3g_red
  148.  
  149. LOG "+++++ Start usbdongled"
  150. enable_3g_power
  151. $PROG &
  152.  
  153. LOG "$DATE +++ START usbdongled + end +"
  154. DONGLE_UNLOCK $lock_file_start
  155. }
  156.  
  157.  
  158.  
  159. ####################################
  160. #
  161. # STOP
  162. #
  163. ###################################
  164. stop_service()
  165. {
  166.  
  167. DONGLE_LOCK
  168. touch $lock_file_stop
  169.  
  170. LOG "$DATE --- STOP usbdongled + start +"
  171.  
  172. led_turn_off_3g_green
  173. led_turn_off_3g_red
  174.  
  175. LOG "---- Stop usbdongled"
  176. killall -9 $PROC_NAME
  177.  
  178. killall -9 pppd
  179. disable_3g_power
  180. sleep 1
  181. LOG "$DATE --- STOP usbdongled - end -"
  182.  
  183. DONGLE_UNLOCK $lock_file_stop
  184. }
  185.  
  186.  
  187. reload_service()
  188. {
  189. stop_service
  190. start_service
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement