diff options
Diffstat (limited to 'openwrt')
3 files changed, 120 insertions, 76 deletions
diff --git a/openwrt/target/linux/package/openwrt/Makefile b/openwrt/target/linux/package/openwrt/Makefile index 45b33b8869..6fb20d6229 100644 --- a/openwrt/target/linux/package/openwrt/Makefile +++ b/openwrt/target/linux/package/openwrt/Makefile @@ -36,12 +36,13 @@ $(IDIR_OPENWRT): $(SED) s,base-files-arch,base-files-$(BOARD),g $(IDIR_OPENWRT)/CONTROL/control $(IPKG_OPENWRT): $(IDIR_OPENWRT) - mkdir -p $(IDIR_OPENWRT)/etc - cp files/network.overrides.$(BOARD) $(IDIR_OPENWRT)/etc/network.overrides + mkdir -p $(IDIR_OPENWRT)/etc/init.d + [ -f files/network.overrides.$(BOARD) ] && cp files/network.overrides.$(BOARD) $(IDIR_OPENWRT)/etc/network.overrides + [ -f files/S05nvram.$(BOARD) ] && install -m0755 files/S05nvram.$(BOARD) $(IDIR_OPENWRT)/etc/init.d/S05nvram $(RSTRIP) $(IDIR_OPENWRT) $(IPKG_BUILD) $(IDIR_OPENWRT) $(PACKAGE_DIR) -install: $(IPKG_OPENWRT) +install: compile $(IPKG) install $(IPKG_OPENWRT) compile: install-dev $(IPKG_OPENWRT) install-dev: diff --git a/openwrt/target/linux/package/openwrt/files/S05nvram.brcm b/openwrt/target/linux/package/openwrt/files/S05nvram.brcm new file mode 100755 index 0000000000..0d1300b964 --- /dev/null +++ b/openwrt/target/linux/package/openwrt/files/S05nvram.brcm @@ -0,0 +1,102 @@ +# NVRAM setup +# +# This file handles the NVRAM quirks of various hardware. + +. /etc/network.overrides +alias debug=${DEBUG:-:} + +remap () { + for type in lan wifi wan pppoe + do + for s in '' s + do + eval nvram set ${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\" + done + done +} + +nvram_default() { + [ -z "$(nvram get $1)" ] && nvram set "$1=$2" +} + +# linksys bug; remove when not using static configuration for lan +nvram set lan_proto="static" + +# hacks for wrt54g 1.x hardware +[ "$(nvram get boardnum)" = "42" \ +-a "$(nvram get boardtype)" = "bcm94710dev" ] && { + debug "### wrt54g 1.x hack ###" + nvram set vlan1hwname="et0" + nvram set vlan2hwname="et0" + remap eth0 vlan2 + remap eth1 vlan1 +} + +# hacks for asus wl-500g deluxe +[ "$(nvram get boardtype)" = "bcm95365r" \ +-a "$(nvram get boardnum)" = "45" ] && { + debug "### wl-500g deluxe hacks ###" + nvram set vlan0hwname="et0" + nvram set vlan1hwname="et0" + remap eth0.1 vlan0 + remap eth0 vlan1 + + # set up the vlan*ports variables for the asus wl-500g deluxe + # if they don't already exist + nvram_default vlan0ports "1 2 3 4 5*" + nvram_default vlan1ports "0 5" +} + +# hacks for asus wl-300g +[ "$(nvram get productid)" = "WL300g" ] && { + debug "### wl-300g hacks ###" + nvram set lan_ifnames="eth0 eth2" + nvram set wan_ifname="none" +} + +# hacks for asus wl-hdd +[ "$(nvram get productid)" = "WLHDD" ] && { + debug "### wl-hdd hacks ###" + nvram set lan_ifnames="eth1 eth2" + nvram set wan_ifname="none" +} + +# hacks for wap54g hardware +[ "$(nvram get boardnum)" = "2" \ +-o "$(nvram get boardnum)" = "1024" ] && { + debug "### wap54g hack ###" + nvram set wan_ifname="none" +} + +# hacks for buffalo wla2-g54l +[ "$(nvram get boardnum)" = "00" \ +-a "$(nvram get product_name)" = "Product_name" \ +-o "$(nvram get product_name)" = "WLA2-G54L" ] && { + debug "### wla2-g54l hacks ###" + nvram set wan_ifname="none" + nvram set lan_ifnames="vlan0" +} + +# needed at least for wrt54gs v1.1 and wrt54g v2.0, v2.2 +[ \! -z "$(nvram get boardrev)" ] && { + nvram set wl0id=0x4320 +} + +# defaults +nvram_default lan_ifname "br0" +nvram_default lan_ifnames "$FAILSAFE_ifnames" + +nvram_default wan_ifname "vlan1" +nvram_default wan_proto "dhcp" + +nvram_default wl0_ssid OpenWrt +nvram_default wl0_mode ap +nvram_default wl0_infra 1 +nvram_default wl0_radio 1 + +[ "$(nvram get il0macaddr)" = "00:90:4c:5f:00:2a" ] && { + # if default wifi mac, set two higher than the lan mac + nvram set il0macaddr=$(nvram get et0macaddr| + awk '{OFS=FS=":";for(x=7,y=2;--x;){$x=sprintf("%02x",(y+="0x"$x)%256);y/=256}print}') +} + diff --git a/openwrt/target/linux/package/openwrt/files/network.overrides.brcm b/openwrt/target/linux/package/openwrt/files/network.overrides.brcm index 9766108a96..66f1abd248 100644 --- a/openwrt/target/linux/package/openwrt/files/network.overrides.brcm +++ b/openwrt/target/linux/package/openwrt/files/network.overrides.brcm @@ -6,82 +6,23 @@ # Load sysconf defaults [ -f /etc/sysconf ] && . /etc/sysconf -# linksys bug; remove when not using static configuration for lan -lan_proto="static" - -remap () { - for type in lan wifi wan pppoe - do - for s in '' s - do - eval ${type}_ifname$s=\"$(nvram get ${type}_ifname$s|sed s/$1/$2/g)\" - done - done -} - # hacks for wrt54g 1.x hardware [ "$(nvram get boardnum)" = "42" \ --a "$(nvram get boardtype)" = "bcm94710dev" ] && { - debug "### wrt54g 1.x hack ###" - vlan1hwname="et0" - vlan2hwname="et0" - FAILSAFE_ifnames="vlan1 vlan2 eth2" - remap eth0 vlan2 - remap eth1 vlan1 -} +-a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="vlan1 vlan2 eth2" # hacks for asus wl-500g deluxe [ "$(nvram get boardtype)" = "bcm95365r" \ --a "$(nvram get boardnum)" = "45" ] && { - debug "### wl-500g deluxe hacks ###" - vlan0hwname="et0" - vlan1hwname="et0" - FAILSAFE_ifnames="vlan0 eth1" - remap eth0.1 vlan0 - remap eth0 vlan1 -} - -# hacks for asus wl-300g -[ "$(nvram get productid)" = "WL300g" ] && { - debug "### wl-300g hacks ###" - lan_ifnames="eth0 eth2" - wan_ifname="none" -} +-a "$(nvram get boardnum)" = "45" ] && FAILSAFE_ifnames="vlan0 eth1" # hacks for wap54g hardware [ "$(nvram get boardnum)" = "2" \ --o "$(nvram get boardnum)" = "1024" ] && { - debug "### wap54g hack ###" - wan_ifname="none" - FAILSAFE_ifnames="eth0 eth1" -} - -# hacks for buffalo wla2-g54l -[ "$(nvram get boardnum)" = "00" \ --a "$(nvram get product_name)" = "Product_name" \ --o "$(nvram get product_name)" = "WLA2-G54L" ] && { - debug "### wla2-g54l hacks ###" - wan_ifname="none" - lan_ifnames="vlan0" -} +-o "$(nvram get boardnum)" = "1024" ] && FAILSAFE_ifnames="eth0 eth1" # hack for asus wl-500g hardware -[ "$(nvram get boardnum)" = "asusX" \ --a "$(nvram get boardtype)" = "bcm94710dev" ] && { - FAILSAFE_ifnames="eth0 eth2" -} - -# defaults if lan_ifname is missing -[ -z "$(nvram get lan_ifname)" ] && { - lan_ifname="br0" - lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan2 eth1 eth2 eth3"} -} - -# defaults if wan_ifname is missing -[ -z "$(nvram get wan_ifname)" ] && { - wan_ifname="vlan1" - wan_proto="dhcp" -} +[ "$(nvram get boardnum)" = "asusX" \ +-a "$(nvram get boardtype)" = "bcm94710dev" ] && FAILSAFE_ifnames="eth0 eth1 eth2" + +FAILSAFE_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan1 eth1 eth2 eth3"} DEFAULT_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"} DEFAULT_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"} @@ -90,11 +31,11 @@ DEFAULT_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"} # failsafe if reset is held [ "$FAILSAFE" = "true" ] && { echo "### YOU ARE IN FAILSAFE MODE ####" - lan_ifname="br0" - lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan1 eth1 eth2 eth3"} - lan_ipaddr=$DEFAULT_lan_ipaddr - lan_netmask=$DEFAULT_lan_netmask - lan_hwaddr=$DEFAULT_lan_hwaddr - wan_ifname="none" - wifi_ifname="none" + NVRAM_lan_ifname="br0" + NVRAM_lan_ifnames=$FAILSAFE_ifnames + NVRAM_lan_ipaddr=DEFAULT_lan_ipaddr + NVRAM_lan_netmask=DEFAULT_lan_netmask + NVRAM_lan_hwaddr=DEFAULT_lan_hwaddr + NVRAM_wan_ifname="none" + NVRAM_wifi_ifname="none" } |