02_network 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. . /lib/functions.sh
  2. . /lib/functions/uci-defaults.sh
  3. . /lib/functions/system.sh
  4. ramips_setup_interfaces()
  5. {
  6. local board="$1"
  7. case $board in
  8. ampedwireless,ally-00x19k|\
  9. edimax,re23s|\
  10. mikrotik,routerboard-m11g|\
  11. netgear,ex6150|\
  12. sercomm,na502|\
  13. thunder,timecloud|\
  14. tplink,re350-v1|\
  15. tplink,re500-v1|\
  16. tplink,re650-v1|\
  17. ubnt,unifi-6-lite|\
  18. ubnt,unifi-nanohd)
  19. ucidef_set_interface_lan "lan"
  20. ;;
  21. ampedwireless,ally-r1900k|\
  22. gehua,ghl-r-001|\
  23. hiwifi,hc5962|\
  24. xiaomi,mi-router-3-pro|\
  25. xiaomi,mi-router-ac2100|\
  26. xiaomi,redmi-router-ac2100)
  27. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan"
  28. ;;
  29. asiarf,ap7621-001|\
  30. winstars,ws-wn583a6)
  31. ucidef_set_interfaces_lan_wan "lan" "wan"
  32. ;;
  33. asiarf,ap7621-nv1|\
  34. glinet,gl-mt1300|\
  35. jcg,q20|\
  36. lenovo,newifi-d1|\
  37. mikrotik,routerboard-m33g|\
  38. xiaomi,mi-router-3g|\
  39. xiaomi,mi-router-3g-v2|\
  40. xiaomi,mi-router-4|\
  41. xiaomi,mi-router-4a-gigabit)
  42. ucidef_set_interfaces_lan_wan "lan1 lan2" "wan"
  43. ;;
  44. gnubee,gb-pc1|\
  45. gnubee,gb-pc2)
  46. ucidef_set_interface_lan "lan1 lan2"
  47. ;;
  48. linksys,re6500|\
  49. netgear,wac104)
  50. ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
  51. ;;
  52. mikrotik,routerboard-750gr3)
  53. ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan"
  54. ;;
  55. mikrotik,routerboard-760igs)
  56. ucidef_set_interfaces_lan_wan "lan2 lan3 lan4 lan5" "wan sfp"
  57. ;;
  58. tplink,eap235-wall-v1)
  59. ucidef_set_interface_lan "lan0 lan1 lan2 lan3"
  60. ;;
  61. ubnt,edgerouter-x)
  62. ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4" "eth0"
  63. ;;
  64. ubnt,edgerouter-x-sfp)
  65. ucidef_set_interfaces_lan_wan "eth1 eth2 eth3 eth4 eth5" "eth0"
  66. ;;
  67. ubnt,usw-flex)
  68. ucidef_set_interface_lan "lan1 lan2 lan3 lan4 lan5"
  69. ;;
  70. zyxel,nr7101)
  71. ucidef_set_interfaces_lan_wan "lan" "wan"
  72. ;;
  73. zyxel,wap6805)
  74. ucidef_set_interface_lan "lan1 lan2 lan3 lan4"
  75. ucidef_set_interface "qtn" ifname "eth1" protocol "static" ipaddr "1.1.1.1" netmask "255.255.255.0"
  76. ;;
  77. *)
  78. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
  79. ;;
  80. esac
  81. }
  82. ramips_setup_macs()
  83. {
  84. local board="$1"
  85. local lan_mac=""
  86. local wan_mac=""
  87. local label_mac=""
  88. case $board in
  89. ampedwireless,ally-00x19k)
  90. lan_mac=$(mtd_get_mac_ascii hwconfig HW.LAN.MAC.Address)
  91. label_mac=$lan_mac
  92. ;;
  93. ampedwireless,ally-r1900k)
  94. lan_mac=$(mtd_get_mac_ascii hwconfig HW.LAN.MAC.Address)
  95. wan_mac=$(mtd_get_mac_ascii hwconfig HW.WAN.MAC.Address)
  96. label_mac=$lan_mac
  97. ;;
  98. asus,rt-ac65p|\
  99. asus,rt-ac85p)
  100. wan_mac=$(mtd_get_mac_ascii u-boot-env et1macaddr)
  101. label_mac=$(mtd_get_mac_binary factory 0x4)
  102. ;;
  103. buffalo,wsr-1166dhp)
  104. local index="$(find_mtd_index "board_data")"
  105. wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
  106. lan_mac=$wan_mac
  107. ;;
  108. dlink,dir-860l-b1)
  109. lan_mac=$(mtd_get_mac_ascii factory lanmac)
  110. wan_mac=$(mtd_get_mac_ascii factory wanmac)
  111. ;;
  112. edimax,ra21s|\
  113. edimax,rg21s)
  114. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  115. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  116. ;;
  117. elecom,wrc-2533ghbk-i)
  118. lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
  119. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  120. label_mac=$wan_mac
  121. ;;
  122. hiwifi,hc5962)
  123. lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
  124. label_mac=$lan_mac
  125. [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
  126. wan_mac=$(macaddr_add "$lan_mac" 1)
  127. ;;
  128. iodata,wnpr2600g)
  129. wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
  130. label_mac=$wan_mac
  131. ;;
  132. jcg,y2|\
  133. wavlink,wl-wn531a6|\
  134. winstars,ws-wn583a6|\
  135. zbtlink,zbt-we1326|\
  136. zbtlink,zbt-wg3526-16m|\
  137. zbtlink,zbt-wg3526-32m)
  138. label_mac=$(mtd_get_mac_binary factory 0x4)
  139. ;;
  140. linksys,e5600|\
  141. linksys,ea7300-v1|\
  142. linksys,ea7300-v2|\
  143. linksys,ea7500-v2|\
  144. linksys,ea8100-v1|\
  145. linksys,ea8100-v2)
  146. lan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr)
  147. wan_mac=$lan_mac
  148. label_mac=$lan_mac
  149. ;;
  150. mikrotik,routerboard-750gr3|\
  151. mikrotik,routerboard-760igs|\
  152. mikrotik,routerboard-m11g|\
  153. mikrotik,routerboard-m33g)
  154. label_mac=$(cat "/sys/firmware/mikrotik/hard_config/mac_base")
  155. wan_mac=$label_mac
  156. lan_mac=$(macaddr_add $label_mac 1)
  157. ;;
  158. esac
  159. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  160. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  161. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  162. }
  163. board_config_update
  164. board=$(board_name)
  165. ramips_setup_interfaces $board
  166. ramips_setup_macs $board
  167. board_config_flush
  168. exit 0