Advertisement
pcwizz

the init script on an edimax ap

Mar 1st, 2014
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 30.17 KB | None | 0 0
  1. #!/bin/sh
  2. #
  3. # script file to start network
  4. #
  5. # Usage: init.sh {gw | ap} {all | bridge | wan}
  6. #
  7.  
  8. if [ $# -lt 2 ]; then echo "Usage: $0 {gw | ap} {all | bridge | wan}"; exit 1 ; fi
  9. > /tmp/running_init
  10. . /web/FUNCTION_SCRIPT
  11.  
  12. TOOL=flash
  13. GETMIB="$TOOL get"
  14. LOADDEF="$TOOL default"
  15. LOADDS="$TOOL reset"
  16. SETMIB="$TOOL set"
  17. SET_IP=fixedip.sh
  18. START_DHCP_SERVER=dhcpd.sh
  19. START_DHCP_CLIENT=dhcpc.sh
  20. START_BRIDGE=bridge.sh
  21. START_WLAN=wlan.sh
  22. START_WLAN_APP=wlanapp.sh
  23. WLAN_PREFIX=wlan
  24. $TOOL test-hwconf
  25.  
  26. if [ $2 = 'wlan0-vxd' ];then  #EDX patrick add
  27.         if [ "$WLAN_DISABLED" = "0" ]; then
  28.                 ifconfig $2 up
  29.         fi
  30.         exit 0
  31. fi
  32.  
  33. if [ $? != 0 ]; then
  34.         echo 'HW configuration invalid, reset default!'
  35.         $LOADDEF
  36. fi
  37.  
  38. $TOOL test-dsconf
  39. if [ $? != 0 ]; then
  40.         echo 'Default configuration invalid, reset default!'
  41.         $LOADDEF
  42. fi
  43.  
  44. HW_BOARD_ID_VALUE=`$GETMIB HW_BOARD_ID | cut -d= -f 2`
  45. if [ "$HW_BOARD_ID_VALUE" != '2' ] && [ "$_MODEL_" = "EW7228APN" ]; then
  46.         $SETMIB HW_BOARD_ID 2
  47. fi
  48.  
  49. HW_LED_TYPE_VALUE=`$GETMIB HW_LED_TYPE | cut -d= -f 2`
  50. if [ "$HW_LED_TYPE_VALUE" = '11' ] && [ "$_MODE_" = "Edimax" ]; then
  51.         $SETMIB HW_LED_TYPE 0
  52. fi
  53.  
  54. DISCONNECT=2
  55. FIRSTFILE0=/etc/ppp/first0
  56. FIRSTFILE1=/etc/ppp/first1
  57. FIRSTFILE2=/etc/ppp/first2
  58. #START_IAPP_8021X=iappauth.sh
  59. SEC_LOG=/var/log/security
  60. #WLAN_IF2=wlan0-vxd
  61. WLAN_IF2=wlan0
  62.  
  63. if [ "$_MSSID_" = "y" ]; then
  64.         /bin/mssid.sh
  65.         . /tmp/mssid.txt
  66. fi
  67.  
  68. # See if flash data is valid
  69. $TOOL test-hwconf
  70. if [ $? != 0 ]; then
  71.         echo 'HW configuration invalid, reset default!'
  72.         $LOADDEF
  73. fi
  74.  
  75. $TOOL test-dsconf
  76. if [ $? != 0 ]; then
  77.         echo 'Default configuration invalid, reset default!'
  78.         $LOADDEF
  79. fi
  80.        
  81.  
  82. ##########################################################
  83. #此區域為init前置處理程序,建立一些需立即生效的flash欄位質,
  84. #在此區中的code並無include flash.inc若要取得flash欄位,
  85. #所使用script_util.sh的findCurrentFlashValue取得.
  86. #patrick add
  87. if [ "$_MODE_" = "Edimax" ]; then
  88.         echo 1 > /proc/sw_nat   #Felix
  89. fi
  90.        
  91. if [ "$_MODE_" = "Edimax" ]; then   #EDX patrick
  92.         ISDEFAULTVALUE=`flash get IS_RESET_DEFAULT | cut -d "=" -f 2`  # 0: default 1: not defaul
  93.         DHCP_ENABLE=`flash get STAINFO | cut -d "=" -f 2`              # 3: client selected
  94.         if [ "$ISDEFAULTVALUE" = "0" ] && [ "$_MSSID_" = "y" ]; then
  95.                 if [ "$_MODEL_" = "EW7428HCN" ] || [ "$_MODEL_" = "HP5101WN" ]; then  #EDX patrick add for init MSSID band
  96.                         flash set BAND_1 5
  97.                         flash set BAND_2 5
  98.                         flash set BAND_3 5
  99.                         flash set BAND_4 5
  100.                 fi
  101.                 if [ "$_ENVLAN_" = "y" ]; then
  102.                         flash set VLANID 1
  103.                         flash set VLANID_1 1
  104.                         flash set VLANID_2 1
  105.                         flash set VLANID_3 1
  106.                         flash set VLANID_4 1
  107.                 fi
  108.         fi
  109. fi
  110.  
  111. if [ "$_SETTING_WIZARD_" = "y" ]; then #Felix
  112.         if [ "$_APMODE_SWITCH_" = "y" ]; then
  113.         if [ -f /proc/apmode_switch ]; then
  114.                 APMODE_SWITCH=`cat /proc/apmode_switch`
  115.                 APMODE=`flash get AP_MODE | cut -d "=" -f 2`
  116.                 echo " ====$APMODE_SWITCH===="
  117.                 if [ "$APMODE_SWITCH" = "0" ] && [ "$APMODE" != "0" ]; then     #AP Mode
  118.                         flash set AP_MODE 0
  119.                         flash set IS_RESET_DEFAULT 0
  120.                         flash set DHCP 2
  121.                 elif [ "$APMODE_SWITCH" = "1" ] && [ "$APMODE" != "6" ]; then   #Repeater Mode
  122.                         flash set AP_MODE 6
  123.                         flash set IS_RESET_DEFAULT 0
  124.                         flash set DHCP 2
  125.                 elif [ "$APMODE_SWITCH" = "2" ] && [ "$APMODE" != "2" ]; then   #Converter Mode
  126.                         flash set AP_MODE 2
  127.                         flash set IS_RESET_DEFAULT 0
  128.                         flash set DHCP 2
  129.                 fi
  130.                 APMODE=`flash get AP_MODE | cut -d "=" -f 2`    #get again
  131.                 IPADDR=`flash get IP_ADDR | cut -d "'" -f 2`
  132.                 if [ "$IPADDR" = "192.168.2.1" -o "$IPADDR" = "192.168.2.253" -o "$IPADDR" = "192.168.2.254" ]; then
  133.                         if [ "$APMODE" = "0" ]; then
  134.                                 flash set IP_ADDR 192.168.2.1
  135.                         elif [ "$APMODE" = "6" ]; then
  136.                                 flash set IP_ADDR 192.168.2.254
  137.                         elif [ "$APMODE" = "2" ]; then
  138.                                 flash set IP_ADDR 192.168.2.253
  139.                         fi
  140.                 fi
  141.         fi
  142.         fi
  143. fi
  144.  
  145. if [ "$_MODEL_" = "EW7428HRN" ]; then   #check wlan switch
  146.         rfswitch=`cat /proc/rf_switch`
  147.         if [ "$rfswitch" = "1" ]; then
  148.                 flash set WLAN_DISABLED 1
  149.         else
  150.                 flash set WLAN_DISABLED 0
  151.         fi
  152. fi
  153. ##################################################
  154. #結束前置處理
  155. ##################################################
  156.  
  157. #Reload flash.inc
  158. rm -f  /var/flash.inc
  159. #include script lib
  160. . /bin/scriptlib.sh
  161. if [ "$_LED_SWITCH_" = "y" ]; then
  162.         echo "$LED_SWITCH" > /proc/led_switch
  163. fi
  164.  
  165. if [ "$_LED_SWITCH_" = "y" -o "$_SW_LED_SWITCH_" = "y" ]; then
  166.   if [ "$_LED_SWITCH_" = "y" ]; then
  167.           echo "$LED_SWITCH" > /proc/led_switch
  168.   elif [ "$_SW_LED_SWITCH_" = "y" ]; then
  169.     if [ "$LED_SWITCH" = "0" ]; then
  170.       echo 3 > /proc/wlan_led  #0.1:on 2:blink 3:off 4:faster 5:slower
  171.       echo 3 > /proc/power_led  #0.1:on 3:off
  172.         #EDX shakim start
  173.        if [ "$_MODEL_" = "EW9458PLN" ];then
  174.          echo 0 > /proc/lan_mode  #lan led disable
  175.        else
  176.        #EDX shakim end
  177.           iwpriv wlan0 write_mem dw,b8000040,1,343c30   #lan led off
  178.        fi #EDX shakim
  179.     else
  180.                     echo 1 > /proc/power_led
  181.                     #EDX shakim start
  182.        if [ "$_MODEL_" = "EW9458PLN" ];then
  183.          echo 1 > /proc/lan_mode  #lan led auto
  184.        else
  185.        #EDX shakim end
  186.           iwpriv wlan0 write_mem dw,b8000040,1,343c00  #lan led on
  187.        fi #EDX shakim  
  188.     fi
  189.   fi
  190. fi
  191.  
  192.  
  193. if [ "$_PSK_BY_MD5_" = "y" ]; then
  194.         /bin/md5.sh 12 PSK
  195.         MD5_PSK=`flash get WLAN_WPA_PSK | cut -d "=" -f 2 | cut -d "'" -f 2`
  196.         echo "######  MD5_PSK : $MD5_PSK  ######"
  197. fi
  198.  
  199. if [ "$_WPS_LED_" = "y" ] && [ "$_MODEL_" != "EW9458PLN" ]; then #EDX shakim
  200.         echo "LED OFF" > /dev/WPS_LED
  201. fi
  202.  
  203. if [ "$IS_RESET_DEFAULT" = "0" ]; then
  204.         if [ "$_SSID_MAC_" = "y" ]; then
  205.                 /bin/setssidmac.sh
  206.         fi
  207.         if [ "$_WEP_MAC_" = "y" ]; then
  208.                 /bin/AutoWPA $HW_NIC0_ADDR wepmac
  209.         elif [ "$_WPA_KEY_BY_MAC_" = "y" ]; then
  210.                 /bin/AutoWPA $HW_NIC0_ADDR wpamac
  211.         elif [ "$_AUTOWPA_BY_DEFAULT_" = "y" ]; then
  212.                 AutoWPAKey=`AutoWPA $HW_NIC0_ADDR`
  213.                 flash set WPA2_CIPHER_SUITE 2
  214.                 flash set SECURITY_MODE 2
  215.                 flash set WLAN_ENCRYPT 6
  216.                 flash set WPS_CONFIG_TYPE 1
  217.                 flash set WLAN_WPA_CIPHER_SUITE 1
  218.                 flash set WLAN_WPA_PSK  $AutoWPAKey
  219.         fi
  220.         if [ "$_LED_SWITCH_" = "y" ]; then
  221.                 flash set LED_SWITCH 1
  222.         fi
  223.         reloadFlash
  224.         if [ "$_SETTING_WIZARD_" != "y" ]; then #Felix
  225.                 flash set IS_RESET_DEFAULT 1
  226.         fi
  227. fi
  228.  
  229. ifconfig wlan0 down 2> /dev/null
  230. brctl delif br0 wlan0 2> /dev/null
  231.  
  232.  
  233. if [ "$1" = 'ap' ]; then
  234. ### bridge ($_LAN_IF_+wlan0) confiuration #########
  235.         GATEWAY='false'
  236.         BR_INTERFACE=br0
  237.         WLAN_INTERFACE=wlan0
  238.         BR_LAN1_INTERFACE=eth0
  239.         #BR_LAN2_INTERFACE=$WLAN_INTERFACE
  240. ##############################################
  241. fi
  242.  
  243. if [ "$1" = 'gw' ]; then
  244.         GATEWAY='true'
  245.         if [ "$OP_MODE" = '1' ];then
  246.                 #WAN_INTERFACE=ra$WISP_WAN_ID
  247.                 WAN_INTERFACE=$WLAN_IF2
  248.         else
  249.                 WAN_INTERFACE=$_WAN_IF_
  250.         fi      
  251.         #WAN_INTERFACE=$_WAN_IF_
  252.         BR_INTERFACE=br0
  253.         WLAN_INTERFACE=wlan0
  254.         BR_LAN1_INTERFACE=$_LAN_IF_
  255.         if [ "$OP_MODE" = '1' ];then
  256.                 BR_LAN2_INTERFACE=$_WAN_IF_
  257.         #else
  258.                 #BR_LAN2_INTERFACE=$WLAN_INTERFACE
  259.         fi
  260. ##############################################
  261. fi
  262.  
  263. if [ "$2" = 'all' ]; then
  264.         #ENABLE_WAN=1
  265.         ENABLE_BR=1
  266. elif [ "$2" = 'wan' ]; then
  267.         ENABLE_WAN=1
  268.         ENABLE_BR=0
  269. elif [ "$2" = 'bridge' ]; then
  270.         # if WISP mode , restart wan  for pppoe  ,pptp
  271.         if [ "$OP_MODE" = '2' ]; then
  272.                 ENABLE_WAN=1
  273.         else
  274.                 ENABLE_WAN=0
  275.         fi
  276.         ENABLE_BR=1
  277. elif [ $2 = 'wlan_app' ]; then
  278.         $START_WLAN_APP start $WLAN_INTERFACE $BR_INTERFACE
  279.         exit 0
  280. else
  281.         echo "Usage: $0 {all | bridge | wan | wlan_app}"; exit 1
  282. fi
  283.  
  284. # When configured as AP, update DHCP value if it is invalid
  285.  
  286. if [ "$_KERNEL_VERSION_26_" = "y" ]; then
  287.         # Cleanup hardware tables
  288.         if [ "$OP_MODE" = '0' ]; then
  289.                 # gateway mode
  290.                 echo "1" > /proc/hw_nat
  291.         elif [ "$OP_MODE" = '1' ] || [ "$OP_MODE" = '2' ]; then
  292.                 # wisp mode
  293.                 echo "3" > /proc/hw_nat
  294.         else    
  295.                 # wisp mode with multiple vlan
  296.                 echo "5" > /proc/hw_nat
  297.         fi
  298.                
  299.         #"Clean conntrack table first before Re-Set Iptables Rules"
  300.                 echo 2 > /proc/fast_nat
  301.         #"Finish clean conntrack table......................................."
  302.                
  303. fi
  304.  
  305. # Set Ethernet0 MAC address
  306. if [ "$ELAN_MAC_ADDR" = "000000000000" ]; then
  307.         ELAN_MAC_ADDR=$HW_NIC0_ADDR
  308. fi
  309.  
  310. ifconfig $BR_LAN1_INTERFACE down
  311. ifconfig $BR_LAN1_INTERFACE hw ether $ELAN_MAC_ADDR
  312. ifconfig $BR_LAN1_INTERFACE up
  313.  
  314. #set Ethernet 1 MAC Address for bridge mode and WISP
  315. #if [ "$OP_MODE" = '1' ]; then
  316. #       if [ "$ELAN_MAC_ADDR" = "000000000000" ]; then
  317. #               ELAN_MAC_ADDR=$HW_NIC1_ADDR
  318. #
  319. #       fi
  320. #       ifconfig $BR_LAN2_INTERFACE hw ether $ELAN_MAC_ADDR
  321. #fi
  322.  
  323. # Start WLAN interface
  324. if [ "$_MSSID_" = "y" ]; then
  325.         #iwpriv $WLAN_INTERFACE set_mib vap_enable=1
  326.         NUM=0
  327.         NUM1=0 #EDX Patrick
  328.         while [ $NUM -lt $NUM_INTERFACE -a $ENABLE_BR = 1  ]
  329.         do
  330.                 echo 'Initialize '$WLAN_PREFIX$NUM' interface'
  331.                 if [ "$_TR_SWITCH_" = "y" ]; then
  332.                         iwpriv $WLAN_PREFIX$NUM set_mib trswitch=1 #tr switch
  333.                 fi
  334.                 $START_WLAN $WLAN_PREFIX$NUM
  335.         VIRTUAL_NUM=0
  336.         while [ $VIRTUAL_NUM -lt $_MSSIDNUM_ -a $ENABLE_BR = 1 ]
  337.         do
  338.       echo 'Initialize '$WLAN_PREFIX$NUM-va$VIRTUAL_NUM' interface'
  339.                         if [ "$_TR_SWITCH_" = "y" ]; then
  340.                                 iwpriv $WLAN_PREFIX$NUM-va$VIRTUAL_NUM set_mib trswitch=1 #tr switch
  341.                         fi
  342.                         iwpriv $WLAN_PREFIX$NUM-va$VIRTUAL_NUM copy_mib
  343.  
  344.                         NUM1=`expr $NUM1 + 1`
  345.                         REL_UP_FLAG=`flash get SSID_MIRROR_$NUM1 | cut -d "=" -f 2`  #EDX Patrick , if -va* up, SSID_MIRROR_* != 0
  346.                         if [ "$REL_UP_FLAG" != "0" ]; then
  347.                                 $START_WLAN $WLAN_PREFIX$NUM-va$VIRTUAL_NUM
  348.                         fi
  349.       VIRTUAL_NUM=`expr $VIRTUAL_NUM + 1`
  350.         done
  351.         NUM=`expr $NUM + 1`
  352.         done
  353.         if [ "$ENABLE_BR" = "1" ] && [ -n "$WLAN_INTERFACE" ]; then
  354.                 if [ "$AP_MODE" = '6' -o "$OP_MODE" != '0' ]; then
  355.                         if [ "$OP_MODE" = '1' -o "$AP_MODE" = '6' ]; then
  356.                                 echo 'Initialize '$WLAN_INTERFACE-vxd' interface'
  357.                                 if [ "$_TR_SWITCH_" = "y" ]; then
  358.                                         iwpriv $WLAN_INTERFACE-vxd set_mib trswitch=1 #tr switch
  359.                                 fi
  360.                                 $START_WLAN $WLAN_INTERFACE-vxd
  361.                         fi
  362.                 fi
  363.         fi
  364. else
  365.         if [ "$ENABLE_BR" = "1" ] && [ -n "$WLAN_INTERFACE" ]; then
  366.                 if [ "$_TR_SWITCH_" = "y" ]; then
  367.                         iwpriv wlan0 set_mib trswitch=1 #tr switch
  368.                 fi
  369.                 echo 'Initialize WLAN interface'
  370.                 $START_WLAN $WLAN_INTERFACE
  371.                 if [ "$AP_MODE" = '6' -o "$OP_MODE" != '0' ]; then
  372.                         if [ "$OP_MODE" = '1' -o "$AP_MODE" = '6' ]; then
  373.                                 echo 'Initialize '$WLAN_INTERFACE-vxd' interface'
  374.                                 if [ "$_TR_SWITCH_" = "y" ]; then
  375.                                         iwpriv $WLAN_INTERFACE-vxd set_mib trswitch=1 #tr switch
  376.                                 fi
  377.                                 $START_WLAN $WLAN_INTERFACE-vxd
  378.                         fi
  379.                 fi
  380.         fi
  381. fi
  382.  
  383. if [ "$_MSSID_" = "y" ]; then
  384.         V_WLAN_APP_ENABLE=1
  385.         if [ "$AP_MODE" != 0 ] && [ "$AP_MODE" != 5 ]; then
  386.         V_WLAN_APP_ENABLE=0
  387.         fi
  388. fi
  389.  
  390. # check repeater interface for wlan0
  391. WLAN_INTERFACE_REPEATER=$WLAN_INTERFACE
  392.  
  393.  
  394. if [ "$GATEWAY" != 'true' ]; then
  395.         # Delete DHCP client process
  396.         kill -9 `pidof udhcpc` 2> /dev/null
  397.        
  398.         if [ "$ENABLE_BR" = "1" ]; then
  399.                 echo 'Setup BRIDGE interface'
  400.                 #Initialize bridge interface
  401.                 # start Bridge
  402.                 if [ "$_MSSID_" = "y" ] ; then
  403.                         $START_BRIDGE $BR_INTERFACE $BR_LAN1_INTERFACE $WLAN_INTERFACE $BR_LAN2_INTERFACE $VIRTUAL_WLAN_INTERFACE
  404.                 else
  405.                         $START_BRIDGE $BR_INTERFACE $BR_LAN1_INTERFACE $WLAN_INTERFACE_REPEATER $BR_LAN2_INTERFACE
  406.                 fi
  407.  
  408.                 #Start DHCP & wlanapps.h 802.1x Radius
  409.                 kill -9 `pidof udhcpd` 2> /dev/null
  410.  
  411.                 if [ "$DHCP" = '0' ]; then
  412.                         $SET_IP $BR_INTERFACE $IP_ADDR $SUBNET_MASK $DEFAULT_GATEWAY
  413.  
  414.                         #$START_WLAN_APP start $WLAN_INTERFACE $BR_INTERFACE
  415.  
  416.                 elif [ "$DHCP" = '2' ]; then
  417.                         #sleep 1
  418.                         $START_DHCP_SERVER $BR_INTERFACE
  419.                         #$START_WLAN_APP start $WLAN_INTERFACE $BR_INTERFACE
  420.                 fi
  421.         fi
  422.  
  423. fi
  424.  
  425. #/bin/zebra.sh &
  426. #/bin/ripd.sh &
  427. #/bin/snmpd.sh &
  428. if [ "$AP_MODE" = "6" ]; then
  429.         if [ "$REPEATER_ENABLED" != "1" ]; then
  430.         flash set REPEATER_ENABLED 1
  431.   fi
  432. fi
  433.  
  434.  
  435. REPEATER_ENABLED_STATUS=`flash get REPEATER_ENABLED | cut -d = -f2`
  436. if [ "$REPEATER_ENABLED_STATUS" = '1' ]; then
  437.         ifconfig $WLAN_INTERFACE down
  438.         ifconfig $WLAN_INTERFACE-vxd down
  439.  
  440.         if [ "$WLAN_DISABLED" = "0" ]; then
  441.                 ifconfig $WLAN_INTERFACE up
  442.                 ifconfig $WLAN_INTERFACE-vxd up
  443.         fi
  444. fi
  445.  
  446. ifconfig $WLAN_INTERFACE down
  447. if [ "$CHANNEL" = "0" ]; then   #Fix Channel Always select 1 when use auto channel selection
  448.         iwpriv wlan0 set_mib channel=0
  449. fi
  450. if [ "$WLAN_DISABLED" = "0" ]; then
  451.         ifconfig $WLAN_INTERFACE up
  452. fi
  453.  
  454. if [ "$_MODE_" = "Edimax" ]; then   #EDX patrick, avoid wireless off wlan_led still ON
  455.   if [ "$WLAN_DISABLED" = 1 ]; then
  456.     echo 1 > /proc/sw_led_switch
  457.   else
  458.     echo 0 > /proc/sw_led_switch
  459.   fi
  460. fi
  461.  
  462. #echo "**********************************************************************"
  463. #echo "*                          Enable WSC_UPnP                           *"
  464. #echo "**********************************************************************"
  465. # start mini_upnpd shared daemon
  466. #killall -9 mini_upnpd 2> /dev/null
  467. #if [ $WPS_ENABLE = 1 ]; then
  468. #   _CMD="$_CMD -wsc /tmp/wscd_config"
  469. #fi
  470. #if [ "$_CMD" != "" ]; then
  471. #  mini_upnpd $_CMD &
  472. #fi
  473.  
  474. echo "**********************************************************************"
  475. echo "*                            Enable LLTD                             *"
  476. echo "**********************************************************************"
  477. killall lld2d
  478. /bin/lld2d br0
  479.  
  480. echo "**********************************************************************"
  481. echo "*                       Enable GPIO Interrupt                        *"
  482. echo "**********************************************************************"
  483. if [ "`pidof reload`" = "" ]; then
  484.         echo 0 > /tmp/mp_mode   #1=mp_mode enable
  485.         /bin/reload&
  486. fi
  487.  
  488. if [ -f /bin/agent ]; then
  489. echo "**********************************************************************"
  490. echo "*                            Enable Agent                            *"
  491. echo "**********************************************************************"
  492.         killall agent 2> /dev/null
  493.         rm /tmp/agentenabledflag
  494.         /bin/agent&
  495. fi
  496.  
  497. killall cleanlog.sh 2> /dev/null
  498.  
  499. if [ "$_IGMPSNOOP_" = "y" ]; then
  500.         echo 1 > /proc/br_igmpsnoop 2>/dev/null
  501. else
  502.         echo 0 > /proc/br_igmpsnoop 2>/dev/null
  503. fi
  504.  
  505. #Fixed Wireless Client can't get IP from Root AP in WDS & Universal Repeater mode.
  506. if [ "$AP_MODE" = '5' ] || [ "$AP_MODE" = '6' ]; then
  507.         if [ "$_KERNEL_VERSION_26_" = "y" ]; then
  508.                 brctl delif br0 $_LAN_IF_ 2>/dev/null
  509.                 brctl delif br0 wlan0 2>/dev/null
  510.                 brctl delif br0 wlan0-vxd 2>/dev/null
  511.                 brctl addif br0 $_LAN_IF_ 2>/dev/null
  512.                 brctl addif br0 wlan0 2>/dev/null
  513.                 brctl addif br0 wlan0-vxd 2>/dev/null
  514.         else
  515.                 brctl delif br0 $_LAN_IF_ 2>/dev/null
  516.                 brctl addif br0 $_LAN_IF_ 2>/dev/null
  517.         fi
  518. fi
  519.  
  520. if [ "$_ENVLAN_" = "y" ]; then
  521.         if [ "$_MODEL_" = "EW7428HCN" ] || [ "$_MODEL_" = "HP5101WN" ]; then  
  522.                 echo "##  init groupID & AP isolation ##"
  523.                 MAIN_GROUPID=`flash get VLANID | cut -d "=" -f 2`
  524.                 iwpriv $WLAN_INTERFACE set_mib groupID=$MAIN_GROUPID  #wlan0 EDX patrick
  525.         #       init_vlan.sh  #wlan0-va*
  526.         else
  527.                 if [ -f /proc/mode_switch ]; then
  528.                         MODE_SWITCH=`cat /proc/mode_switch`
  529.                         echo " ====$MODE_SWITCH===="
  530.                         if [ "$MODE_SWITCH" = "1" ] || [ "$MODE_SWITCH" = "2" ]; then
  531.                                 flash set VLANID_1 1
  532.                                 flash set VLANID_2 2
  533.                                 flash set VLANID_3 3
  534.                                 flash set VLANID_4 4
  535.                         else
  536.                                 flash set VLANID_1 0
  537.                                 flash set VLANID_2 0
  538.                                 flash set VLANID_3 0
  539.                                 flash set VLANID_4 0
  540.                         fi
  541.         #               init_vlan.sh
  542.                 fi
  543.         fi
  544.         init_vlan.sh
  545. fi
  546.  
  547. if [ "$_MODE_" != "Edimax" ]; then  # EDX patrick for iQSetup connent test
  548.         if [ "$AP_MODE" != '6' ]; then
  549.                 ifconfig $WLAN_INTERFACE-vxd down
  550.         fi
  551. fi
  552.  
  553. if [ "$_PLC_DUAL_BRIDGE_" = "y" ]; then
  554.         echo 0 > /tmp/PLCdisconnect
  555.         echo 1 > /tmp/full_screen
  556.         brctl delif br1 eth1
  557.         brctl delif br1 eth4
  558.         ifconfig br1 down
  559.         brctl delbr br1
  560.         brctl addbr br1
  561.         if [ "$STP_ENABLED" = '0' ]; then
  562.                 brctl setfd br1 0
  563.                 brctl stp br1 0
  564.         else
  565.                 brctl setfd br1 4
  566.                 brctl stp br1 1
  567.         fi
  568.         ifconfig br1 up
  569.         sleep 1
  570.         ifconfig eth1 down
  571.         ifconfig eth4 down
  572.         ifconfig eth1 hw ether $HW_NIC0_ADDR
  573.         ifconfig eth4 hw ether $HW_NIC1_ADDR
  574.         ifconfig eth1 up
  575.         ifconfig eth4 up
  576.         brctl addif br1 eth1
  577.         brctl addif br1 eth4
  578.         fixedip.sh br1 0.0.0.0
  579. fi
  580.  
  581. #check external DHCP server
  582. if [ "$_AP_WITH_DHCP_CLIENT_" = "y" ] && [ "$IS_RESET_DEFAULT" = "1" ]; then
  583.         if [ "$_MODE_" = "Edimax" ] && [ "$_MODEL_" = "CV7428NS" ]; then
  584.                 if [ "$REPEATER_SSID" != "" ] && [ "$DHCP_SWITCH" = "1" ]; then # Add fixed IP function, so check DHCP_SWITCH
  585.                         udhcpc -i br0 -a -s /etc/udhcpc/br0.sh &
  586.                 fi
  587.         elif [ "$DHCP_CHECK_ENABLED" = '1' ] && [ "$DHCP_SWITCH" = "1" ]; then
  588.                 if [ "$_PLC_DUAL_BRIDGE_" = "y" ]; then
  589.                         udhcpc -i br1 -a -s /etc/udhcpc/br1.sh &
  590.                 else
  591.                         udhcpc -i br0 -a -s /etc/udhcpc/br0.sh &
  592.                 fi
  593.         else
  594.                 if [ "$DHCP" = "0" ]; then
  595.                         kill -9 `pidof udhcpd` 2> /dev/null
  596.                 fi
  597.         fi
  598. elif [ "$_AP_WITH_DHCP_CLIENT_" = "y" ] && [ "$_PLC_DUAL_BRIDGE_" = "y" ]; then
  599.         if [ "$DHCP_CHECK_ENABLED" = '1' ] && [ "$DHCP_SWITCH" = "1" ]; then
  600.                         udhcpc -i br1 -a -s /etc/udhcpc/br1.sh &
  601.         else
  602.                 if [ "$DHCP" = "0" ]; then
  603.                         kill -9 `pidof udhcpd` 2> /dev/null
  604.                 fi
  605.         fi
  606. fi
  607.  
  608. #patrick
  609. if [ "$_MDNS_RESPONDER_" = "y" ]; then  
  610. if [ "$_MODE_" = "Edimax" ]; then
  611.         if [ "$_MODEL_" = "CV7428NS" ]; then
  612.                 MDNS_NAME="edimax.go"
  613.         else
  614.                 MAC_END=`flash get HW_NIC0_ADDR | cut -b 20-25`
  615.                 MDNS_NAME="edimax$MAC_END"
  616.         fi
  617. else
  618.         MAC_END=`flash get HW_NIC0_ADDR | cut -b 22-25`
  619.         MDNS_NAME="repeater$MAC_END"
  620. fi
  621.         killall mDNSResponderPosix
  622.         hostname $MDNS_NAME
  623.         /bin/mDNSResponderPosix -n $MDNS_NAME -t _http._tcp -p 80 -x "WIRELESS REPEATER"&
  624. fi
  625.  
  626. if [ "$_NETBIOS_RESPONDER_" = "y" ]; then
  627.         killall nbnsd
  628. if [ "$_MODE_" = "Edimax" ]; then
  629.         if [ "$_MODEL_" = "CV7428NS" ]; then
  630.                 NETBIOS_NAME="edimax.go"
  631.         elif [ "$_MODEL_" = "HP5101WN" ]; then
  632.                 NETBIOS_NAME="edimax.setup"
  633.         else
  634.                 MAC_END=`flash get HW_NIC0_ADDR | cut -b 20-25`
  635.                 NETBIOS_NAME="edimax$MAC_END"
  636.         fi
  637. else
  638.         MAC_END=`flash get HW_NIC0_ADDR | cut -b 22-25`
  639.         NETBIOS_NAME="repeater$MAC_END"
  640. fi
  641.         /bin/nbnsd -n $NETBIOS_NAME&
  642. fi
  643. #patrick end
  644.  
  645.  
  646. if [ "$_DNS_HIJACK_" = "y" ]; then
  647.         echo 1 > /proc/br_dnshijack
  648. fi
  649.  
  650.  
  651. #ReInit APMIB. Kyle 2008.03.27
  652. kill -USR1 `pidof webs`
  653.  
  654.  
  655. if [ "$_SREBOOT_BLINK_POWER_" = "y" ] && [ "$IS_REBOOT" = "1" ]; then
  656.         flash set IS_REBOOT 0
  657.         echo LED ON > /dev/PowerLED
  658. fi
  659.  
  660. echo "**********************************************************************"
  661. echo "*                       FREE Page,Dentries and Inodes Cache          *"
  662. echo "**********************************************************************"
  663. sleep 1
  664. cat /proc/meminfo | grep -i MemFree
  665. cat /proc/meminfo | grep  Cached | grep -v Swap
  666.  
  667. case "$OP_MODE" in
  668.         "0")
  669.                 route_ip=`route -n | grep $WLAN_IF2 | cut -b 1-16`
  670.                 route_mask=`route -n | grep $WLAN_IF2 | cut -b 33-48`
  671.                 if [ "`echo $route_ip | tr -d \" \"`" != "" ] && [ "`echo $route_mask | tr -d \" \"`" != "" ]; then
  672.                         route del -net $route_ip netmask $route_mask $WLAN_IF2 2>/dev/null
  673.                 fi
  674.         ;;
  675. esac
  676.  
  677. route_ip=`route -n | grep wlan0 | cut -b 1-16`
  678. route_mask=`route -n | grep wlan0 | cut -b 33-48`
  679. if [ "`echo $route_ip | tr -d \" \"`" != "" ] && [ "`echo $route_mask | tr -d \" \"`" != "" ]; then
  680.         route del -net $route_ip netmask $route_mask wlan0
  681. fi
  682.  
  683. if [ "$_PLC_DUAL_BRIDGE_" != "y" ]; then
  684. #restart MSSID IAPP & IWCONTROL  & MSSID VAP 802.1X RADIUS
  685.         if  [ "$V_WLAN_APP_ENABLE" = '1' ] && [ "$_MSSID_" = "y" ]; then
  686.                 #sleep 1
  687.                 $START_WLAN_APP start $WLAN_INTERFACE $VIRTUAL_WLAN_INTERFACE $BR_INTERFACE
  688.         else
  689.                 $START_WLAN_APP start $WLAN_INTERFACE $VIRTUAL_WLAN_INTERFACE $BR_INTERFACE
  690.         fi
  691. fi
  692.  
  693. if [ "$_AP_WITH_TIMEZONE_" = "y" ]; then
  694.         echo 0 > /var/log/sntp_status
  695. fi
  696.  
  697. if [ "$_WEB_ACCESS_CONTROL_" = "y" ]; then
  698.         echo "$WEB_CONTROL" > /var/access_web.txt
  699. fi
  700.  
  701. if [ "$_USE_DNRD_" = "y" ] && [ "$DNS_MODE" = "0" ]; then
  702.         if [ "$_SETTING_WIZARD_" = "y" ]; then #patrick
  703.                 if [ "$IS_RESET_DEFAULT" = "0" ]; then
  704.                         /bin/dnrd.sh
  705.                 else
  706.                         killall dnrd
  707.                 fi
  708.         else   #patrick end
  709.                 /bin/dnrd.sh
  710.         fi
  711. fi
  712. if [ "$_PLC_DUAL_BRIDGE_" != "y" ]; then
  713. /bin/cleanlog.sh &
  714. fi
  715. if [ -f /tmp/running_init ]; then
  716.         rm -rf /tmp/running_init
  717. fi
  718.  
  719. #patrick
  720. if [ "$_UPNP_RESPONDER_" = "y" ]; then
  721.         #killall upnpc
  722.         kill -9 `pidof upnpc`
  723.         /bin/upnpc &
  724. fi
  725. #patrick end
  726.  
  727. if [ "$_GO_DISCONNECT_PAGE_" = "y" ]; then
  728.         flash set GO_DISCONNECT 0
  729. fi
  730.  
  731.  
  732. if [ "$_WMM_SWITCH_" = "y" ]; then
  733.         #realBAndValue=`iwpriv wlan0-vxd get_mib band | cut -d ":" -f 2 | cut -f 1 -d " "`
  734.         realBAndValue=`flash get BAND | cut -d "=" -f 2`
  735.         if [ "$realBAndValue" = '2' ] || [ "$realBAndValue" = '5' ]; then # if n band
  736.                 flash set WMM_SWITCH 1  # UI lock
  737.         else
  738.                 flash set WMM_SWITCH 0  # UI can set WMM
  739.         fi
  740. fi
  741.  
  742. if [ "$_MODE_" = "Edimax" ] && [ "$_MODEL_" = "CV7428NS" ]; then
  743.         echo 0 auto > /proc/link_speed
  744.         echo 1 auto > /proc/link_speed
  745.         echo 2 auto > /proc/link_speed
  746.         echo 3 auto > /proc/link_speed
  747.         echo 4 auto > /proc/link_speed
  748. fi
  749.  
  750. if [ "$_PLC_DUAL_BRIDGE_" = "y" ]; then
  751.         echo 3 > proc/wps_led  # 3 off
  752. fi
  753.  
  754. rm -f /tmp/wps_Success
  755.  
  756. if [ "$_CONTROL_SIDEBAND_" = "y" ]; then
  757.         echo 1 > /tmp/force_detect_flag  # 1:force do Channel & center freq. detection
  758. fi
  759.  
  760. #patrick
  761. if [ "$_BOA_" = "y" ]; then
  762.         echo "===== Starting BOA WEB SERVER ====="
  763. else
  764.         killall webs #Felix+20111220 for UPNP_RESPONDER & MDNS_RESPONDER
  765. fi
  766. #patrick end
  767.  
  768.  
  769.  
  770. if [ "$_POWER_SAVING_" = "y" ]; then
  771.         if [ "$POWER_SAVING" = "0" ]; then  #all on
  772.                 if [ "$_MODE_" = "Edimax" ] && [ "$_MODEL_" = "CV7428NS" ]; then
  773.                         WLANLED_CHANGE=`cat /tmp/wps_Success`
  774.                         if [ "$WLANLED_CHANGE" != '1' ]; then  # if wps connect, wlan led keep on 5 min
  775.                                 echo 2 > /proc/wlan_led
  776.                         fi
  777.                 else
  778.                         echo 2 > /proc/wlan_led
  779.                 fi
  780.                 echo 1 > /proc/power_led
  781.                 echo 1 > /proc/lan_mode
  782.         elif [ "$POWER_SAVING" = "1" ]; then  
  783.                 if [ "$LED_SEL" = "0" ]; then #all off
  784.                         echo 1 > /proc/sw_led_switch
  785.                         echo 3 > /proc/wlan_led
  786.                         echo 0 > /proc/lan_mode
  787.                         sleep 12        
  788.                         echo 3 > /proc/power_led
  789.                 else
  790.                         echo 1 > /proc/sw_led_switch #only power on
  791.                         echo 3 > /proc/wlan_led  
  792.                         echo 1 > /proc/power_led
  793.                         echo 0 > /proc/lan_mode
  794.                 fi
  795.         fi
  796. fi
  797.  
  798. if [ "$_PLC_DUAL_BRIDGE_" = "y" ]; then
  799. #Fixed IQsetup set AES, wps can not work
  800.         $START_WLAN_APP start $WLAN_INTERFACE $VIRTUAL_WLAN_INTERFACE $BR_INTERFACE
  801.         echo 1 > /proc/disable_l2_table
  802.         echo 4 > /proc/wan_port
  803.         brctl delif br0 wlan0-vxd
  804.         brctl delif br0 eth0
  805.         if [ "$IS_RESET_DEFAULT" = "1" ]; then  #no default
  806.                 if [ "$DHCP_SWITCH" = "0" ]; then       #FollowIp
  807.                         echo "DHCP_SWITCH=0 init.sh!!!!!!!!!!!!!!!!!!"
  808.                         if [ "`pidof udhcpc`" != "" ]; then
  809.                                 killall udhcpc
  810.                         fi
  811.                         sleep 1
  812.                         defaultgateway=`flash get DEFAULT_GATEWAY | cut -d "=" -f 2 | cut -d "'" -f 2`
  813.                         Wlan0=`brctl show |grep br0|grep wlan0`
  814.                                 if [ "$Wlan0" != "" ]; then
  815.                                         /bin/PLC_MSSID.sh
  816.                                 fi
  817.                                 sleep 1
  818.                                 $SET_IP br1 $IP_ADDR $SUBNET_MASK $DEFAULT_GATEWAY
  819.                         if [ "$defaultgateway" = "" ]; then
  820.                                 echo 1 > /tmp/full_screen                      
  821.                         else
  822.                                 if [ "`arping -I br1 -c 1 $defaultgateway | grep -i Received | cut -d " " -f 2`" = "0" ]; then
  823.                                         echo 1 > /tmp/full_screen                                      
  824.                                 else
  825.                                         echo 0 > /tmp/full_screen                                      
  826.                                 fi
  827.                         fi
  828.                         fixedip.sh br0 0.0.0.0
  829.                 else    #ObtainIp
  830.                         echo "DHCP_SWITCH=1 init.sh!!!!!!!!!!!!!!!!!!!"
  831.                         if [ "`pidof udhcpc`" = "" ]; then
  832.                                 udhcpc -i br1 -a -s /etc/udhcpc/br1.sh &
  833.                         fi
  834.                         sleep 5
  835.                         gateway=`route -n | grep ^0.0.0.0 | tr -s " " | cut -d " " -f 2`
  836.                         if [ "$gateway" = "" ]; then
  837.                                 echo "auto IP disconnect no GW!!!!!!!!!!!!!!!!!!"
  838.                                 echo 1 > /tmp/full_screen                              
  839.                         else
  840.                                 if [ "`arping -I br1 -c 1 $gateway | grep -i Received | cut -d " " -f 2`" = "0" ]; then
  841.                                         echo "auto IP disconnect"
  842.                                         echo 1 > /tmp/full_screen
  843.                                 else
  844.                                         echo "auto IP connect"
  845.                                         Wlan0=`brctl show |grep br0|grep wlan0`
  846.                                         if [ "$Wlan0" != "" ]; then
  847.                                                 /bin/PLC_MSSID.sh
  848.                                         fi
  849.                                         echo 0 > /tmp/full_screen
  850.                                 fi
  851.                         fi
  852.                 fi
  853.         fi
  854.         sleep 5
  855.         /bin/cleanlog.sh &
  856. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement