From: Felix Fietkau Date: Mon, 22 Aug 2005 00:23:14 +0000 (+0000) Subject: cleanup nvram.overrides, set nvram variables at boot time (no commit) X-Git-Tag: whiterussian_rc4~237 X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=ab8dc237f4a4b312fc997ee6ae3cb05b7aa8d912;p=openwrt%2Fsvn-archive%2Fopenwrt.git cleanup nvram.overrides, set nvram variables at boot time (no commit) SVN-Revision: 1712 --- diff --git a/openwrt/package/base-files/default/etc/functions.sh b/openwrt/package/base-files/default/etc/functions.sh index 60d6231f8a..be3a08b014 100755 --- a/openwrt/package/base-files/default/etc/functions.sh +++ b/openwrt/package/base-files/default/etc/functions.sh @@ -9,7 +9,7 @@ nvram () { *) command nvram $*;; esac } -. /etc/nvram.overrides +[ "$FAILSAFE" = "true" ] && . /etc/nvram.overrides # valid interface? if_valid () ( diff --git a/openwrt/package/base-files/default/etc/init.d/S05nvram b/openwrt/package/base-files/default/etc/init.d/S05nvram new file mode 100755 index 0000000000..5bb2490256 --- /dev/null +++ b/openwrt/package/base-files/default/etc/init.d/S05nvram @@ -0,0 +1,102 @@ +# NVRAM setup +# +# This file handles the NVRAM quirks of various hardware. + +. /etc/nvram.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/package/base-files/default/etc/init.d/S10boot b/openwrt/package/base-files/default/etc/init.d/S10boot index cf7ada8e7e..86d514d23f 100755 --- a/openwrt/package/base-files/default/etc/init.d/S10boot +++ b/openwrt/package/base-files/default/etc/init.d/S10boot @@ -6,22 +6,6 @@ mkdir -p /var/log touch /var/log/wtmp touch /var/log/lastlog -[ "$(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}') -} - -# set up the vlan*ports variables for the asus wl-500g deluxe -# if they don't already exist -[ "$(nvram get boardtype)" = "bcm95365r" \ --a "$(nvram get boardnum)" = "45" \ --a -z "$(nvram get vlan0ports)" \ --a -z "$(nvram get vlan1ports)" ] && { - nvram set vlan0ports="1 2 3 4 5*" - nvram set vlan1ports="0 5" -} - sed 's/^[^#]/insmod &/' /etc/modules /etc/modules.d/* 2>&-|ash ifconfig lo 127.0.0.1 up diff --git a/openwrt/package/base-files/default/etc/nvram.overrides b/openwrt/package/base-files/default/etc/nvram.overrides index d457af48ee..b897d64896 100644 --- a/openwrt/package/base-files/default/etc/nvram.overrides +++ b/openwrt/package/base-files/default/etc/nvram.overrides @@ -6,88 +6,29 @@ # Load sysconf defaults [ -f /etc/sysconf ] && . /etc/sysconf -# linksys bug; remove when not using static configuration for lan -NVRAM_lan_proto="static" - -remap () { - for type in lan wifi wan pppoe - do - for s in '' s - do - eval NVRAM_${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 ###" - NVRAM_vlan1hwname="et0" - NVRAM_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 ###" - NVRAM_vlan0hwname="et0" - NVRAM_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 ###" - NVRAM_lan_ifnames="eth0 eth2" - NVRAM_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 ###" - NVRAM_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 ###" - NVRAM_wan_ifname="none" - NVRAM_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)" ] && { - NVRAM_lan_ifname="br0" - NVRAM_lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan2 eth1 eth2 eth3"} -} - -# defaults if wan_ifname is missing -[ -z "$(nvram get wan_ifname)" ] && { - NVRAM_wan_ifname="vlan1" - NVRAM_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"} # failsafe if reset is held [ "$FAILSAFE" = "true" ] && { echo "### YOU ARE IN FAILSAFE MODE ####" NVRAM_lan_ifname="br0" - NVRAM_lan_ifnames=${FAILSAFE_ifnames:-"vlan0 vlan1 eth1 eth2 eth3"} + NVRAM_lan_ifnames=$FAILSAFE_ifnames NVRAM_lan_ipaddr=${BR2_SYSCONF_FAILSAFE_IP:-"192.168.1.1"} NVRAM_lan_netmask=${BR2_SYSCONF_FAILSAFE_NETMASK:-"255.255.255.0"} NVRAM_lan_hwaddr=${BR2_SYSCONF_FAILSAFE_MAC:-"00:0B:AD:0A:DD:00"}