cleanup nvram.overrides, set nvram variables at boot time (no commit)
authorFelix Fietkau <nbd@openwrt.org>
Mon, 22 Aug 2005 00:23:14 +0000 (00:23 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 22 Aug 2005 00:23:14 +0000 (00:23 +0000)
SVN-Revision: 1712

openwrt/package/base-files/default/etc/functions.sh
openwrt/package/base-files/default/etc/init.d/S05nvram [new file with mode: 0755]
openwrt/package/base-files/default/etc/init.d/S10boot
openwrt/package/base-files/default/etc/nvram.overrides

index 60d6231f8a21b97d939e5ab3b5e958642eb642a3..be3a08b01413e043886a7959a896311a3f8ad37b 100755 (executable)
@@ -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 (executable)
index 0000000..5bb2490
--- /dev/null
@@ -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}')
+}
+
index cf7ada8e7e9bc8414cc08a69bc2a4fb618bdfadd..86d514d23fece845f06eb13146f65ffe3654596f 100755 (executable)
@@ -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
index d457af48ee33e8b72f3959f56ab4c18e830f6c66..b897d64896b5bd7f4b05e1877dadd302e9d689f4 100644 (file)
@@ -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"}