02_network 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280
  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. alfa-network,awusfree1|\
  9. d-team,pbr-d1|\
  10. dlink,dap-1325-a1|\
  11. glinet,microuter-n300|\
  12. glinet,vixmini|\
  13. hak5,wifi-pineapple-mk7|\
  14. mediatek,linkit-smart-7688|\
  15. minew,g1-c|\
  16. onion,omega2p|\
  17. onion,omega2|\
  18. ravpower,rp-wd009|\
  19. tama,w06|\
  20. tplink,re200-v2|\
  21. tplink,re200-v3|\
  22. tplink,re200-v4|\
  23. tplink,re220-v2|\
  24. tplink,re305-v1|\
  25. tplink,re305-v3|\
  26. tplink,tl-mr3020-v3|\
  27. tplink,tl-wr802n-v4|\
  28. tplink,tl-wa801nd-v5|\
  29. widora,neo-16m|\
  30. widora,neo-32m)
  31. ucidef_add_switch "switch0"
  32. ucidef_add_switch_attr "switch0" "enable" "false"
  33. ucidef_set_interface_lan "eth0"
  34. ;;
  35. asus,rt-n10p-v3|\
  36. asus,rt-n11p-b1|\
  37. asus,rt-n12-vp-b1|\
  38. hiwifi,hc5661a|\
  39. mediatek,mt7628an-eval-board|\
  40. mercury,mac1200r-v2|\
  41. totolink,lr1200|\
  42. wavlink,wl-wn570ha1|\
  43. wavlink,wl-wn575a3)
  44. ucidef_add_switch "switch0" \
  45. "0:lan" "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
  46. ;;
  47. buffalo,wcr-1166ds|\
  48. elecom,wrc-1167fs|\
  49. wavlink,wl-wn577a2|\
  50. wavlink,wl-wn578a2)
  51. ucidef_add_switch "switch0" \
  52. "3:lan" "4:wan" "6@eth0"
  53. ;;
  54. cudy,wr1000)
  55. ucidef_add_switch "switch0" \
  56. "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
  57. ;;
  58. duzun,dm06)
  59. ucidef_add_switch "switch0" \
  60. "1:lan" "0:wan" "6@eth0"
  61. ;;
  62. glinet,gl-mt300n-v2)
  63. ucidef_add_switch "switch0" \
  64. "1:lan" "0:wan" "6@eth0"
  65. ;;
  66. hilink,hlk-7628n|\
  67. hilink,hlk-7688a|\
  68. hiwifi,hc5861b|\
  69. skylab,skw92a|\
  70. tplink,archer-c20-v4|\
  71. tplink,archer-c20-v5|\
  72. tplink,archer-c50-v3|\
  73. tplink,archer-c50-v4|\
  74. tplink,tl-mr3420-v5|\
  75. tplink,tl-wr840n-v4|\
  76. tplink,tl-wr840n-v5|\
  77. tplink,tl-wr841n-v13|\
  78. tplink,tl-wr841n-v14|\
  79. tplink,tl-wr842n-v5|\
  80. tplink,tl-wr850n-v2|\
  81. unielec,u7628-01-16m|\
  82. wrtnode,wrtnode2p|\
  83. wrtnode,wrtnode2r|\
  84. zyxel,keenetic-extra-ii)
  85. ucidef_add_switch "switch0" \
  86. "1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "6@eth0"
  87. ;;
  88. hiwifi,hc5761a)
  89. ucidef_add_switch "switch0" \
  90. "0:lan" "1:lan" "4:wan" "6@eth0"
  91. ;;
  92. iptime,a3|\
  93. totolink,a3)
  94. ucidef_add_switch "switch0" \
  95. "2:lan:2" "3:lan:1" "0:wan" "6@eth0"
  96. ;;
  97. iptime,a604m)
  98. ucidef_add_switch "switch0" \
  99. "1:lan:4" "2:lan:3" "3:lan:2" "4:lan:1" "0:wan" "6@eth0"
  100. ;;
  101. jotale,js76x8-8m|\
  102. jotale,js76x8-16m|\
  103. jotale,js76x8-32m)
  104. ucidef_add_switch "switch0" \
  105. "0:lan" "1:lan" "2:lan" "6@eth0"
  106. ;;
  107. motorola,mwr03)
  108. ucidef_add_switch "switch0" \
  109. "1:lan" "2:lan" "3:lan" "0:wan" "6@eth0"
  110. ;;
  111. netgear,r6020|\
  112. netgear,r6080|\
  113. netgear,r6120)
  114. ucidef_add_switch "switch0" \
  115. "0:lan:4" "1:lan:3" "2:lan:2" "3:lan:1" "4:wan" "6@eth0"
  116. ;;
  117. rakwireless,rak633)
  118. ucidef_add_switch "switch0" \
  119. "0:wan" "1:lan" "2:lan" "3:lan" "4:lan" "6t@eth0"
  120. ;;
  121. tplink,tl-mr6400-v4)
  122. ucidef_add_switch "switch0" \
  123. "1:lan" "2:lan" "3:lan" "4:wan" "6@eth0"
  124. ;;
  125. tplink,tl-mr6400-v5)
  126. ucidef_add_switch "switch0" \
  127. "0:lan" "1:lan" "2:lan" "3:wan" "6@eth0"
  128. ;;
  129. tplink,tl-wr902ac-v3)
  130. ucidef_add_switch "switch0" \
  131. "4:lan" "6@eth0"
  132. ;;
  133. vocore,vocore2|\
  134. vocore,vocore2-lite)
  135. ucidef_add_switch "switch0" \
  136. "0:lan" "2:lan" "6t@eth0"
  137. ;;
  138. wiznet,wizfi630s)
  139. ucidef_add_switch "switch0" \
  140. "0:wan" "3:lan" "4:lan" "6@eth0"
  141. ;;
  142. xiaomi,mi-router-4a-100m)
  143. ucidef_add_switch "switch0" \
  144. "4:lan:1" "2:lan:2" "0:wan" "6@eth0"
  145. ;;
  146. xiaomi,mi-router-4c)
  147. ucidef_add_switch "switch0" \
  148. "4:lan:1" "2:lan:2" "1:wan" "6@eth0"
  149. ;;
  150. xiaomi,miwifi-3c)
  151. ucidef_add_switch "switch0" \
  152. "0:wan" "2:lan:2" "4:lan:1" "6@eth0"
  153. ;;
  154. xiaomi,miwifi-nano)
  155. ucidef_add_switch "switch0" \
  156. "0:lan:2" "2:lan:1" "4:wan" "6@eth0"
  157. ;;
  158. zbtlink,zbt-we1226)
  159. ucidef_add_switch "switch0" \
  160. "0:lan:2" "1:lan:1" "4:wan" "6@eth0"
  161. ;;
  162. esac
  163. }
  164. ramips_setup_macs()
  165. {
  166. local board="$1"
  167. local lan_mac=""
  168. local wan_mac=""
  169. local label_mac=""
  170. case $board in
  171. buffalo,wcr-1166ds)
  172. local index="$(find_mtd_index "board_data")"
  173. wan_mac="$(grep -m1 mac= "/dev/mtd${index}" | cut -d= -f2)"
  174. lan_mac=$wan_mac
  175. ;;
  176. cudy,wr1000|\
  177. hilink,hlk-7628n|\
  178. hilink,hlk-7688a|\
  179. wavlink,wl-wn577a2|\
  180. wavlink,wl-wn578a2)
  181. wan_mac=$(mtd_get_mac_binary factory 0x2e)
  182. label_mac=$(mtd_get_mac_binary factory 0x4)
  183. ;;
  184. duzun,dm06|\
  185. netgear,r6020|\
  186. netgear,r6080|\
  187. netgear,r6120|\
  188. wrtnode,wrtnode2p|\
  189. wrtnode,wrtnode2r|\
  190. zyxel,keenetic-extra-ii)
  191. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x4)" 1)
  192. ;;
  193. elecom,wrc-1167fs)
  194. wan_mac=$(mtd_get_mac_binary factory 0x22)
  195. label_mac=$wan_mac
  196. ;;
  197. hiwifi,hc5661a|\
  198. hiwifi,hc5761a|\
  199. hiwifi,hc5861b)
  200. lan_mac=$(mtd_get_mac_ascii bdinfo "Vfac_mac ")
  201. label_mac=$lan_mac
  202. [ -n "$lan_mac" ] || lan_mac=$(cat /sys/class/net/eth0/address)
  203. wan_mac=$(macaddr_add "$lan_mac" 1)
  204. ;;
  205. iptime,a3|\
  206. iptime,a604m|\
  207. totolink,a3)
  208. wan_mac=$(mtd_get_mac_binary u-boot 0x1fc40)
  209. ;;
  210. jotale,js76x8-8m|\
  211. jotale,js76x8-16m|\
  212. jotale,js76x8-32m|\
  213. skylab,skw92a|\
  214. totolink,lr1200)
  215. wan_mac=$(mtd_get_mac_binary factory 0x2e)
  216. ;;
  217. mercury,mac1200r-v2)
  218. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory_info 0xd)" 1)
  219. ;;
  220. motorola,mwr03)
  221. label_mac=$(mtd_get_mac_binary factory 0x4)
  222. wan_mac=$(macaddr_add "$label_mac" 2)
  223. ;;
  224. onion,omega2|\
  225. onion,omega2p|\
  226. vocore,vocore2|\
  227. vocore,vocore2-lite)
  228. label_mac=$(mtd_get_mac_binary factory 0x4)
  229. ;;
  230. rakwireless,rak633|\
  231. unielec,u7628-01-16m|\
  232. wavlink,wl-wn575a3)
  233. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x28)" 1)
  234. ;;
  235. tplink,archer-c20-v4|\
  236. tplink,archer-c50-v3|\
  237. tplink,tl-mr3420-v5|\
  238. tplink,tl-wr840n-v4|\
  239. tplink,tl-wr840n-v5|\
  240. tplink,tl-wr841n-v13|\
  241. tplink,tl-wr841n-v14|\
  242. tplink,tl-wr842n-v5|\
  243. tplink,tl-wr850n-v2)
  244. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0xf100)" 1)
  245. ;;
  246. tplink,archer-c20-v5|\
  247. tplink,archer-c50-v4)
  248. wan_mac=$(macaddr_add "$(mtd_get_mac_binary rom 0xf100)" 1)
  249. ;;
  250. wavlink,wl-wn570ha1|\
  251. zbtlink,zbt-we1226)
  252. wan_mac=$(macaddr_add "$(mtd_get_mac_binary factory 0x2e)" 1)
  253. ;;
  254. wiznet,wizfi630s)
  255. label_mac=$(mtd_get_mac_binary factory 0x4)
  256. wan_mac=$(mtd_get_mac_binary factory 0x28)
  257. ;;
  258. xiaomi,mi-router-4a-100m|\
  259. xiaomi,mi-router-4c)
  260. wan_mac=$(mtd_get_mac_binary factory 0x4)
  261. ;;
  262. esac
  263. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  264. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  265. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  266. }
  267. board_config_update
  268. board=$(board_name)
  269. ramips_setup_interfaces $board
  270. ramips_setup_macs $board
  271. board_config_flush
  272. exit 0