S05netconfig 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #!/bin/sh /etc/rc.common
  2. # Copyright (C) 2006 OpenWrt.org
  3. start() {
  4. [ -e /etc/config/network ] && exit 0
  5. mkdir -p /etc/config
  6. (
  7. if grep -E 'mtd0: 000(6|a)0000' /proc/mtd 2>&- >&-; then
  8. # WGT634u
  9. echo boardtype=wgt634u
  10. else
  11. strings /dev/mtdblock/3
  12. fi
  13. ) | awk '
  14. function p(cfgname, name) {
  15. if (c[name] != "") print " option " cfgname " \"" c[name] "\""
  16. }
  17. BEGIN {
  18. FS="="
  19. c["lan_ifname"]="eth0.0 wl0"
  20. c["wan_ifname"]="eth0.1"
  21. c["vlan0ports"]="1 2 3 4 5*"
  22. c["vlan1ports"]="0 5"
  23. }
  24. ($1 == "boardnum") || ($1 == "boardtype") || ($1 == "boardflags") {
  25. nvram[$1] = $2
  26. }
  27. END {
  28. # v1 hardware
  29. if (nvram["boardtype"] == "bcm94710dev") {
  30. # Asus WL-500g
  31. if (nvram["boardnum"] == "asusX") {
  32. c["lan_ifname"]="eth0 eth1 wl0" # FIXME
  33. c["wan_ifname"]=""
  34. }
  35. }
  36. if (nvram["boardtype"] == "wgt634u") {
  37. c["vlan0ports"] = "0 1 2 3 5*"
  38. c["vlan1ports"] = "4 5"
  39. c["lan_ifname"] = "eth0.0 ath0"
  40. }
  41. if ((nvram["boardtype"] == "0x0467") || (nvram["boardtype"] == "0x042f")) {
  42. c["vlan0ports"] = "0 1 2 3 5*"
  43. c["vlan1ports"] = "4 5"
  44. }
  45. # WAP54G
  46. if ((nvram["boardnum"] == "2") || \
  47. (nvram["boardnum"] == "1024")) {
  48. c["lan_ifname"]="eth0 wl0"
  49. c["wan_ifname"]=""
  50. }
  51. print "#### VLAN configuration "
  52. print "config switch eth0"
  53. p("vlan0", "vlan0ports")
  54. p("vlan1", "vlan1ports")
  55. print ""
  56. print ""
  57. print "#### Loopback configuration"
  58. print "config interface loopback"
  59. print " option ifname \"lo\""
  60. print " option proto static"
  61. print " option ipaddr 127.0.0.1"
  62. print " option netmask 255.0.0.0"
  63. print ""
  64. print ""
  65. print "#### LAN configuration"
  66. print "config interface lan"
  67. print " option type bridge"
  68. p("ifname", "lan_ifname")
  69. print " option proto static"
  70. print " option ipaddr 192.168.1.1"
  71. print " option netmask 255.255.255.0"
  72. print ""
  73. print ""
  74. print "#### WAN configuration"
  75. print "config interface wan"
  76. p("ifname", "wan_ifname")
  77. print " option proto dhcp"
  78. }' > /etc/config/network
  79. }