f5fba5bc3c
Here is support for the compact Asus WL-330gE. It uses that all-in-one 5354 Broadcom chip that's also in the WL-520gU, so I assume USB support can be soldered on. I've yet to open up the device, though. Initial flashing is done through the CFE failsafe mode like on other Asus devices, where you boot holding the reset button, the power LED flashes, and you tftp an image. Signed-off-by: David Cooper <dave@kupesoft.com> SVN-Revision: 14624
196 lines
4.8 KiB
Bash
Executable file
196 lines
4.8 KiB
Bash
Executable file
#!/bin/sh /etc/rc.common
|
|
# Copyright (C) 2006 OpenWrt.org
|
|
|
|
START=05
|
|
|
|
start() {
|
|
[ -e /etc/config/network ] && exit 0
|
|
|
|
mkdir -p /etc/config
|
|
|
|
(
|
|
if grep -E 'mtd0: 000(6|a)0000' /proc/mtd 2>&- >&-; then
|
|
# WGT634u
|
|
echo boardtype=wgt634u
|
|
else
|
|
strings "$(find_mtd_part nvram)"
|
|
fi
|
|
) | awk '
|
|
function p(cfgname, name) {
|
|
if (c[name] != "") print " option " cfgname " \"" c[name] "\""
|
|
}
|
|
|
|
function macinc(mac, maca, i, result) {
|
|
split(mac, maca, ":")
|
|
for (i = 1; i <= 6; i++) maca[i] = "0x" maca[i]
|
|
if (++maca[6] > 0xff) {
|
|
maca[5]++
|
|
maca[6] = 0
|
|
}
|
|
for (i = 1; i <= 6; i++) {
|
|
if (i != 1) result = result ":"
|
|
result = result sprintf("%02x", maca[i])
|
|
}
|
|
return result
|
|
}
|
|
|
|
BEGIN {
|
|
FS="="
|
|
c["lan_ifname"]="eth0.0"
|
|
c["wan_ifname"]="eth0.1"
|
|
c["vlan0ports"]="1 2 3 4 5*"
|
|
c["vlan1ports"]="0 5"
|
|
getline < "/proc/diag/model"
|
|
model=$0
|
|
for (i = 0; i < 6; i++) {
|
|
if (mac_check != "") mac_check = mac_check ":"
|
|
mac_check = mac_check "[0-9a-fA-F][0-9a-fA-F]"
|
|
}
|
|
}
|
|
|
|
($1 == "boardnum") || ($1 == "boardtype") || ($1 == "boardflags") || ($1 ~ /macaddr/) {
|
|
nvram[$1] = $2
|
|
}
|
|
|
|
END {
|
|
if ((model == "ASUS WL-HDD") || (model == "ASUS WL-300g") || (model == "Linksys WAP54G V1")) {
|
|
c["wan_ifname"] = ""
|
|
c["lan_ifname"] = "eth1"
|
|
}
|
|
if (model == "ASUS WL-330gE") {
|
|
c["wan_ifname"] = ""
|
|
c["lan_ifname"] = "eth0"
|
|
c["vlan0ports"] = ""
|
|
c["vlan1ports"] = ""
|
|
}
|
|
if (model == "ASUS WL-500g") {
|
|
c["wan_ifname"] = "eth1"
|
|
c["lan_ifname"] = "eth0"
|
|
}
|
|
if (model == "ASUS WL-500g Premium V2") {
|
|
c["vlan0ports"] = "0 1 2 3 5*"
|
|
c["vlan1ports"] = "4 5"
|
|
}
|
|
if (model == "Dell TrueMobile 2300") {
|
|
c["lan_ifname"] = "eth0"
|
|
c["wan_ifname"] = "eth1"
|
|
c["vlan0ports"] = "0 1 2 3 4 5u"
|
|
c["vlan1ports"] = ""
|
|
}
|
|
if (model == "Dell TrueMobile 2300 v2") {
|
|
c["vlan0ports"] = "0 1 2 3 5*"
|
|
c["vlan1ports"] = "4 5"
|
|
}
|
|
if (nvram["boardtype"] == "bcm94710r4") {
|
|
# Toshiba WRC-1000
|
|
c["lan_ifname"] = "eth0"
|
|
c["wan_ifname"] = "eth1"
|
|
}
|
|
if (nvram["boardtype"] == "wgt634u") {
|
|
c["vlan0ports"] = "0 1 2 3 5*"
|
|
c["vlan1ports"] = "4 5"
|
|
}
|
|
if (nvram["boardtype"] == "0x0467") {
|
|
c["vlan0ports"] = "0 1 2 3 5*"
|
|
c["vlan1ports"] = "4 5"
|
|
}
|
|
if ((nvram["boardtype"] == "0x042f") || (nvram["boardtype"] == "0x0472")) {
|
|
if (nvram["boardnum"] == "45") {
|
|
# WL-500gP
|
|
c["vlan0ports"] = "1 2 3 4 5*"
|
|
c["vlan1ports"] = "0 5"
|
|
} else {
|
|
# Generic BCM94704
|
|
c["vlan0ports"] = "0 1 2 3 4 5u"
|
|
c["vlan1ports"] = ""
|
|
c["lan_ifname"] = "eth0"
|
|
c["wan_ifname"] = "eth1"
|
|
|
|
# MAC addresses on 4704 tend to be screwed up. Add a workaround here
|
|
if (nvram["et0macaddr"] ~ mac_check) {
|
|
c["lan_macaddr"] = nvram["et0macaddr"]
|
|
c["wan_macaddr"] = macinc(c["lan_macaddr"])
|
|
}
|
|
}
|
|
}
|
|
if (nvram["boardtype"] == "0x478") {
|
|
# generic broadcom 4785 processor with 5397 switch?
|
|
c["vlan0ports"] = "1 2 3 4 8*"
|
|
c["vlan1ports"] = "0 8"
|
|
}
|
|
|
|
# WAP54G
|
|
if ((nvram["boardnum"] == "2") || \
|
|
(nvram["boardnum"] == "1024")) {
|
|
c["lan_ifname"]="eth0"
|
|
c["wan_ifname"]=""
|
|
}
|
|
|
|
# Sitecom WL-105b
|
|
if ((nvram["boardum"] == "2") && \
|
|
(nvram["GemtekPmonVer"] == "1")) {
|
|
c["lan_ifname"]="eth0"
|
|
c["wan_ifname"]=""
|
|
}
|
|
|
|
# ASUS WL-700gE
|
|
# These are actually same as defaults above. For some reason this script applies
|
|
# Generic BCM94704 settings instead so we revert to proper settings here.
|
|
# Hopefully someone will fix this properly soon.
|
|
if (model == "ASUS WL-700gE") {
|
|
c["lan_ifname"]="eth0.0"
|
|
c["wan_ifname"]="eth0.1"
|
|
c["vlan0ports"]="1 2 3 4 5*"
|
|
c["vlan1ports"]="0 5"
|
|
}
|
|
|
|
if (model == "Motorola WR850G V2/V3") {
|
|
c["vlan0ports"]="0 1 2 3 5*"
|
|
c["vlan1ports"]="4 5"
|
|
}
|
|
if (model == "ASUS WL-500W") {
|
|
c["lan_ifname"] = "eth0"
|
|
c["wan_ifname"] = "eth1"
|
|
c["vlan0ports"] = "0 1 2 3 4 5u"
|
|
c["vlan1ports"] = ""
|
|
}
|
|
|
|
if (c["vlan0ports"] || c["vlan1ports"]) {
|
|
print "#### VLAN configuration "
|
|
print "config switch eth0"
|
|
p("vlan0", "vlan0ports")
|
|
p("vlan1", "vlan1ports")
|
|
print ""
|
|
print ""
|
|
}
|
|
print "#### Loopback configuration"
|
|
print "config interface loopback"
|
|
print " option ifname \"lo\""
|
|
print " option proto static"
|
|
print " option ipaddr 127.0.0.1"
|
|
print " option netmask 255.0.0.0"
|
|
print ""
|
|
print ""
|
|
print "#### LAN configuration"
|
|
print "config interface lan"
|
|
print " option type bridge"
|
|
p("ifname", "lan_ifname")
|
|
p("macaddr", "lan_macaddr")
|
|
print " option proto static"
|
|
print " option ipaddr 192.168.1.1"
|
|
print " option netmask 255.255.255.0"
|
|
print ""
|
|
print ""
|
|
if (c["wan_ifname"]) {
|
|
print "#### WAN configuration"
|
|
print "config interface wan"
|
|
p("ifname", "wan_ifname")
|
|
p("macaddr", "wan_macaddr")
|
|
print " option proto dhcp"
|
|
} else {
|
|
print "#### WAN configuration (disabled)"
|
|
print "#config interface wan"
|
|
print "# option proto dhcp"
|
|
}
|
|
}' > /etc/config/network
|
|
}
|