02_network 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #
  2. # Copyright (C) 2013-2015 OpenWrt.org
  3. #
  4. . /lib/functions/uci-defaults.sh
  5. . /lib/functions/system.sh
  6. sunxi_setup_interfaces()
  7. {
  8. local board="$1"
  9. case "$board" in
  10. friendlyarm,nanopi-r1|\
  11. friendlyarm,nanopi-r1s-h5)
  12. ucidef_set_interfaces_lan_wan "eth1" "eth0"
  13. ;;
  14. lamobo,lamobo-r1)
  15. ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" wan
  16. ;;
  17. olimex,a13-olinuxino-micro)
  18. ucidef_set_interface_lan "wlan0"
  19. ;;
  20. xunlong,orangepi-r1)
  21. ucidef_set_interfaces_lan_wan "eth0" "eth1"
  22. ;;
  23. *)
  24. ucidef_set_interface_lan "eth0"
  25. ;;
  26. esac
  27. }
  28. nanopi_r1_get_mac()
  29. {
  30. local interface=$1
  31. local eeprom_path="/sys/bus/i2c/devices/2-0051/eeprom"
  32. local address
  33. if [ -f "$eeprom_path" ]; then
  34. address=$(get_mac_binary "$eeprom_path" 0xfa)
  35. if [ "$interface" = "lan" ]; then
  36. address=$(macaddr_setbit_la "$address")
  37. fi
  38. else
  39. address=$(macaddr_generate_from_mmc_cid mmcblk1)
  40. if [ "$interface" = "lan" ]; then
  41. address=$(macaddr_add "$address" 1)
  42. fi
  43. fi
  44. echo "$address"
  45. }
  46. sunxi_setup_macs()
  47. {
  48. local board="$1"
  49. local lan_mac=""
  50. local wan_mac=""
  51. local label_mac=""
  52. case "$board" in
  53. friendlyarm,nanopi-r1)
  54. wan_mac=$(nanopi_r1_get_mac wan)
  55. lan_mac=$(nanopi_r1_get_mac lan)
  56. ;;
  57. friendlyarm,nanopi-r1s-h5)
  58. lan_mac=$(get_mac_binary "/sys/bus/i2c/devices/0-0051/eeprom" 0xfa)
  59. ;;
  60. esac
  61. [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac
  62. [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac
  63. [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac
  64. }
  65. board_config_update
  66. board=$(board_name)
  67. sunxi_setup_interfaces $board
  68. sunxi_setup_macs $board
  69. board_config_flush
  70. exit 0