02_network 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. . /lib/functions.sh
  2. . /lib/functions/uci-defaults.sh
  3. . /lib/functions/system.sh
  4. mediatek_setup_interfaces()
  5. {
  6. local board="$1"
  7. case $board in
  8. abt,asr3000|\
  9. cmcc,rax3000m|\
  10. h3c,magic-nx30-pro|\
  11. netis,nx31|\
  12. nokia,ea0326gmp|\
  13. zbtlink,zbt-z8103ax)
  14. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" eth1
  15. ;;
  16. acelink,ew-7886cax)
  17. ucidef_set_interface_lan "eth0" "dhcp"
  18. ;;
  19. acer,predator-w6|\
  20. acer,predator-w6d)
  21. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 game" eth1
  22. ;;
  23. acer,vero-w6m)
  24. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" internet
  25. ;;
  26. arcadyan,mozart)
  27. ucidef_set_interfaces_lan_wan "lan0 eth1" eth2
  28. ;;
  29. asus,rt-ax59u|\
  30. cetron,ct3003|\
  31. cmcc,a10-stock|\
  32. cmcc,a10-ubootmod|\
  33. confiabits,mt7981|\
  34. cudy,wr3000-v1|\
  35. jcg,q30-pro|\
  36. keenetic,kn-3811|\
  37. qihoo,360t7|\
  38. routerich,ax3000|\
  39. routerich,ax3000-ubootmod)
  40. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" wan
  41. ;;
  42. asus,tuf-ax4200|\
  43. jdcloud,re-cp-03|\
  44. mediatek,mt7981-rfb|\
  45. netcore,n60|\
  46. ruijie,rg-x60-pro|\
  47. unielec,u7981-01*|\
  48. zbtlink,zbt-z8102ax|\
  49. zyxel,ex5601-t0-stock|\
  50. zyxel,ex5601-t0-ubootmod)
  51. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" eth1
  52. ;;
  53. asus,tuf-ax6000|\
  54. glinet,gl-mt6000|\
  55. tplink,tl-xdr4288|\
  56. tplink,tl-xdr6088|\
  57. tplink,tl-xtr8488)
  58. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" eth1
  59. ;;
  60. bananapi,bpi-r3)
  61. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 sfp2" "eth1 wan"
  62. ;;
  63. bananapi,bpi-r3-mini|\
  64. edgecore,eap111)
  65. ucidef_set_interfaces_lan_wan eth0 eth1
  66. ;;
  67. bananapi,bpi-r4|\
  68. bananapi,bpi-r4-poe)
  69. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 eth1" "wan eth2"
  70. ;;
  71. comfast,cf-e393ax)
  72. ucidef_set_interfaces_lan_wan "lan1" eth1
  73. ;;
  74. cudy,ap3000outdoor-v1|\
  75. cudy,ap3000-v1|\
  76. cudy,re3000-v1|\
  77. netgear,wax220|\
  78. ubnt,unifi-6-plus|\
  79. zyxel,nwa50ax-pro)
  80. ucidef_set_interface_lan "eth0"
  81. ;;
  82. cudy,m3000-v1|\
  83. cudy,tr3000-v1|\
  84. glinet,gl-mt2500|\
  85. glinet,gl-mt3000|\
  86. glinet,gl-x3000|\
  87. glinet,gl-xe3000|\
  88. openembed,som7981|\
  89. openwrt,one)
  90. ucidef_set_interfaces_lan_wan eth1 eth0
  91. ;;
  92. dlink,aquila-pro-ai-m30-a1|\
  93. dlink,aquila-pro-ai-m60-a1)
  94. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" internet
  95. ;;
  96. keenetic,kn-3911|\
  97. smartrg,sdg-8622|\
  98. smartrg,sdg-8632|\
  99. smartrg,sdg-8733a|\
  100. yuncore,ax835)
  101. ucidef_set_interfaces_lan_wan lan wan
  102. ;;
  103. mediatek,mt7986a-rfb)
  104. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan6" "eth1 wan"
  105. ;;
  106. mediatek,mt7986b-rfb)
  107. ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3 lan4" eth1
  108. ;;
  109. mediatek,mt7988a-rfb)
  110. ucidef_set_interfaces_lan_wan "lan0 lan1 lan2 lan3 eth2" eth1
  111. ;;
  112. mercusys,mr90x-v1|\
  113. mercusys,mr90x-v1-ubi)
  114. ucidef_set_interfaces_lan_wan "lan0 lan1 lan2" eth1
  115. ;;
  116. tplink,tl-xdr6086|\
  117. wavlink,wl-wn586x3)
  118. ucidef_set_interfaces_lan_wan "lan1 lan2" eth1
  119. ;;
  120. tplink,re6000xd)
  121. ucidef_set_interface_lan "lan1 lan2 eth1"
  122. ;;
  123. xiaomi,mi-router-ax3000t|\
  124. xiaomi,mi-router-ax3000t-ubootmod|\
  125. xiaomi,mi-router-wr30u-stock|\
  126. xiaomi,mi-router-wr30u-ubootmod|\
  127. xiaomi,redmi-router-ax6000-stock|\
  128. xiaomi,redmi-router-ax6000-ubootmod)
  129. ucidef_set_interfaces_lan_wan "lan2 lan3 lan4" wan
  130. ;;
  131. *)
  132. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" wan
  133. ;;
  134. esac
  135. }
  136. mediatek_setup_macs()
  137. {
  138. local board="$1"
  139. local lan_mac=""
  140. local wan_mac=""
  141. local label_mac=""
  142. case $board in
  143. acer,predator-w6|\
  144. acer,predator-w6d|\
  145. acer,vero-w6m)
  146. wan_mac=$(mmc_get_mac_ascii u-boot-env WANMAC)
  147. lan_mac=$(mmc_get_mac_ascii u-boot-env LANMAC)
  148. ;;
  149. bananapi,bpi-r3|\
  150. bananapi,bpi-r3-mini|\
  151. bananapi,bpi-r4)
  152. wan_mac=$(macaddr_add $(cat /sys/class/net/eth0/address) 1)
  153. ;;
  154. h3c,magic-nx30-pro)
  155. wan_mac=$(mtd_get_mac_ascii pdt_data_1 ethaddr)
  156. lan_mac=$(macaddr_add "$wan_mac" 1)
  157. label_mac=$wan_mac
  158. ;;
  159. mercusys,mr90x-v1|\
  160. tplink,re6000xd)
  161. label_mac=$(get_mac_binary "/tmp/tp_data/default-mac" 0)
  162. lan_mac=$label_mac
  163. ;;
  164. netgear,wax220)
  165. lan_mac=$(mtd_get_mac_ascii u-boot-env mac)
  166. label_mac=$lan_mac
  167. ;;
  168. qihoo,360t7)
  169. lan_mac=$(mtd_get_mac_ascii factory lanMac)
  170. wan_mac=$(macaddr_add "$lan_mac" 1)
  171. label_mac=$wan_mac
  172. ;;
  173. ruijie,rg-x60-pro)
  174. label_mac=$(mtd_get_mac_ascii product_info ethaddr)
  175. wan_mac=$label_mac
  176. lan_mac=$(macaddr_add "$label_mac" 1)
  177. ;;
  178. xiaomi,mi-router-ax3000t|\
  179. xiaomi,mi-router-ax3000t-ubootmod|\
  180. xiaomi,mi-router-wr30u-stock|\
  181. xiaomi,mi-router-wr30u-ubootmod|\
  182. xiaomi,redmi-router-ax6000-stock|\
  183. xiaomi,redmi-router-ax6000-ubootmod)
  184. wan_mac=$(mtd_get_mac_ascii Bdata ethaddr_wan)
  185. label_mac=$wan_mac
  186. ;;
  187. yuncore,ax835)
  188. label_mac=$(mtd_get_mac_binary "Factory" 0x4)
  189. ;;
  190. esac
  191. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  192. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  193. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  194. }
  195. board_config_update
  196. board=$(board_name)
  197. mediatek_setup_interfaces $board
  198. mediatek_setup_macs $board
  199. board_config_flush
  200. exit 0